diff options
author | Lukas Larsson <[email protected]> | 2017-09-12 10:00:47 +0200 |
---|---|---|
committer | Lukas Larsson <[email protected]> | 2017-09-12 10:00:47 +0200 |
commit | 18fb1a9230578456f3d03b4136ed296407bdf53c (patch) | |
tree | 4edfa1ba190f4ebbf3066cd394d9439bb7a62486 /lib/common_test | |
parent | 54d87b64ba447371fb51f1ad7e773317e684843f (diff) | |
parent | bcfa4564df41ad5806a4848dcb3be31fbfea6a9e (diff) | |
download | otp-18fb1a9230578456f3d03b4136ed296407bdf53c.tar.gz otp-18fb1a9230578456f3d03b4136ed296407bdf53c.tar.bz2 otp-18fb1a9230578456f3d03b4136ed296407bdf53c.zip |
Merge branch 'lukas/ct/ts_abort_on_compilation_fail' into maint
* lukas/ct/ts_abort_on_compilation_fail:
erts: Fix leaking of fds in iovec_SUITE
ts: Don't test apps that are not available
asn1: Fix test suite deprecated functions
ct: ts:run now abort the test run on compilation failure
Diffstat (limited to 'lib/common_test')
-rw-r--r-- | lib/common_test/test_server/ts_lib.erl | 24 | ||||
-rw-r--r-- | lib/common_test/test_server/ts_run.erl | 7 |
2 files changed, 29 insertions, 2 deletions
diff --git a/lib/common_test/test_server/ts_lib.erl b/lib/common_test/test_server/ts_lib.erl index a7be740c5c..ea039a2c2b 100644 --- a/lib/common_test/test_server/ts_lib.erl +++ b/lib/common_test/test_server/ts_lib.erl @@ -120,7 +120,8 @@ specs(Dir) -> [] end end, Specs), - sort_tests(MainSpecs). + + sort_tests(filter_tests(MainSpecs)). test_categories(Dir, App) -> Specs = filelib:wildcard(filename:join([filename:dirname(Dir), @@ -141,10 +142,29 @@ suites(Dir, App) -> "*_SUITE.erl"]), Suites=filelib:wildcard(Glob), [filename_to_atom(Name) || Name <- Suites]. - + filename_to_atom(Name) -> list_to_atom(filename:rootname(filename:basename(Name))). +%% Filter out tests of applications that are not accessible + +filter_tests(Tests) -> + lists:filter( + fun(Special) when Special == epmd; + Special == emulator; + Special == system -> + true; + (Test) -> + case application:load(filename_to_atom(Test)) of + {error, {already_loaded, _}} -> + true; + {error,_NoSuchApplication} -> + false; + _ -> + true + end + end, Tests). + %% Sorts a list of either log files directories or spec files. sort_tests(Tests) -> diff --git a/lib/common_test/test_server/ts_run.erl b/lib/common_test/test_server/ts_run.erl index 82ae44ec06..e22fa8d196 100644 --- a/lib/common_test/test_server/ts_run.erl +++ b/lib/common_test/test_server/ts_run.erl @@ -96,6 +96,9 @@ ct_run_test(Dir, CommonTestArgs) -> case ct:run_test(CommonTestArgs) of {_,_,_} -> ok; + {error,{make_failed, _Modules} = Error} -> + io:format("ERROR: ~P\n", [Error,20]), + erlang:halt(123, [{flush,false}]); {error,Error} -> io:format("ERROR: ~P\n", [Error,20]); Other -> @@ -288,6 +291,10 @@ tricky_print_data(Port, Timeout) -> receive {Port, {exit_status, 0}} -> ok; + {Port, {exit_status, 123 = N}} -> + io:format(user, "Test run exited with status ~p," + "aborting rest of test~n", [N]), + erlang:halt(123, [{flush,false}]); {Port, {exit_status, N}} -> io:format(user, "Test run exited with status ~p~n", [N]) after 1 -> |