Current section
Files
Jump to
Current section
Files
src/showtime@erlang@module_handler.erl
-module(showtime@erlang@module_handler).
-compile(no_auto_import).
-export([start/4]).
-spec start(
fun((showtime@common@test_suite:test_event()) -> nil),
fun((showtime@common@test_suite:test_module()) -> showtime@common@test_suite:test_suite()),
fun((showtime@common@test_suite:test_suite(), fun((showtime@common@test_suite:test_event()) -> nil), list(binary())) -> nil),
list(binary())
) -> fun((showtime@common@test_suite:test_module()) -> nil).
start(Test_event_handler, Test_function_collector, Run_test_suite, Ignore_tags) ->
_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),
Test_event_handler({end_test_suite, Module})
end,
true
),
{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/erlang/module_handler"/utf8>>,
function => <<"start"/utf8>>,
line => 15})
end,
fun(Test_module) ->
gleam@erlang@process:send(Subject, Test_module),
nil
end.