From 21a7ce9d0cb2358e74e302123d1cf45bd865224f Mon Sep 17 00:00:00 2001 From: Lukas Larsson Date: Tue, 23 Nov 2010 17:41:06 +0100 Subject: Add init_per_suite skip and fail test cases --- lib/common_test/test/ct_suite_callback_SUITE.erl | 94 ++++++++++++++++------ .../scb/tests/fail_post_suite_scb.erl | 72 +++++++++++++++++ .../scb/tests/fail_pre_suite_scb.erl | 72 +++++++++++++++++ .../scb/tests/skip_post_suite_scb.erl | 72 +++++++++++++++++ .../scb/tests/skip_pre_suite_scb.erl | 73 +++++++++++++++++ 5 files changed, 357 insertions(+), 26 deletions(-) create mode 100644 lib/common_test/test/ct_suite_callback_SUITE_data/scb/tests/fail_post_suite_scb.erl create mode 100644 lib/common_test/test/ct_suite_callback_SUITE_data/scb/tests/fail_pre_suite_scb.erl create mode 100644 lib/common_test/test/ct_suite_callback_SUITE_data/scb/tests/skip_post_suite_scb.erl create mode 100644 lib/common_test/test/ct_suite_callback_SUITE_data/scb/tests/skip_pre_suite_scb.erl 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). -- cgit v1.2.3