Current section

Files

Jump to
showtime src showtime@internal@erlang@module_handler.erl
Raw

src/showtime@internal@erlang@module_handler.erl

-module(showtime@internal@erlang@module_handler).
-compile([no_auto_import, nowarn_unused_vars]).
-export([start/5]).
-spec start(
fun((showtime@internal@common@test_suite:test_event()) -> nil),
fun((showtime@internal@common@test_suite:test_module()) -> showtime@internal@common@test_suite:test_suite()),
fun((showtime@internal@common@test_suite:test_suite(), fun((showtime@internal@common@test_suite:test_event()) -> nil), list(binary()), showtime@internal@common@cli:capture()) -> nil),
list(binary()),
showtime@internal@common@cli:capture()
) -> fun((showtime@internal@common@test_suite:test_module()) -> nil).
start(
Test_event_handler,
Test_function_collector,
Run_test_suite,
Ignore_tags,
Capture
) ->
_assert_subject = gleam@otp@actor:start(
nil,
fun(Module, State) ->
gleam@erlang@process:start(
fun() ->
Test_suite = Test_function_collector(Module),
Test_event_handler({start_test_suite, Module}),
Run_test_suite(
Test_suite,
Test_event_handler,
Ignore_tags,
Capture
),
Test_event_handler({end_test_suite, Module})
end,
false
),
{continue, State}
end
),
{ok, Subject} = case _assert_subject of
{ok, _} -> _assert_subject;
_assert_fail ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _assert_fail,
module => <<"showtime/internal/erlang/module_handler"/utf8>>,
function => <<"start"/utf8>>,
line => 17})
end,
fun(Test_module) ->
gleam@erlang@process:send(Subject, Test_module),
nil
end.