From 6b9f8b54324891f2d7fed236cb2860896215d755 Mon Sep 17 00:00:00 2001 From: Lukas Larsson Date: Thu, 28 Jul 2011 19:12:37 +0200 Subject: Add priority functionality and tests for ct hooks Priority allows the user of ct hooks to specify which order the hooks should execute in. The priority of a hook is specified when installing the hook, and stays the same for both pre and post hooks --- lib/common_test/test/ct_hooks_SUITE.erl | 76 ++++++++++++++++++++-- .../cth/tests/ct_cth_prio_SUITE.erl | 58 +++++++++++++++++ 2 files changed, 130 insertions(+), 4 deletions(-) create mode 100644 lib/common_test/test/ct_hooks_SUITE_data/cth/tests/ct_cth_prio_SUITE.erl (limited to 'lib/common_test/test') diff --git a/lib/common_test/test/ct_hooks_SUITE.erl b/lib/common_test/test/ct_hooks_SUITE.erl index 8574d7aabc..16a95461e6 100644 --- a/lib/common_test/test/ct_hooks_SUITE.erl +++ b/lib/common_test/test/ct_hooks_SUITE.erl @@ -83,7 +83,7 @@ all(suite) -> fail_post_suite_cth, skip_pre_suite_cth, skip_post_suite_cth, recover_post_suite_cth, update_config_cth, state_update_cth, options_cth, same_id_cth, - fail_n_skip_with_minimal_cth + fail_n_skip_with_minimal_cth, prio_cth ] ) . @@ -209,6 +209,10 @@ fail_n_skip_with_minimal_cth(Config) when is_list(Config) -> do_test(fail_n_skip_with_minimal_cth, "ct_cth_fail_one_skip_one_SUITE.erl", [minimal_terminate_cth],Config). +prio_cth(Config) when is_list(Config) -> + do_test(prio_cth, "ct_cth_prio_SUITE.erl", + [{empty_cth,[1000],1000},{empty_cth,[900],900}],Config). + %%%----------------------------------------------------------------- %%% HELP FUNCTIONS %%%----------------------------------------------------------------- @@ -296,9 +300,9 @@ test_events(two_empty_cth) -> {?eh,start_logging,{'DEF','RUNDIR'}}, {?eh,test_start,{'DEF',{'START_TIME','LOGDIR'}}}, {?eh,cth,{'_',id,[[]]}}, - {?eh,cth,{'_',init,['_',[]]}}, {?eh,cth,{'_',id,[[]]}}, {?eh,cth,{'_',init,['_',[]]}}, + {?eh,cth,{'_',init,['_',[]]}}, {?eh,tc_start,{ct_cth_empty_SUITE,init_per_suite}}, {?eh,cth,{'_',pre_init_per_suite,[ct_cth_empty_SUITE,'$proplist',[]]}}, {?eh,cth,{'_',pre_init_per_suite,[ct_cth_empty_SUITE,'$proplist',[]]}}, @@ -365,9 +369,9 @@ test_events(minimal_and_maximal_cth) -> [ {?eh,start_logging,{'DEF','RUNDIR'}}, {?eh,test_start,{'DEF',{'START_TIME','LOGDIR'}}}, + {?eh,cth,{'_',id,[[]]}}, {negative,{?eh,cth,{'_',id,['_',[]]}}, {?eh,cth,{'_',init,['_',[]]}}}, - {?eh,cth,{'_',id,[[]]}}, {?eh,cth,{'_',init,['_',[]]}}, {?eh,tc_start,{ct_cth_empty_SUITE,init_per_suite}}, {?eh,cth,{'_',pre_init_per_suite,[ct_cth_empty_SUITE,'$proplist',[]]}}, @@ -954,8 +958,8 @@ test_events(same_id_cth) -> {?eh,start_logging,{'DEF','RUNDIR'}}, {?eh,test_start,{'DEF',{'START_TIME','LOGDIR'}}}, {?eh,cth,{'_',id,[[]]}}, - {?eh,cth,{'_',init,[same_id_cth,[]]}}, {?eh,cth,{'_',id,[[]]}}, + {?eh,cth,{'_',init,[same_id_cth,[]]}}, {?eh,tc_start,{ct_cth_empty_SUITE,init_per_suite}}, {?eh,cth,{'_',pre_init_per_suite,[ct_cth_empty_SUITE,'$proplist',[]]}}, {negative, @@ -1001,6 +1005,70 @@ test_events(fail_n_skip_with_minimal_cth) -> {?eh,stop_logging,[]} ]; +test_events(prio_cth) -> + [{?eh,start_logging,{'DEF','RUNDIR'}}, + {?eh,test_start,{'DEF',{'START_TIME','LOGDIR'}}}, + + {?eh,tc_start,{ct_cth_prio_SUITE,init_per_suite}}, + {?eh,cth,{'_',pre_init_per_suite,['_','_',[800]]}}, + {?eh,cth,{'_',pre_init_per_suite,['_','_',[900]]}}, + {?eh,cth,{'_',pre_init_per_suite,['_','_',[1000]]}}, + {?eh,cth,{'_',post_init_per_suite,['_','_','_',[700]]}}, + {?eh,cth,{'_',post_init_per_suite,['_','_','_',[800]]}}, + {?eh,cth,{'_',post_init_per_suite,['_','_','_',[900]]}}, + {?eh,cth,{'_',post_init_per_suite,['_','_','_',[1000]]}}, + {?eh,tc_done,{ct_cth_prio_SUITE,init_per_suite,ok}}, + + + [{?eh,tc_start,{ct_cth_prio_SUITE,{init_per_group,'_',[]}}}, + {?eh,cth,{'_',pre_init_per_group, ['_','_',[700]]}}, + {?eh,cth,{'_',pre_init_per_group, ['_','_',[800]]}}, + {?eh,cth,{'_',pre_init_per_group, ['_','_',[900]]}}, + {?eh,cth,{'_',pre_init_per_group, ['_','_',[1000]]}}, + {?eh,cth,{'_',post_init_per_group, ['_','_','_',[600]]}}, + {?eh,cth,{'_',post_init_per_group, ['_','_','_',[700]]}}, + {?eh,cth,{'_',post_init_per_group, ['_','_','_',[800]]}}, + {?eh,cth,{'_',post_init_per_group, ['_','_','_',[900]]}}, + {?eh,cth,{'_',post_init_per_group, ['_','_','_',[1000]]}}, + {?eh,tc_done,{ct_cth_prio_SUITE,{init_per_group,'_',[]},ok}}, + + {?eh,tc_start,{ct_cth_prio_SUITE,test_case}}, + {?eh,cth,{'_',pre_init_per_testcase, ['_','_',[600]]}}, + {?eh,cth,{'_',pre_init_per_testcase, ['_','_',[700]]}}, + {?eh,cth,{'_',pre_init_per_testcase, ['_','_',[800]]}}, + {?eh,cth,{'_',pre_init_per_testcase, ['_','_',[900]]}}, + {?eh,cth,{'_',pre_init_per_testcase, ['_','_',[1000]]}}, + {?eh,cth,{'_',post_end_per_testcase, ['_','_','_',[600]]}}, + {?eh,cth,{'_',post_end_per_testcase, ['_','_','_',[700]]}}, + {?eh,cth,{'_',post_end_per_testcase, ['_','_','_',[800]]}}, + {?eh,cth,{'_',post_end_per_testcase, ['_','_','_',[900]]}}, + {?eh,cth,{'_',post_end_per_testcase, ['_','_','_',[1000]]}}, + {?eh,tc_done,{ct_cth_prio_SUITE,test_case,ok}}, + + {?eh,tc_start,{ct_cth_prio_SUITE,{end_per_group,'_',[]}}}, + {?eh,cth,{'_',pre_end_per_group, ['_','_',[600]]}}, + {?eh,cth,{'_',pre_end_per_group, ['_','_',[700]]}}, + {?eh,cth,{'_',pre_end_per_group, ['_','_',[800]]}}, + {?eh,cth,{'_',pre_end_per_group, ['_','_',[900]]}}, + {?eh,cth,{'_',pre_end_per_group, ['_','_',[1000]]}}, + {?eh,cth,{'_',post_end_per_group, ['_','_','_',[700]]}}, + {?eh,cth,{'_',post_end_per_group, ['_','_','_',[800]]}}, + {?eh,cth,{'_',post_end_per_group, ['_','_','_',[900]]}}, + {?eh,cth,{'_',post_end_per_group, ['_','_','_',[1000]]}}, + {?eh,tc_done,{ct_cth_prio_SUITE,{end_per_group,'_',[]},ok}}], + + {?eh,tc_start,{ct_cth_prio_SUITE,end_per_suite}}, + {?eh,cth,{'_',pre_end_per_suite,['_','_',[800]]}}, + {?eh,cth,{'_',pre_end_per_suite,['_','_',[900]]}}, + {?eh,cth,{'_',pre_end_per_suite,['_','_',[1000]]}}, + {?eh,cth,{'_',post_end_per_suite,['_','_','_',[800]]}}, + {?eh,cth,{'_',post_end_per_suite,['_','_','_',[900]]}}, + {?eh,cth,{'_',post_end_per_suite,['_','_','_',[1000]]}}, + {?eh,tc_done,{ct_cth_prio_SUITE,end_per_suite,ok}}, + {?eh,test_done,{'DEF','STOP_TIME'}}, + {?eh,stop_logging,[]} + ]; + test_events(ok) -> ok. diff --git a/lib/common_test/test/ct_hooks_SUITE_data/cth/tests/ct_cth_prio_SUITE.erl b/lib/common_test/test/ct_hooks_SUITE_data/cth/tests/ct_cth_prio_SUITE.erl new file mode 100644 index 0000000000..0ba18b453e --- /dev/null +++ b/lib/common_test/test/ct_hooks_SUITE_data/cth/tests/ct_cth_prio_SUITE.erl @@ -0,0 +1,58 @@ +%% +%% %CopyrightBegin% +%% +%% Copyright Ericsson AB 2010-2011. 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(ct_cth_prio_SUITE). + +%% Note: This directive should only be used in test suites. +-compile(export_all). + +-include("ct.hrl"). + +suite() -> + ([{timetrap, {minutes, 10}}, + {ct_hooks, [{empty_cth,[800],800}]}]). + +%% Test server callback functions +init_per_suite(Config) -> + [{ct_hooks, [{empty_cth,[700],700}]}|Config]. + +end_per_suite(_Config) -> + ok. + +init_per_group(_G, Config) -> + [{ct_hooks, [{empty_cth,[600],600}]}|Config]. + +end_per_group(_G, _Config) -> + ok. + +init_per_testcase(_TestCase, Config) -> + Config. + +end_per_testcase(_TestCase, _Config) -> + ok. + +all() -> + [{group,test_group}]. + +groups() -> + [{test_group,[],[test_case]}]. + +%% Test cases starts here. +test_case(Config) when is_list(Config) -> + ok. -- cgit v1.2.3 From 187cf0a2a5cb5cc5f94e2b9bb07b03955ad6eb4d Mon Sep 17 00:00:00 2001 From: Lukas Larsson Date: Fri, 29 Jul 2011 11:51:15 +0200 Subject: Update the return from init/2 to be {ok, NewState} or {ok,NewState,Priority} instead of NewState. NewState can still be returned, but is only kept for backward compatability reasons. --- lib/common_test/test/ct_hooks_SUITE_data/cth/tests/empty_cth.erl | 4 ++-- .../test/ct_hooks_SUITE_data/cth/tests/state_update_cth.erl | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'lib/common_test/test') diff --git a/lib/common_test/test/ct_hooks_SUITE_data/cth/tests/empty_cth.erl b/lib/common_test/test/ct_hooks_SUITE_data/cth/tests/empty_cth.erl index 71ed61b4c0..7befcfa57c 100644 --- a/lib/common_test/test/ct_hooks_SUITE_data/cth/tests/empty_cth.erl +++ b/lib/common_test/test/ct_hooks_SUITE_data/cth/tests/empty_cth.erl @@ -71,11 +71,11 @@ %% @doc Always called before any other callback function. Use this to initiate %% any common state. It should return an state for this CTH. -spec init(Id :: term(), Opts :: proplists:proplist()) -> - State :: #state{}. + {ok, State :: #state{}}. init(Id, Opts) -> gen_event:notify(?CT_EVMGR_REF, #event{ name = cth, node = node(), data = {?MODULE, init, [Id, Opts]}}), - Opts. + {ok,Opts}. %% @doc The ID is used to uniquly identify an CTH instance, if two CTH's %% return the same ID the seconds CTH is ignored. This function should NOT diff --git a/lib/common_test/test/ct_hooks_SUITE_data/cth/tests/state_update_cth.erl b/lib/common_test/test/ct_hooks_SUITE_data/cth/tests/state_update_cth.erl index 35c990c0be..9da48d3a4c 100644 --- a/lib/common_test/test/ct_hooks_SUITE_data/cth/tests/state_update_cth.erl +++ b/lib/common_test/test/ct_hooks_SUITE_data/cth/tests/state_update_cth.erl @@ -29,7 +29,7 @@ init(Id, Opts) -> State = empty_cth:init(Id, Opts), - [init|State]. + {ok, [init|State]}. pre_init_per_suite(Suite, Config, State) -> empty_cth:pre_init_per_suite(Suite,Config,State), -- cgit v1.2.3 From 1e18245b72b1a22f90d78ee3f21fe2ea52bebdaf Mon Sep 17 00:00:00 2001 From: Lukas Larsson Date: Tue, 2 Aug 2011 19:42:27 +0200 Subject: Fix a couple of minor bugs with hook priority The bugs caused the sorting priority to be wrong when using installed priority and built in priority. Tests to prove the order of hooks to be correct have also been added. --- lib/common_test/test/ct_hooks_SUITE.erl | 128 +++++++++++---------- .../cth/tests/ct_cth_prio_SUITE.erl | 10 +- .../ct_hooks_SUITE_data/cth/tests/prio_cth.erl | 74 ++++++++++++ 3 files changed, 147 insertions(+), 65 deletions(-) create mode 100644 lib/common_test/test/ct_hooks_SUITE_data/cth/tests/prio_cth.erl (limited to 'lib/common_test/test') diff --git a/lib/common_test/test/ct_hooks_SUITE.erl b/lib/common_test/test/ct_hooks_SUITE.erl index 16a95461e6..5c99f0f9f7 100644 --- a/lib/common_test/test/ct_hooks_SUITE.erl +++ b/lib/common_test/test/ct_hooks_SUITE.erl @@ -211,7 +211,8 @@ fail_n_skip_with_minimal_cth(Config) when is_list(Config) -> prio_cth(Config) when is_list(Config) -> do_test(prio_cth, "ct_cth_prio_SUITE.erl", - [{empty_cth,[1000],1000},{empty_cth,[900],900}],Config). + [{empty_cth,[1000],1000},{empty_cth,[900],900}, + {prio_cth,[1100,100],100},{prio_cth,[1100]}],Config). %%%----------------------------------------------------------------- %%% HELP FUNCTIONS @@ -1006,68 +1007,71 @@ test_events(fail_n_skip_with_minimal_cth) -> ]; test_events(prio_cth) -> + + GenPre = fun(Func,States) -> + [{?eh,cth,{'_',Func,['_','_',State]}} || + State <- States] + end, + + GenPost = fun(Func,States) -> + [{?eh,cth,{'_',Func,['_','_','_',State]}} || + State <- States] + end, + [{?eh,start_logging,{'DEF','RUNDIR'}}, - {?eh,test_start,{'DEF',{'START_TIME','LOGDIR'}}}, - - {?eh,tc_start,{ct_cth_prio_SUITE,init_per_suite}}, - {?eh,cth,{'_',pre_init_per_suite,['_','_',[800]]}}, - {?eh,cth,{'_',pre_init_per_suite,['_','_',[900]]}}, - {?eh,cth,{'_',pre_init_per_suite,['_','_',[1000]]}}, - {?eh,cth,{'_',post_init_per_suite,['_','_','_',[700]]}}, - {?eh,cth,{'_',post_init_per_suite,['_','_','_',[800]]}}, - {?eh,cth,{'_',post_init_per_suite,['_','_','_',[900]]}}, - {?eh,cth,{'_',post_init_per_suite,['_','_','_',[1000]]}}, - {?eh,tc_done,{ct_cth_prio_SUITE,init_per_suite,ok}}, - - - [{?eh,tc_start,{ct_cth_prio_SUITE,{init_per_group,'_',[]}}}, - {?eh,cth,{'_',pre_init_per_group, ['_','_',[700]]}}, - {?eh,cth,{'_',pre_init_per_group, ['_','_',[800]]}}, - {?eh,cth,{'_',pre_init_per_group, ['_','_',[900]]}}, - {?eh,cth,{'_',pre_init_per_group, ['_','_',[1000]]}}, - {?eh,cth,{'_',post_init_per_group, ['_','_','_',[600]]}}, - {?eh,cth,{'_',post_init_per_group, ['_','_','_',[700]]}}, - {?eh,cth,{'_',post_init_per_group, ['_','_','_',[800]]}}, - {?eh,cth,{'_',post_init_per_group, ['_','_','_',[900]]}}, - {?eh,cth,{'_',post_init_per_group, ['_','_','_',[1000]]}}, - {?eh,tc_done,{ct_cth_prio_SUITE,{init_per_group,'_',[]},ok}}, - - {?eh,tc_start,{ct_cth_prio_SUITE,test_case}}, - {?eh,cth,{'_',pre_init_per_testcase, ['_','_',[600]]}}, - {?eh,cth,{'_',pre_init_per_testcase, ['_','_',[700]]}}, - {?eh,cth,{'_',pre_init_per_testcase, ['_','_',[800]]}}, - {?eh,cth,{'_',pre_init_per_testcase, ['_','_',[900]]}}, - {?eh,cth,{'_',pre_init_per_testcase, ['_','_',[1000]]}}, - {?eh,cth,{'_',post_end_per_testcase, ['_','_','_',[600]]}}, - {?eh,cth,{'_',post_end_per_testcase, ['_','_','_',[700]]}}, - {?eh,cth,{'_',post_end_per_testcase, ['_','_','_',[800]]}}, - {?eh,cth,{'_',post_end_per_testcase, ['_','_','_',[900]]}}, - {?eh,cth,{'_',post_end_per_testcase, ['_','_','_',[1000]]}}, - {?eh,tc_done,{ct_cth_prio_SUITE,test_case,ok}}, - - {?eh,tc_start,{ct_cth_prio_SUITE,{end_per_group,'_',[]}}}, - {?eh,cth,{'_',pre_end_per_group, ['_','_',[600]]}}, - {?eh,cth,{'_',pre_end_per_group, ['_','_',[700]]}}, - {?eh,cth,{'_',pre_end_per_group, ['_','_',[800]]}}, - {?eh,cth,{'_',pre_end_per_group, ['_','_',[900]]}}, - {?eh,cth,{'_',pre_end_per_group, ['_','_',[1000]]}}, - {?eh,cth,{'_',post_end_per_group, ['_','_','_',[700]]}}, - {?eh,cth,{'_',post_end_per_group, ['_','_','_',[800]]}}, - {?eh,cth,{'_',post_end_per_group, ['_','_','_',[900]]}}, - {?eh,cth,{'_',post_end_per_group, ['_','_','_',[1000]]}}, - {?eh,tc_done,{ct_cth_prio_SUITE,{end_per_group,'_',[]},ok}}], - - {?eh,tc_start,{ct_cth_prio_SUITE,end_per_suite}}, - {?eh,cth,{'_',pre_end_per_suite,['_','_',[800]]}}, - {?eh,cth,{'_',pre_end_per_suite,['_','_',[900]]}}, - {?eh,cth,{'_',pre_end_per_suite,['_','_',[1000]]}}, - {?eh,cth,{'_',post_end_per_suite,['_','_','_',[800]]}}, - {?eh,cth,{'_',post_end_per_suite,['_','_','_',[900]]}}, - {?eh,cth,{'_',post_end_per_suite,['_','_','_',[1000]]}}, - {?eh,tc_done,{ct_cth_prio_SUITE,end_per_suite,ok}}, - {?eh,test_done,{'DEF','STOP_TIME'}}, - {?eh,stop_logging,[]} - ]; + {?eh,test_start,{'DEF',{'START_TIME','LOGDIR'}}}] ++ + + [{?eh,tc_start,{ct_cth_prio_SUITE,init_per_suite}}] ++ + GenPre(pre_init_per_suite, + [[1100,100],[800],[900],[1000],[1200,1050],[1100],[1200]]) ++ + GenPost(post_init_per_suite, + [[1100,100],[600,200],[600,600],[700],[800],[900],[1000], + [1200,1050],[1100],[1200]]) ++ + [{?eh,tc_done,{ct_cth_prio_SUITE,init_per_suite,ok}}, + + + [{?eh,tc_start,{ct_cth_prio_SUITE,{init_per_group,'_',[]}}}] ++ + GenPre(pre_init_per_group, + [[1100,100],[600,200],[600,600],[700],[800], + [900],[1000],[1200,1050],[1100],[1200]]) ++ + GenPost(post_init_per_group, + [[1100,100],[600,200],[600,600],[600],[700],[800], + [900],[900,900],[500,900],[1000],[1200,1050], + [1100],[1200]]) ++ + [{?eh,tc_done,{ct_cth_prio_SUITE,{init_per_group,'_',[]},ok}}] ++ + + [{?eh,tc_start,{ct_cth_prio_SUITE,test_case}}] ++ + GenPre(pre_init_per_testcase, + [[1100,100],[600,200],[600,600],[600],[700],[800], + [900],[900,900],[500,900],[1000],[1200,1050], + [1100],[1200]]) ++ + GenPost(post_end_per_testcase, + [[1100,100],[600,200],[600,600],[600],[700],[800], + [900],[900,900],[500,900],[1000],[1200,1050], + [1100],[1200]]) ++ + [{?eh,tc_done,{ct_cth_prio_SUITE,test_case,ok}}, + + {?eh,tc_start,{ct_cth_prio_SUITE,{end_per_group,'_',[]}}}] ++ + GenPre(pre_end_per_group, + [[1100,100],[600,200],[600,600],[600],[700],[800], + [900],[900,900],[500,900],[1000],[1200,1050], + [1100],[1200]]) ++ + GenPost(post_end_per_group, + [[1100,100],[600,200],[600,600],[600],[700],[800], + [900],[900,900],[500,900],[1000],[1200,1050], + [1100],[1200]]) ++ + [{?eh,tc_done,{ct_cth_prio_SUITE,{end_per_group,'_',[]},ok}}], + + {?eh,tc_start,{ct_cth_prio_SUITE,end_per_suite}}] ++ + GenPre(pre_end_per_suite, + [[1100,100],[600,200],[600,600],[700],[800],[900],[1000], + [1200,1050],[1100],[1200]]) ++ + GenPost(post_end_per_suite, + [[1100,100],[600,200],[600,600],[700],[800],[900],[1000], + [1200,1050],[1100],[1200]]) ++ + [{?eh,tc_done,{ct_cth_prio_SUITE,end_per_suite,ok}}, + {?eh,test_done,{'DEF','STOP_TIME'}}, + {?eh,stop_logging,[]}]; test_events(ok) -> ok. diff --git a/lib/common_test/test/ct_hooks_SUITE_data/cth/tests/ct_cth_prio_SUITE.erl b/lib/common_test/test/ct_hooks_SUITE_data/cth/tests/ct_cth_prio_SUITE.erl index 0ba18b453e..d564398cd0 100644 --- a/lib/common_test/test/ct_hooks_SUITE_data/cth/tests/ct_cth_prio_SUITE.erl +++ b/lib/common_test/test/ct_hooks_SUITE_data/cth/tests/ct_cth_prio_SUITE.erl @@ -26,17 +26,21 @@ suite() -> ([{timetrap, {minutes, 10}}, - {ct_hooks, [{empty_cth,[800],800}]}]). + {ct_hooks, [{empty_cth,[800],800}, + {prio_cth,[1200]},{prio_cth,[1200,1050],1050}]}]). %% Test server callback functions init_per_suite(Config) -> - [{ct_hooks, [{empty_cth,[700],700}]}|Config]. + [{ct_hooks, [{empty_cth,[700],700}, + {prio_cth,[600,600]}, + {prio_cth,[600,200],200}]}|Config]. end_per_suite(_Config) -> ok. init_per_group(_G, Config) -> - [{ct_hooks, [{empty_cth,[600],600}]}|Config]. + [{ct_hooks, [{empty_cth,[600],600}, + {prio_cth,[900,900]},{prio_cth,[500,900],900}]}|Config]. end_per_group(_G, _Config) -> ok. diff --git a/lib/common_test/test/ct_hooks_SUITE_data/cth/tests/prio_cth.erl b/lib/common_test/test/ct_hooks_SUITE_data/cth/tests/prio_cth.erl new file mode 100644 index 0000000000..82511ab0d3 --- /dev/null +++ b/lib/common_test/test/ct_hooks_SUITE_data/cth/tests/prio_cth.erl @@ -0,0 +1,74 @@ +%% +%% %CopyrightBegin% +%% +%% Copyright Ericsson AB 2010-2011. 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(prio_cth). + + +-include_lib("common_test/src/ct_util.hrl"). + + +%% CT Hooks +-compile(export_all). + +id(Opts) -> + empty_cth:id(Opts). + +init(Id, Opts) -> + {ok, [Prio|_] = State} = empty_cth:init(Id, Opts), + {ok, State, Prio}. + +pre_init_per_suite(Suite, Config, State) -> + empty_cth:pre_init_per_suite(Suite,Config,State). + +post_init_per_suite(Suite,Config,Return,State) -> + empty_cth:post_init_per_suite(Suite,Config,Return,State). + +pre_end_per_suite(Suite,Config,State) -> + empty_cth:pre_end_per_suite(Suite,Config,State). + +post_end_per_suite(Suite,Config,Return,State) -> + empty_cth:post_end_per_suite(Suite,Config,Return,State). + +pre_init_per_group(Group,Config,State) -> + empty_cth:pre_init_per_group(Group,Config,State). + +post_init_per_group(Group,Config,Return,State) -> + empty_cth:post_init_per_group(Group,Config,Return,State). + +pre_end_per_group(Group,Config,State) -> + empty_cth:pre_end_per_group(Group,Config,State). + +post_end_per_group(Group,Config,Return,State) -> + empty_cth:post_end_per_group(Group,Config,Return,State). + +pre_init_per_testcase(TC,Config,State) -> + empty_cth:pre_init_per_testcase(TC,Config,State). + +post_end_per_testcase(TC,Config,Return,State) -> + empty_cth:post_end_per_testcase(TC,Config,Return,State). + +on_tc_fail(TC, Reason, State) -> + empty_cth:on_tc_fail(TC,Reason,State). + +on_tc_skip(TC, Reason, State) -> + empty_cth:on_tc_skip(TC,Reason,State). + +terminate(State) -> + empty_cth:terminate(State). -- cgit v1.2.3