Initial commit
This commit is contained in:
commit
a6272848f9
379 changed files with 74829 additions and 0 deletions
89
build/dev/javascript/gleeunit/gleeunit.erl
Normal file
89
build/dev/javascript/gleeunit/gleeunit.erl
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
-module(gleeunit).
|
||||
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
|
||||
-define(FILEPATH, "src/gleeunit.gleam").
|
||||
-export([main/0]).
|
||||
-export_type([atom_/0, encoding/0, report_module_name/0, gleeunit_progress_option/0, eunit_option/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.
|
||||
|
||||
-type atom_() :: any().
|
||||
|
||||
-type encoding() :: utf8.
|
||||
|
||||
-type report_module_name() :: gleeunit_progress.
|
||||
|
||||
-type gleeunit_progress_option() :: {colored, boolean()}.
|
||||
|
||||
-type eunit_option() :: verbose |
|
||||
no_tty |
|
||||
{report, {report_module_name(), list(gleeunit_progress_option())}} |
|
||||
{scale_timeouts, integer()}.
|
||||
|
||||
-file("src/gleeunit.gleam", 42).
|
||||
-spec gleam_to_erlang_module_name(binary()) -> binary().
|
||||
gleam_to_erlang_module_name(Path) ->
|
||||
case gleam_stdlib:string_ends_with(Path, <<".gleam"/utf8>>) of
|
||||
true ->
|
||||
_pipe = Path,
|
||||
_pipe@1 = gleam@string:replace(
|
||||
_pipe,
|
||||
<<".gleam"/utf8>>,
|
||||
<<""/utf8>>
|
||||
),
|
||||
gleam@string:replace(_pipe@1, <<"/"/utf8>>, <<"@"/utf8>>);
|
||||
|
||||
false ->
|
||||
_pipe@2 = Path,
|
||||
_pipe@3 = gleam@string:split(_pipe@2, <<"/"/utf8>>),
|
||||
_pipe@4 = gleam@list:last(_pipe@3),
|
||||
_pipe@5 = gleam@result:unwrap(_pipe@4, Path),
|
||||
gleam@string:replace(_pipe@5, <<".erl"/utf8>>, <<""/utf8>>)
|
||||
end.
|
||||
|
||||
-file("src/gleeunit.gleam", 18).
|
||||
-spec do_main() -> nil.
|
||||
do_main() ->
|
||||
Options = [verbose,
|
||||
no_tty,
|
||||
{report, {gleeunit_progress, [{colored, true}]}},
|
||||
{scale_timeouts, 10}],
|
||||
Result = begin
|
||||
_pipe = gleeunit_ffi:find_files(
|
||||
<<"**/*.{erl,gleam}"/utf8>>,
|
||||
<<"test"/utf8>>
|
||||
),
|
||||
_pipe@1 = gleam@list:map(_pipe, fun gleam_to_erlang_module_name/1),
|
||||
_pipe@2 = gleam@list:map(
|
||||
_pipe@1,
|
||||
fun(_capture) -> erlang:binary_to_atom(_capture, utf8) end
|
||||
),
|
||||
gleeunit_ffi:run_eunit(_pipe@2, Options)
|
||||
end,
|
||||
Code = case Result of
|
||||
{ok, _} ->
|
||||
0;
|
||||
|
||||
{error, _} ->
|
||||
1
|
||||
end,
|
||||
erlang:halt(Code).
|
||||
|
||||
-file("src/gleeunit.gleam", 13).
|
||||
?DOC(
|
||||
" Find and run all test functions for the current project using Erlang's EUnit\n"
|
||||
" test framework, or a custom JavaScript test runner.\n"
|
||||
"\n"
|
||||
" Any Erlang or Gleam function in the `test` directory with a name ending in\n"
|
||||
" `_test` is considered a test function and will be run.\n"
|
||||
"\n"
|
||||
" A test that panics is considered a failure.\n"
|
||||
).
|
||||
-spec main() -> nil.
|
||||
main() ->
|
||||
do_main().
|
||||
Loading…
Add table
Add a link
Reference in a new issue