From df823580d5030835bbef089d73f833070419d0ff Mon Sep 17 00:00:00 2001 From: Peter Andersson Date: Wed, 15 Apr 2015 10:52:29 +0200 Subject: Update handling of failing all/0 function in test suites --- lib/common_test/src/ct_framework.erl | 37 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 19 deletions(-) (limited to 'lib/common_test') diff --git a/lib/common_test/src/ct_framework.erl b/lib/common_test/src/ct_framework.erl index 6ac16fef4d..a699ec3438 100644 --- a/lib/common_test/src/ct_framework.erl +++ b/lib/common_test/src/ct_framework.erl @@ -1063,35 +1063,34 @@ get_all_cases1(_, []) -> get_all(Mod, ConfTests) -> case catch apply(Mod, all, []) of {'EXIT',{undef,[{Mod,all,[],_} | _]}} -> - Reason = list_to_atom(atom_to_list(Mod)++":all/0 is missing"), - %% this makes test_server call error_in_suite as first - %% (and only) test case so we can report Reason properly - [{?MODULE,error_in_suite,[[{error,Reason}]]}]; - {'EXIT',ExitReason} -> Reason = case code:which(Mod) of non_existing -> list_to_atom(atom_to_list(Mod)++ " can not be compiled or loaded"); _ -> - case ct_util:get_testdata({error_in_suite,Mod}) of - undefined -> - ErrStr = io_lib:format("~n*** ERROR *** " - "~w:all/0 failed: ~p~n", - [Mod,ExitReason]), - io:format(user, ErrStr, []), - %% save the error info so it doesn't - %% get printed twice - ct_util:set_testdata_async({{error_in_suite,Mod}, - ExitReason}); - _ExitReason -> - ct_util:delete_testdata({error_in_suite,Mod}) - end, - list_to_atom(atom_to_list(Mod)++":all/0 failed") + list_to_atom(atom_to_list(Mod)++":all/0 is missing") end, %% this makes test_server call error_in_suite as first %% (and only) test case so we can report Reason properly [{?MODULE,error_in_suite,[[{error,Reason}]]}]; + {'EXIT',ExitReason} -> + case ct_util:get_testdata({error_in_suite,Mod}) of + undefined -> + ErrStr = io_lib:format("~n*** ERROR *** " + "~w:all/0 failed: ~p~n", + [Mod,ExitReason]), + io:format(user, ErrStr, []), + %% save the error info so it doesn't get printed twice + ct_util:set_testdata_async({{error_in_suite,Mod}, + ExitReason}); + _ExitReason -> + ct_util:delete_testdata({error_in_suite,Mod}) + end, + Reason = list_to_atom(atom_to_list(Mod)++":all/0 failed"), + %% this makes test_server call error_in_suite as first + %% (and only) test case so we can report Reason properly + [{?MODULE,error_in_suite,[[{error,Reason}]]}]; AllTCs when is_list(AllTCs) -> case catch save_seqs(Mod,AllTCs) of {error,What} -> -- cgit v1.2.3