diff options
author | Björn Gustavsson <bjorn@erlang.org> | 2012-11-01 12:24:28 +0100 |
---|---|---|
committer | Björn Gustavsson <bjorn@erlang.org> | 2012-11-07 14:14:00 +0100 |
commit | 983b1a407119f427a9203769bb94784b1bf0563b (patch) | |
tree | 768060a206b11c9a2dfb4f044f6737d3f670a492 /lib/common_test/test/ct_error_SUITE_data | |
parent | e6c3f2c107366c12edcd7a9b26e08642501fc888 (diff) | |
download | erlang-983b1a407119f427a9203769bb94784b1bf0563b.tar.gz |
Handle ct:abort_current_testcase/1 when executing parallel groups
ct:abort_current_testcase/1 (which is a wrapper for the function
with the same name in test_server_ctrl) would not work as expected
when a group with parallel test cases was executing. Essentially,
the abort_current_testcase message would be ignored until the group
has finished and would then abort the end_per_group testcase for
the group.
Since there is no unique current testcase when a parallel group is
executing, we must handle the abort_current_testcase message and
return an error tuple.
Also fix the bug that test_server_ctrl:abort_current_testcase/1
would always return 'ok'.
Diffstat (limited to 'lib/common_test/test/ct_error_SUITE_data')
-rw-r--r-- | lib/common_test/test/ct_error_SUITE_data/error/test/misc_error_1_SUITE.erl | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/lib/common_test/test/ct_error_SUITE_data/error/test/misc_error_1_SUITE.erl b/lib/common_test/test/ct_error_SUITE_data/error/test/misc_error_1_SUITE.erl index 99c3ed05ec..61f3fa7e59 100644 --- a/lib/common_test/test/ct_error_SUITE_data/error/test/misc_error_1_SUITE.erl +++ b/lib/common_test/test/ct_error_SUITE_data/error/test/misc_error_1_SUITE.erl @@ -96,7 +96,7 @@ end_per_testcase(_TestCase, _Config) -> %% N = integer() | forever %%-------------------------------------------------------------------- groups() -> - []. + [{p,[parallel],[p1,p2]}]. %%-------------------------------------------------------------------- %% Function: all() -> GroupsAndTestCases | {skip,Reason} @@ -107,7 +107,8 @@ groups() -> %%-------------------------------------------------------------------- all() -> [ct_fail_1, ct_fail_2, ct_fail_3, ts_fail_1, ts_fail_2, - killed_by_signal_1, killed_by_signal_2]. + killed_by_signal_1, killed_by_signal_2, + {group,p}]. ct_fail_1(_) -> ct:fail({error,this_is_expected}), @@ -152,3 +153,10 @@ killed_by_signal_2(_) -> end), ct:sleep(1000), exit(this_should_not_be_seen). + +p1(_) -> + {error,parallel_group} = ct:abort_current_testcase(aborted), + ok. + +p2(_) -> + receive after 1000 -> ok end. |