Current section

Files

Jump to
startest src startest@internal@runner@backend@erlang.erl
Raw

src/startest@internal@runner@backend@erlang.erl

-module(startest@internal@runner@backend@erlang).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-define(FILEPATH, "src/startest/internal/runner/backend/erlang.gleam").
-export([run_tests/1]).
-export_type([atom_/0]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
?MODULEDOC(false).
-type atom_() :: any().
-file("src/startest/internal/runner/backend/erlang.gleam", 53).
?DOC(false).
-spec gleam_module_name_to_erlang_module_name(binary()) -> binary().
gleam_module_name_to_erlang_module_name(Module_name) ->
_pipe = Module_name,
gleam@string:replace(_pipe, <<"/"/utf8>>, <<"@"/utf8>>).
-file("src/startest/internal/runner/backend/erlang.gleam", 19).
?DOC(false).
-spec run_tests(startest@context:context()) -> nil.
run_tests(Ctx) ->
Test_files@1 = case startest@locator:locate_test_files(Ctx) of
{ok, Test_files} -> Test_files;
_assert_fail ->
erlang:error(#{gleam_error => let_assert,
message => <<"Pattern match failed, no pattern matched the value."/utf8>>,
file => <<?FILEPATH/utf8>>,
module => <<"startest/internal/runner/backend/erlang"/utf8>>,
function => <<"run_tests"/utf8>>,
line => 20,
value => _assert_fail,
start => 462,
'end' => 520,
pattern_start => 473,
pattern_end => 487})
end,
Tests@1 = begin
_pipe = Test_files@1,
_pipe@5 = gleam@list:map(
_pipe,
fun(Test_file) ->
Erlang_module_name = begin
_pipe@1 = erlang:element(2, Test_file),
_pipe@2 = gleam_module_name_to_erlang_module_name(_pipe@1),
erlang:binary_to_atom(_pipe@2)
end,
Tests = begin
_pipe@3 = startest_ffi:get_exports(Erlang_module_name),
gleam@list:map(
_pipe@3,
fun(Pair) ->
{Name, Body} = begin
_pipe@4 = Pair,
gleam@pair:map_first(
_pipe@4,
fun erlang:atom_to_binary/1
)
end,
{test_function,
erlang:element(2, Test_file),
Name,
Body}
end
)
end,
_record = Test_file,
{test_source_file,
erlang:element(2, _record),
erlang:element(3, _record),
Tests}
end
),
startest@locator:identify_tests(_pipe@5, Ctx)
end,
_pipe@6 = Tests@1,
startest@internal@runner@core:run_tests(_pipe@6, Ctx).