|
|
@@ -28,14 +28,53 @@
|
|
|
all() -> emqx_common_test_helpers:all(?MODULE).
|
|
|
|
|
|
init_per_suite(Config) ->
|
|
|
- ok = mria:start(),
|
|
|
- ok = emqx_telemetry:mnesia(boot),
|
|
|
+ snabbkaffe:fix_ct_logging(),
|
|
|
emqx_common_test_helpers:start_apps([emqx_modules]),
|
|
|
Config.
|
|
|
|
|
|
end_per_suite(_Config) ->
|
|
|
emqx_common_test_helpers:stop_apps([emqx_modules]).
|
|
|
|
|
|
+init_per_testcase(t_get_telemetry, Config) ->
|
|
|
+ DataDir = ?config(data_dir, Config),
|
|
|
+ TestPID = self(),
|
|
|
+ ok = meck:new(httpc, [non_strict, passthrough, no_history, no_link]),
|
|
|
+ ok = meck:expect(httpc, request, fun(Method, URL, Headers, Body) ->
|
|
|
+ TestPID ! {request, Method, URL, Headers, Body}
|
|
|
+ end),
|
|
|
+ ok = meck:new(emqx_telemetry, [non_strict, passthrough, no_history, no_link]),
|
|
|
+ ok = meck:expect(emqx_telemetry, read_raw_build_info,
|
|
|
+ fun() ->
|
|
|
+ {ok, Path} = file:read_link(filename:join([DataDir, "BUILD_INFO"])),
|
|
|
+ {ok, Template} = file:read_file(Path),
|
|
|
+ Vars0 = [ {build_info_arch, "arch"}
|
|
|
+ , {build_info_wordsize, "64"}
|
|
|
+ , {build_info_os, "os"}
|
|
|
+ , {build_info_erlang, "erlang"}
|
|
|
+ , {build_info_elixir, "elixir"}
|
|
|
+ , {build_info_relform, "relform"}
|
|
|
+ ],
|
|
|
+ Vars = [{atom_to_list(K), iolist_to_binary(V)}
|
|
|
+ || {K, V} <- Vars0],
|
|
|
+ Rendered = bbmustache:render(Template, Vars),
|
|
|
+ {ok, Rendered}
|
|
|
+ end),
|
|
|
+ Config;
|
|
|
+init_per_testcase(_Testcase, Config) ->
|
|
|
+ TestPID = self(),
|
|
|
+ ok = meck:new(httpc, [non_strict, passthrough, no_history, no_link]),
|
|
|
+ ok = meck:expect(httpc, request, fun(Method, URL, Headers, Body) ->
|
|
|
+ TestPID ! {request, Method, URL, Headers, Body}
|
|
|
+ end),
|
|
|
+ Config.
|
|
|
+
|
|
|
+end_per_testcase(t_get_telemetry, _Config) ->
|
|
|
+ meck:unload([httpc, emqx_telemetry]),
|
|
|
+ ok;
|
|
|
+end_per_testcase(_Testcase, _Config) ->
|
|
|
+ meck:unload([httpc]),
|
|
|
+ ok.
|
|
|
+
|
|
|
t_uuid(_) ->
|
|
|
UUID = emqx_telemetry:generate_uuid(),
|
|
|
Parts = binary:split(UUID, <<"-">>, [global, trim]),
|
|
|
@@ -65,13 +104,29 @@ t_official_version(_) ->
|
|
|
true = emqx_telemetry:official_version("1.1-rc.1"),
|
|
|
false = emqx_telemetry:official_version("1.1-alpha.a").
|
|
|
|
|
|
-t_get_telemetry(_) ->
|
|
|
+t_get_telemetry(_Config) ->
|
|
|
{ok, TelemetryData} = emqx_telemetry:get_telemetry(),
|
|
|
OTPVersion = bin(erlang:system_info(otp_release)),
|
|
|
?assertEqual(OTPVersion, get_value(otp_version, TelemetryData)),
|
|
|
{ok, UUID} = emqx_telemetry:get_uuid(),
|
|
|
?assertEqual(UUID, get_value(uuid, TelemetryData)),
|
|
|
- ?assertEqual(0, get_value(num_clients, TelemetryData)).
|
|
|
+ ?assertEqual(0, get_value(num_clients, TelemetryData)),
|
|
|
+ BuildInfo = get_value(build_info, TelemetryData),
|
|
|
+ ?assertMatch(
|
|
|
+ #{ <<"arch">> := <<_/binary>>
|
|
|
+ , <<"elixir">> := <<_/binary>>
|
|
|
+ , <<"erlang">> := <<_/binary>>
|
|
|
+ , <<"os">> := <<_/binary>>
|
|
|
+ , <<"relform">> := <<_/binary>>
|
|
|
+ , <<"wordsize">> := Wordsize
|
|
|
+ } when is_integer(Wordsize),
|
|
|
+ BuildInfo),
|
|
|
+ VMSpecs = get_value(vm_specs, TelemetryData),
|
|
|
+ ?assert(is_integer(get_value(num_cpus, VMSpecs))),
|
|
|
+ ?assert(0 =< get_value(num_cpus, VMSpecs)),
|
|
|
+ ?assert(is_integer(get_value(total_memory, VMSpecs))),
|
|
|
+ ?assert(0 =< get_value(total_memory, VMSpecs)),
|
|
|
+ ok.
|
|
|
|
|
|
t_enable(_) ->
|
|
|
ok = meck:new(emqx_telemetry, [non_strict, passthrough, no_history, no_link]),
|