blob: cdc25a555a81fc31964f6ace97151c0255340352 [file] [log] [blame]
%% @copyright 2017 Takeru Ohta <phjgt308@gmail.com>
-module(jaeger_passage_repoter_tests).
-include_lib("eunit/include/eunit.hrl").
%%------------------------------------------------------------------------------
%% Test Cases
%%------------------------------------------------------------------------------
basic_udp_test() ->
{ok, _} = application:ensure_all_started(jaeger_passage),
%% Starts `udp_reporter'
{ok, Reporter} = jaeger_passage_reporter:start(udp_reporter),
[udp_reporter] = jaeger_passage_reporter:which_reporters(),
%% Registers `test_tracer'
Context = jaeger_passage_span_context,
Sampler = passage_sampler_all:new(),
ok = passage_tracer_registry:register(udp_tracer, Context, Sampler, Reporter),
%% Starts and finishes spans
passage_pd:start_span(test_root, [{tracer, udp_tracer}]),
passage_pd:start_span(test_child),
passage_pd:log(#{message => "Hello World"}),
passage_pd:finish_span(),
passage_pd:finish_span(),
timer:sleep(50),
ok = jaeger_passage_reporter:stop(udp_reporter),
[] = jaeger_passage_reporter:which_reporters(),
ok = application:stop(jaeger_passage).
basic_http_test() ->
{ok, _} = application:ensure_all_started(jaeger_passage),
%% Starts `http_reporter'
{ok, Reporter} = jaeger_passage_reporter:start(http_reporter, [
{protocol, http},
{http_client, fun http_client/5}
]),
[http_reporter] = jaeger_passage_reporter:which_reporters(),
%% Registers `test_tracer'
Context = jaeger_passage_span_context,
Sampler = passage_sampler_all:new(),
ok = passage_tracer_registry:register(http_tracer, Context, Sampler, Reporter),
%% Starts and finishes spans
passage_pd:start_span(test_root, [{tracer, http_tracer}]),
passage_pd:start_span(test_child),
passage_pd:log(#{message => "Hello World"}),
passage_pd:finish_span(),
passage_pd:finish_span(),
timer:sleep(50),
ok = jaeger_passage_reporter:stop(http_reporter),
[] = jaeger_passage_reporter:which_reporters(),
ok = application:stop(jaeger_passage).
error_http_test() ->
{ok, _} = application:ensure_all_started(jaeger_passage),
%% Starts `http_reporter'
?assertMatch({error, {{badarg, _}, _}}, jaeger_passage_reporter:start(http_reporter, [
{protocol, http},
{http_client, undefined}
])),
%% Starts `http_reporter'
?assertError(badarg, jaeger_passage_reporter:start(http_reporter, [
{protocol, undefined}
])).
http_client(_URI, _Method, _Headers, _Encoded, _Options) ->
ok.