diff options
author | Peter Andersson <[email protected]> | 2012-03-06 14:49:07 +0100 |
---|---|---|
committer | Peter Andersson <[email protected]> | 2012-03-06 14:49:07 +0100 |
commit | f7036975db25ba3f859006c6034b8f7c43e83d79 (patch) | |
tree | bed99a22a382b14890c9ff2f6d1091070c6dce8c /lib/common_test/src | |
parent | 411ee5a0c487f9339dd88d3c012aa35b92518baa (diff) | |
parent | 512f583a445a0ab0f24f9039ea52bc71b8f43973 (diff) | |
download | otp-f7036975db25ba3f859006c6034b8f7c43e83d79.tar.gz otp-f7036975db25ba3f859006c6034b8f7c43e83d79.tar.bz2 otp-f7036975db25ba3f859006c6034b8f7c43e83d79.zip |
Merge branch 'maint'
Diffstat (limited to 'lib/common_test/src')
-rw-r--r-- | lib/common_test/src/ct.erl | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/lib/common_test/src/ct.erl b/lib/common_test/src/ct.erl index e0e82283c4..00701f5a2d 100644 --- a/lib/common_test/src/ct.erl +++ b/lib/common_test/src/ct.erl @@ -585,8 +585,16 @@ capture_get([]) -> %%% @doc Terminate a test case with the given error %%% <code>Reason</code>. fail(Reason) -> - exit({test_case_failed,Reason}). - + try + exit({test_case_failed,Reason}) + catch + Class:R -> + case erlang:get_stacktrace() of + [{?MODULE,fail,1,_}|Stk] -> ok; + Stk -> ok + end, + erlang:raise(Class, R, Stk) + end. %%%----------------------------------------------------------------- %%% @spec fail(Format, Args) -> void() @@ -599,13 +607,21 @@ fail(Reason) -> fail(Format, Args) -> try io_lib:format(Format, Args) of Str -> - exit({test_case_failed,lists:flatten(Str)}) + try + exit({test_case_failed,lists:flatten(Str)}) + catch + Class:R -> + case erlang:get_stacktrace() of + [{?MODULE,fail,2,_}|Stk] -> ok; + Stk -> ok + end, + erlang:raise(Class, R, Stk) + end catch _:BadArgs -> exit({BadArgs,{?MODULE,fail,[Format,Args]}}) end. - %%%----------------------------------------------------------------- %%% @spec comment(Comment) -> void() %%% Comment = term() |