aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLukas Larsson <[email protected]>2010-11-23 17:41:06 +0100
committerLukas Larsson <[email protected]>2010-12-08 18:07:53 +0100
commit21a7ce9d0cb2358e74e302123d1cf45bd865224f (patch)
tree5de1da6c38b623004fb9e1eb42488a3261133003
parent2f95eaaee45add848df49c84bd449f5c52d63000 (diff)
downloadotp-21a7ce9d0cb2358e74e302123d1cf45bd865224f.tar.gz
otp-21a7ce9d0cb2358e74e302123d1cf45bd865224f.tar.bz2
otp-21a7ce9d0cb2358e74e302123d1cf45bd865224f.zip
Add init_per_suite skip and fail test cases
-rw-r--r--lib/common_test/test/ct_suite_callback_SUITE.erl94
-rw-r--r--lib/common_test/test/ct_suite_callback_SUITE_data/scb/tests/fail_post_suite_scb.erl72
-rw-r--r--lib/common_test/test/ct_suite_callback_SUITE_data/scb/tests/fail_pre_suite_scb.erl72
-rw-r--r--lib/common_test/test/ct_suite_callback_SUITE_data/scb/tests/skip_post_suite_scb.erl72
-rw-r--r--lib/common_test/test/ct_suite_callback_SUITE_data/scb/tests/skip_pre_suite_scb.erl73
5 files changed, 357 insertions, 26 deletions
diff --git a/lib/common_test/test/ct_suite_callback_SUITE.erl b/lib/common_test/test/ct_suite_callback_SUITE.erl
index 4e5ecfab76..b6af8e0c2a 100644
--- a/lib/common_test/test/ct_suite_callback_SUITE.erl
+++ b/lib/common_test/test/ct_suite_callback_SUITE.erl
@@ -74,9 +74,9 @@ all(suite) ->
[
one_scb, two_scb, faulty_scb_no_init, minimal_scb,
minimal_and_maximal_scb, faulty_scb_undef, scope_per_suite_scb,
- scope_per_group_scb, scope_suite_scb%,
-% fail_pre_suite_scb, fail_post_suite_scb, skip_pre_suite_scb,
-% skip_post_suite_scb
+ scope_per_group_scb, scope_suite_scb,
+ fail_pre_suite_scb, fail_post_suite_scb, skip_pre_suite_scb,
+ skip_post_suite_scb
]).
@@ -404,70 +404,112 @@ test_events(scope_per_group_scb) ->
test_events(fail_pre_suite_scb) ->
[
{?eh,start_logging,{'DEF','RUNDIR'}},
- {?eh,scb,{fail_pre_suite_scb,init,[[]]}},
+ {?eh,scb,{'_',init,[[]]}},
{?eh,test_start,{'DEF',{'START_TIME','LOGDIR'}}},
+
+
{?eh,tc_start,{ct_scb_empty_SUITE,init_per_suite}},
+ {?eh,scb,{'_',pre_init_per_suite,[ct_scb_empty_SUITE,'$proplist',[]]}},
+ {?eh,scb,{'_',post_init_per_suite,[ct_scb_empty_SUITE,
+ {error,"Test failure"},[]]}},
{?eh,tc_done,{ct_scb_empty_SUITE,init_per_suite,
- {fail, "Test failure"}}},
+ {failed, {error,"Test failure"}}}},
+ {?eh,scb,{'_',on_tc_fail,
+ [init_per_suite,{failed,"Test failure"},[]]}},
+
{?eh,tc_auto_skip,{ct_scb_empty_SUITE,test_case,
- {failed,
- {ct_scb_empty_SUITE,init_per_suite,{failed,"Test failure"}}}}},
+ {failed,{ct_scb_empty_SUITE,init_per_suite,
+ {failed,"Test failure"}}}}},
+ {?eh,scb,{'_',on_tc_skip,
+ [test_case, {tc_auto_skip,
+ {failed, {ct_scb_empty_SUITE, init_per_suite,
+ {failed, "Test failure"}}}},[]]}},
+
{?eh,tc_auto_skip, {ct_scb_empty_SUITE, end_per_suite,
- {failed, {ct_scb_empty_SUITE, init_per_suite, {failed, "Test failure"}}}}},
+ {failed, {ct_scb_empty_SUITE, init_per_suite,
+ {failed, "Test failure"}}}}},
+ {?eh,scb,{'_',on_tc_skip,
+ [end_per_suite, {tc_auto_skip,
+ {failed, {ct_scb_empty_SUITE, init_per_suite,
+ {failed, "Test failure"}}}},[]]}},
+
{?eh,test_done,{'DEF','STOP_TIME'}},
+ {?eh,scb, {'_',terminate,[[]]}},
{?eh,stop_logging,[]}
];
test_events(fail_post_suite_scb) ->
[
{?eh,start_logging,{'DEF','RUNDIR'}},
- {?eh,scb,{minimal_scb,init,[[]]}},
+ {?eh,scb,{'_',init,[[]]}},
{?eh,test_start,{'DEF',{'START_TIME','LOGDIR'}}},
{?eh,tc_start,{ct_scb_empty_SUITE,init_per_suite}},
- {?eh,tc_done,{ct_scb_empty_SUITE,init_per_suite,ok}},
+ {?eh,scb,{'_',pre_init_per_suite,[ct_scb_empty_SUITE,'$proplist',[]]}},
+ {?eh,scb,{'_',post_init_per_suite,[ct_scb_empty_SUITE,'$proplist',[]]}},
+ {?eh,tc_done,{ct_scb_empty_SUITE,init_per_suite,
+ {failed,{error,"Test failure"}}}},
+ {?eh,scb,{'_',on_tc_fail,[init_per_suite, {failed,"Test failure"}, []]}},
- {?eh,tc_start,{ct_scb_empty_SUITE,test_case}},
- {?eh,tc_done,{ct_scb_empty_SUITE,test_case,ok}},
+ {?eh,tc_auto_skip,{ct_scb_empty_SUITE,test_case,
+ {failed,{ct_scb_empty_SUITE,init_per_suite,
+ {failed,"Test failure"}}}}},
+ {?eh,scb,{'_',on_tc_skip,[test_case,{tc_auto_skip,'_'},[]]}},
- {?eh,tc_start,{ct_scb_empty_SUITE,end_per_suite}},
- {?eh,tc_done,{ct_scb_empty_SUITE,end_per_suite,ok}},
+ {?eh,tc_auto_skip, {ct_scb_empty_SUITE, end_per_suite,
+ {failed, {ct_scb_empty_SUITE, init_per_suite,
+ {failed, "Test failure"}}}}},
+ {?eh,scb,{'_',on_tc_skip,[end_per_suite,{tc_auto_skip,'_'},[]]}},
+
{?eh,test_done,{'DEF','STOP_TIME'}},
+ {?eh,scb, {'_',terminate,[[]]}},
{?eh,stop_logging,[]}
];
test_events(skip_pre_suite_scb) ->
[
{?eh,start_logging,{'DEF','RUNDIR'}},
- {?eh,scb,{minimal_scb,init,[[]]}},
+ {?eh,scb,{'_',init,[[]]}},
{?eh,test_start,{'DEF',{'START_TIME','LOGDIR'}}},
{?eh,tc_start,{ct_scb_empty_SUITE,init_per_suite}},
- {?eh,tc_done,{ct_scb_empty_SUITE,init_per_suite,ok}},
+ {?eh,scb,{'_',pre_init_per_suite,[ct_scb_empty_SUITE,'$proplist',[]]}},
+ {?eh,scb,{'_',post_init_per_suite,[ct_scb_empty_SUITE,{skip,"Test skip"},[]]}},
+ {?eh,tc_done,{ct_scb_empty_SUITE,init_per_suite,{skipped,"Test skip"}}},
+ {?eh,scb,{'_',on_tc_skip,
+ [init_per_suite,{tc_user_skip,{skipped,"Test skip"}},[]]}},
- {?eh,tc_start,{ct_scb_empty_SUITE,test_case}},
- {?eh,tc_done,{ct_scb_empty_SUITE,test_case,ok}},
+ {?eh,tc_auto_skip,{ct_scb_empty_SUITE,test_case,"Test skip"}},
+ {?eh,scb,{'_',on_tc_skip,[test_case,{tc_auto_skip,"Test skip"},[]]}},
- {?eh,tc_start,{ct_scb_empty_SUITE,end_per_suite}},
- {?eh,tc_done,{ct_scb_empty_SUITE,end_per_suite,ok}},
+ {?eh,tc_auto_skip, {ct_scb_empty_SUITE, end_per_suite,"Test skip"}},
+ {?eh,scb,{'_',on_tc_skip,[end_per_suite,{tc_auto_skip,"Test skip"},[]]}},
+
{?eh,test_done,{'DEF','STOP_TIME'}},
+ {?eh,scb, {'_',terminate,[[]]}},
{?eh,stop_logging,[]}
];
test_events(skip_post_suite_scb) ->
[
{?eh,start_logging,{'DEF','RUNDIR'}},
- {?eh,scb,{minimal_scb,init,[[]]}},
+ {?eh,scb,{'_',init,[[]]}},
{?eh,test_start,{'DEF',{'START_TIME','LOGDIR'}}},
+
{?eh,tc_start,{ct_scb_empty_SUITE,init_per_suite}},
- {?eh,tc_done,{ct_scb_empty_SUITE,init_per_suite,ok}},
+ {?eh,scb,{'_',pre_init_per_suite,[ct_scb_empty_SUITE,'$proplist',[]]}},
+ {?eh,scb,{'_',post_init_per_suite,[ct_scb_empty_SUITE,'$proplist',[]]}},
+ {?eh,tc_done,{ct_scb_empty_SUITE,init_per_suite,{skipped,"Test skip"}}},
+ {?eh,scb,{'_',on_tc_skip,
+ [init_per_suite,{tc_user_skip,{skipped,"Test skip"}},[]]}},
- {?eh,tc_start,{ct_scb_empty_SUITE,test_case}},
- {?eh,tc_done,{ct_scb_empty_SUITE,test_case,ok}},
+ {?eh,tc_auto_skip,{ct_scb_empty_SUITE,test_case,"Test skip"}},
+ {?eh,scb,{'_',on_tc_skip,[test_case,{tc_auto_skip,"Test skip"},[]]}},
+
+ {?eh,tc_auto_skip, {ct_scb_empty_SUITE, end_per_suite,"Test skip"}},
+ {?eh,scb,{'_',on_tc_skip,[end_per_suite,{tc_auto_skip,"Test skip"},[]]}},
- {?eh,tc_start,{ct_scb_empty_SUITE,end_per_suite}},
- {?eh,tc_done,{ct_scb_empty_SUITE,end_per_suite,ok}},
{?eh,test_done,{'DEF','STOP_TIME'}},
{?eh,stop_logging,[]}
];
diff --git a/lib/common_test/test/ct_suite_callback_SUITE_data/scb/tests/fail_post_suite_scb.erl b/lib/common_test/test/ct_suite_callback_SUITE_data/scb/tests/fail_post_suite_scb.erl
new file mode 100644
index 0000000000..2ba5013652
--- /dev/null
+++ b/lib/common_test/test/ct_suite_callback_SUITE_data/scb/tests/fail_post_suite_scb.erl
@@ -0,0 +1,72 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2010. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+
+
+-module(fail_post_suite_scb).
+
+
+-include_lib("common_test/src/ct_util.hrl").
+-include_lib("common_test/include/ct_event.hrl").
+
+
+%% Suite Callbacks
+-compile(export_all).
+
+init(Opts) ->
+ empty_scb:init(Opts).
+
+pre_init_per_suite(Suite, Config, State) ->
+ empty_scb:pre_init_per_suite(Suite,Config,State).
+
+post_init_per_suite(Suite,Config,State) ->
+ empty_scb:post_init_per_suite(Suite,Config,State),
+ {{fail, "Test failure"}, State}.
+
+pre_end_per_suite(Suite,Config,State) ->
+ empty_scb:pre_end_per_suite(Suite,Config,State).
+
+post_end_per_suite(Suite,Config,State) ->
+ empty_scb:post_end_per_suite(Suite,Config,State).
+
+pre_init_per_group(Group,Config,State) ->
+ empty_scb:pre_init_per_group(Group,Config,State).
+
+post_init_per_group(Group,Config,State) ->
+ empty_scb:post_init_per_group(Group,Config,State).
+
+pre_end_per_group(Group,Config,State) ->
+ empty_scb:pre_end_per_group(Group,Config,State).
+
+post_end_per_group(Group,Config,State) ->
+ empty_scb:post_end_per_group(Group,Config,State).
+
+pre_init_per_testcase(TC,Config,State) ->
+ empty_scb:pre_init_per_testcase(TC,Config,State).
+
+post_end_per_testcase(TC,Config,State) ->
+ empty_scb:post_end_per_testcase(TC,Config,State).
+
+on_tc_fail(TC, Reason, State) ->
+ empty_scb:on_tc_fail(TC,Reason,State).
+
+on_tc_skip(TC, Reason, State) ->
+ empty_scb:on_tc_skip(TC,Reason,State).
+
+terminate(State) ->
+ empty_scb:terminate(State).
diff --git a/lib/common_test/test/ct_suite_callback_SUITE_data/scb/tests/fail_pre_suite_scb.erl b/lib/common_test/test/ct_suite_callback_SUITE_data/scb/tests/fail_pre_suite_scb.erl
new file mode 100644
index 0000000000..f108624836
--- /dev/null
+++ b/lib/common_test/test/ct_suite_callback_SUITE_data/scb/tests/fail_pre_suite_scb.erl
@@ -0,0 +1,72 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2010. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+
+
+-module(fail_pre_suite_scb).
+
+
+-include_lib("common_test/src/ct_util.hrl").
+-include_lib("common_test/include/ct_event.hrl").
+
+
+%% Suite Callbacks
+-compile(export_all).
+
+init(Opts) ->
+ empty_scb:init(Opts).
+
+pre_init_per_suite(Suite, Config, State) ->
+ empty_scb:pre_init_per_suite(Suite,Config,State),
+ {{fail, "Test failure"}, State}.
+
+post_init_per_suite(Suite,Config,State) ->
+ empty_scb:post_init_per_suite(Suite,Config,State).
+
+pre_end_per_suite(Suite,Config,State) ->
+ empty_scb:pre_end_per_suite(Suite,Config,State).
+
+post_end_per_suite(Suite,Config,State) ->
+ empty_scb:post_end_per_suite(Suite,Config,State).
+
+pre_init_per_group(Group,Config,State) ->
+ empty_scb:pre_init_per_group(Group,Config,State).
+
+post_init_per_group(Group,Config,State) ->
+ empty_scb:post_init_per_group(Group,Config,State).
+
+pre_end_per_group(Group,Config,State) ->
+ empty_scb:pre_end_per_group(Group,Config,State).
+
+post_end_per_group(Group,Config,State) ->
+ empty_scb:post_end_per_group(Group,Config,State).
+
+pre_init_per_testcase(TC,Config,State) ->
+ empty_scb:pre_init_per_testcase(TC,Config,State).
+
+post_end_per_testcase(TC,Config,State) ->
+ empty_scb:post_end_per_testcase(TC,Config,State).
+
+on_tc_fail(TC, Reason, State) ->
+ empty_scb:on_tc_fail(TC,Reason,State).
+
+on_tc_skip(TC, Reason, State) ->
+ empty_scb:on_tc_skip(TC,Reason,State).
+
+terminate(State) ->
+ empty_scb:terminate(State).
diff --git a/lib/common_test/test/ct_suite_callback_SUITE_data/scb/tests/skip_post_suite_scb.erl b/lib/common_test/test/ct_suite_callback_SUITE_data/scb/tests/skip_post_suite_scb.erl
new file mode 100644
index 0000000000..5462e34175
--- /dev/null
+++ b/lib/common_test/test/ct_suite_callback_SUITE_data/scb/tests/skip_post_suite_scb.erl
@@ -0,0 +1,72 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2010. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+
+
+-module(skip_post_suite_scb).
+
+
+-include_lib("common_test/src/ct_util.hrl").
+-include_lib("common_test/include/ct_event.hrl").
+
+
+%% Suite Callbacks
+-compile(export_all).
+
+init(Opts) ->
+ empty_scb:init(Opts).
+
+pre_init_per_suite(Suite, Config, State) ->
+ empty_scb:pre_init_per_suite(Suite,Config,State).
+
+post_init_per_suite(Suite,Config,State) ->
+ empty_scb:post_init_per_suite(Suite,Config,State),
+ {{skip, "Test skip"}, State}.
+
+pre_end_per_suite(Suite,Config,State) ->
+ empty_scb:pre_end_per_suite(Suite,Config,State).
+
+post_end_per_suite(Suite,Config,State) ->
+ empty_scb:post_end_per_suite(Suite,Config,State).
+
+pre_init_per_group(Group,Config,State) ->
+ empty_scb:pre_init_per_group(Group,Config,State).
+
+post_init_per_group(Group,Config,State) ->
+ empty_scb:post_init_per_group(Group,Config,State).
+
+pre_end_per_group(Group,Config,State) ->
+ empty_scb:pre_end_per_group(Group,Config,State).
+
+post_end_per_group(Group,Config,State) ->
+ empty_scb:post_end_per_group(Group,Config,State).
+
+pre_init_per_testcase(TC,Config,State) ->
+ empty_scb:pre_init_per_testcase(TC,Config,State).
+
+post_end_per_testcase(TC,Config,State) ->
+ empty_scb:post_end_per_testcase(TC,Config,State).
+
+on_tc_fail(TC, Reason, State) ->
+ empty_scb:on_tc_fail(TC,Reason,State).
+
+on_tc_skip(TC, Reason, State) ->
+ empty_scb:on_tc_skip(TC,Reason,State).
+
+terminate(State) ->
+ empty_scb:terminate(State).
diff --git a/lib/common_test/test/ct_suite_callback_SUITE_data/scb/tests/skip_pre_suite_scb.erl b/lib/common_test/test/ct_suite_callback_SUITE_data/scb/tests/skip_pre_suite_scb.erl
new file mode 100644
index 0000000000..006ae4a90f
--- /dev/null
+++ b/lib/common_test/test/ct_suite_callback_SUITE_data/scb/tests/skip_pre_suite_scb.erl
@@ -0,0 +1,73 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2010. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+
+
+-module(skip_pre_suite_scb).
+
+
+-include_lib("common_test/src/ct_util.hrl").
+-include_lib("common_test/include/ct_event.hrl").
+
+
+%% Suite Callbacks
+-compile(export_all).
+
+init(Opts) ->
+ empty_scb:init(Opts).
+
+
+pre_init_per_suite(Suite, Config, State) ->
+ empty_scb:pre_init_per_suite(Suite,Config,State),
+ {{skip, "Test skip"}, State}.
+
+post_init_per_suite(Suite,Config,State) ->
+ empty_scb:post_init_per_suite(Suite,Config,State).
+
+pre_end_per_suite(Suite,Config,State) ->
+ empty_scb:pre_end_per_suite(Suite,Config,State).
+
+post_end_per_suite(Suite,Config,State) ->
+ empty_scb:post_end_per_suite(Suite,Config,State).
+
+pre_init_per_group(Group,Config,State) ->
+ empty_scb:pre_init_per_group(Group,Config,State).
+
+post_init_per_group(Group,Config,State) ->
+ empty_scb:post_init_per_group(Group,Config,State).
+
+pre_end_per_group(Group,Config,State) ->
+ empty_scb:pre_end_per_group(Group,Config,State).
+
+post_end_per_group(Group,Config,State) ->
+ empty_scb:post_end_per_group(Group,Config,State).
+
+pre_init_per_testcase(TC,Config,State) ->
+ empty_scb:pre_init_per_testcase(TC,Config,State).
+
+post_end_per_testcase(TC,Config,State) ->
+ empty_scb:post_end_per_testcase(TC,Config,State).
+
+on_tc_fail(TC, Reason, State) ->
+ empty_scb:on_tc_fail(TC,Reason,State).
+
+on_tc_skip(TC, Reason, State) ->
+ empty_scb:on_tc_skip(TC,Reason,State).
+
+terminate(State) ->
+ empty_scb:terminate(State).