diff options
Diffstat (limited to 'aoc2023/build/packages/adglent/src/showtime@internal@erlang@module_handler.erl')
-rw-r--r-- | aoc2023/build/packages/adglent/src/showtime@internal@erlang@module_handler.erl | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/aoc2023/build/packages/adglent/src/showtime@internal@erlang@module_handler.erl b/aoc2023/build/packages/adglent/src/showtime@internal@erlang@module_handler.erl new file mode 100644 index 0000000..a6959f5 --- /dev/null +++ b/aoc2023/build/packages/adglent/src/showtime@internal@erlang@module_handler.erl @@ -0,0 +1,53 @@ +-module(showtime@internal@erlang@module_handler). +-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). + +-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, none} + end + ), + {ok, Subject} = case _assert_subject of + {ok, _} -> _assert_subject; + _assert_fail -> + erlang:error(#{gleam_error => let_assert, + message => <<"Assertion pattern match failed"/utf8>>, + value => _assert_fail, + module => <<"showtime/internal/erlang/module_handler"/utf8>>, + function => <<"start"/utf8>>, + line => 23}) + end, + fun(Test_module) -> + gleam@erlang@process:send(Subject, Test_module), + nil + end. |