diff options
Diffstat (limited to 'lib/kernel/test/socket_test_evaluator.erl')
-rw-r--r-- | lib/kernel/test/socket_test_evaluator.erl | 42 |
1 files changed, 30 insertions, 12 deletions
diff --git a/lib/kernel/test/socket_test_evaluator.erl b/lib/kernel/test/socket_test_evaluator.erl index c2bd9d44b8..49b529461f 100644 --- a/lib/kernel/test/socket_test_evaluator.erl +++ b/lib/kernel/test/socket_test_evaluator.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 2018-2022. All Rights Reserved. +%% Copyright Ericsson AB 2018-2023. All Rights Reserved. %% %% Licensed under the Apache License, Version 2.0 (the "License"); %% you may not use this file except in compliance with the License. @@ -134,6 +134,11 @@ loop(ID, [#{desc := Desc, "~n ~p", [ID, Reason]), exit({command_failed, ID, Reason, State}) catch + error:notsup = Reason:Stack -> + ?SEV_IPRINT("command ~w skip: " + "~n ~p" + "~n ~p", [ID, Reason, Stack]), + exit({skip, Reason}); C:{skip, command} = E:_ when ((C =:= throw) orelse (C =:= exit)) -> %% Secondary skip exit(E); @@ -176,14 +181,14 @@ await_finish(Evs, OK, Fails) -> %% The evaluator can skip the test case: {'DOWN', _MRef, process, Pid, {skip, Reason}} -> - %% ?SEV_IPRINT("await_finish -> skip (down) received: " - %% "~n Pid: ~p" - %% "~n Reason: ~p", [Pid, Reason]), + ?SEV_IPRINT("await_finish -> skip (down) received: " + "~n Pid: ~p" + "~n Reason: ~p", [Pid, Reason]), await_finish_skip(Pid, Reason, Evs, OK); {'EXIT', Pid, {skip, Reason}} -> - %% ?SEV_IPRINT("await_finish -> skip (exit) received: " - %% "~n Pid: ~p" - %% "~n Reason: ~p", [Pid, Reason]), + ?SEV_IPRINT("await_finish -> skip (exit) received: " + "~n Pid: ~p" + "~n Reason: ~p", [Pid, Reason]), await_finish_skip(Pid, Reason, Evs, OK); %% Evaluator failed @@ -242,7 +247,9 @@ await_finish_skip(Pid, Reason, Evs, OK) -> end, Evs end, + ?SEV_IPRINT("ensure (~w) evaluator(s) are terminated", [length(Evs)]), await_evs_terminated(Evs2), + ?SEV_IPRINT("issue skip"), ?LIB:skip(Reason). await_evs_terminated(Evs) -> @@ -576,7 +583,7 @@ await(ExpPid, Name, Announcement, Slogan, OtherPids) {'DOWN', _, process, Pid, {skip, SkipReason}} when (Pid =:= ExpPid) -> iprint("Unexpected SKIP from ~w (~p): " "~n ~p", [Name, Pid, SkipReason]), - ?LIB:skip({Name, SkipReason}); + ?LIB:skip(SkipReason); {'DOWN', _, process, Pid, Reason} when (Pid =:= ExpPid) -> eprint("Unexpected DOWN from ~w (~p): " "~n ~p", [Name, Pid, Reason]), @@ -590,10 +597,16 @@ await(ExpPid, Name, Announcement, Slogan, OtherPids) "~n OtherPids: " "~n ~p", [OtherPid, Reason, OtherPids]), await(ExpPid, Name, Announcement, Slogan, OtherPids); + {skip, SkipName, SkipReason} -> + iprint("Unexpected other SKIP from ~w (~p): " + "~n ~p", [SkipName, OtherPid, SkipReason]), + ?LIB:skip(SkipReason); {error, _} = ERROR -> ERROR end - after infinity -> % For easy debugging, just change to some valid time (5000) + + %% For easy debugging, just change to some valid time (5000) + after infinity -> iprint("await -> timeout for msg from ~p (~w): " "~n Announcement: ~p" "~n Slogan: ~p" @@ -613,9 +626,14 @@ pi(Pid, Item) -> check_down(Pid, DownReason, Pids) -> case lists:keysearch(Pid, 2, Pids) of {value, {Name, _}} -> - eprint("Unexpected DOWN from ~w (~p): " - "~n ~p", [Name, Pid, DownReason]), - {error, {unexpected_exit, Name, DownReason}}; + case DownReason of + {skip, Reason} -> + {skip, Name, Reason}; + _ -> + eprint("Unexpected DOWN from ~w (~p): " + "~n ~p", [Name, Pid, DownReason]), + {error, {unexpected_exit, Name, DownReason}} + end; false -> ok end. |