aboutsummaryrefslogtreecommitdiffstats
path: root/lib/common_test/src
diff options
context:
space:
mode:
authorPeter Andersson <[email protected]>2015-12-11 09:33:21 +0100
committerPeter Andersson <[email protected]>2015-12-11 09:33:21 +0100
commit75bf5a71b5fdac521430fb0205702079b14ab5b3 (patch)
tree6bc72309aee401183f36691aeaedf962a5f2b339 /lib/common_test/src
parent4598a8e0b8a318e0541f607897fb6cda1739bdaf (diff)
parent6d2bac38720ec27763a0cea2ae48060d501fce62 (diff)
downloadotp-75bf5a71b5fdac521430fb0205702079b14ab5b3.tar.gz
otp-75bf5a71b5fdac521430fb0205702079b14ab5b3.tar.bz2
otp-75bf5a71b5fdac521430fb0205702079b14ab5b3.zip
Merge branch 'peppe/common_test/exit_status_when_missing_suites' into maint
* peppe/common_test/exit_status_when_missing_suites: Let missing suites affect ct:run_test/1 return and ct_run exit status Make abort_if_missing_suites option work in all io modes OTP-13173
Diffstat (limited to 'lib/common_test/src')
-rw-r--r--lib/common_test/src/ct_run.erl20
1 files changed, 16 insertions, 4 deletions
diff --git a/lib/common_test/src/ct_run.erl b/lib/common_test/src/ct_run.erl
index ae91601f67..0b646ffd07 100644
--- a/lib/common_test/src/ct_run.erl
+++ b/lib/common_test/src/ct_run.erl
@@ -1771,7 +1771,18 @@ compile_and_run(Tests, Skip, Opts, Args) ->
{Tests1,Skip1} ->
ReleaseSh = proplists:get_value(release_shell, Args),
ct_util:set_testdata({release_shell,ReleaseSh}),
- possibly_spawn(ReleaseSh == true, Tests1, Skip1, Opts)
+ TestResult =
+ possibly_spawn(ReleaseSh == true, Tests1, Skip1, Opts),
+ case TestResult of
+ {Ok,Errors,Skipped} ->
+ NoOfMakeErrors =
+ lists:foldl(fun({_,BadMods}, X) ->
+ X + length(BadMods)
+ end, 0, SuiteMakeErrors),
+ {Ok,Errors+NoOfMakeErrors,Skipped};
+ ErrorResult ->
+ ErrorResult
+ end
catch
_:BadFormat ->
{error,BadFormat}
@@ -2073,7 +2084,9 @@ final_skip([], Final) ->
continue([], _) ->
true;
-continue(_MakeErrors, AbortIfMissingSuites) ->
+continue(_MakeErrors, true) ->
+ false;
+continue(_MakeErrors, _AbortIfMissingSuites) ->
io:nl(),
OldGl = group_leader(),
case set_group_leader_same_as_shell() of
@@ -2101,11 +2114,10 @@ continue(_MakeErrors, AbortIfMissingSuites) ->
true
end;
false -> % no shell process to use
- not AbortIfMissingSuites
+ true
end.
set_group_leader_same_as_shell() ->
- %%! Locate the shell process... UGLY!!!
GS2or3 = fun(P) ->
case process_info(P,initial_call) of
{initial_call,{group,server,X}} when X == 2 ; X == 3 ->