aboutsummaryrefslogtreecommitdiffstats
path: root/lib/common_test/src/ct_run.erl
diff options
context:
space:
mode:
authorPeter Andersson <[email protected]>2015-11-24 00:11:45 +0100
committerPeter Andersson <[email protected]>2015-12-10 15:24:59 +0100
commit6d2bac38720ec27763a0cea2ae48060d501fce62 (patch)
tree51d5c038e051f67677ec663b6081ca9dee9b068a /lib/common_test/src/ct_run.erl
parent49f56f9dc37499b6ebb365d2304eee940d57801d (diff)
downloadotp-6d2bac38720ec27763a0cea2ae48060d501fce62.tar.gz
otp-6d2bac38720ec27763a0cea2ae48060d501fce62.tar.bz2
otp-6d2bac38720ec27763a0cea2ae48060d501fce62.zip
Let missing suites affect ct:run_test/1 return and ct_run exit status
Diffstat (limited to 'lib/common_test/src/ct_run.erl')
-rw-r--r--lib/common_test/src/ct_run.erl18
1 files changed, 14 insertions, 4 deletions
diff --git a/lib/common_test/src/ct_run.erl b/lib/common_test/src/ct_run.erl
index 97994d8d6f..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}
@@ -2071,10 +2082,10 @@ final_skip([Skip|Skips], Final) ->
final_skip([], Final) ->
lists:reverse(Final).
-continue(_MakeErrors, true) ->
- false;
continue([], _) ->
true;
+continue(_MakeErrors, true) ->
+ false;
continue(_MakeErrors, _AbortIfMissingSuites) ->
io:nl(),
OldGl = group_leader(),
@@ -2107,7 +2118,6 @@ continue(_MakeErrors, _AbortIfMissingSuites) ->
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 ->