diff options
Diffstat (limited to 'lib/common_test')
| -rw-r--r-- | lib/common_test/src/ct_suite_callback.erl | 13 | ||||
| -rw-r--r-- | lib/common_test/src/ct_util.erl | 4 | 
2 files changed, 14 insertions, 3 deletions
| diff --git a/lib/common_test/src/ct_suite_callback.erl b/lib/common_test/src/ct_suite_callback.erl index 702d9a354c..44e54f3968 100644 --- a/lib/common_test/src/ct_suite_callback.erl +++ b/lib/common_test/src/ct_suite_callback.erl @@ -27,7 +27,7 @@  -export([init/1]).  -export([init_tc/3]).  -export([end_tc/4]). --export([terminate/2]). +-export([terminate/1]).  -type proplist() :: [{atom(),term()}]. @@ -47,9 +47,12 @@ init(Opts) ->  %% @doc Called after all suites are done. --spec terminate(Config :: proplist(),State :: term()) -> +-spec terminate(Callbacks :: term()) ->      ok. -terminate(_Config, _State) -> +terminate(Callbacks) -> +    io:format("Callbacks: ~p",[Callbacks]), +    call([{CBId, fun call_terminate/3} || {CBId,_} <- Callbacks], +	 ct_suite_callback_init_dummy, undefined, Callbacks),      ok.  %% @doc Called as each test case is started. This includes all configuration @@ -105,6 +108,10 @@ call_init({Mod, State}, Config, _) ->      {Id, NewState} = Mod:init(State),      {Config, {Id, {Mod, NewState}}}. +call_terminate({Mod, State}, _, _) -> +    Mod:terminate(State), +    {[],{Mod,State}}. +  call_generic({Mod, State}, Config, {Function, undefined}) ->      {NewConf, NewState} = Mod:Function(Config, State),      {NewConf, {Mod, NewState}}; diff --git a/lib/common_test/src/ct_util.erl b/lib/common_test/src/ct_util.erl index 4696b3c954..fddeff881e 100644 --- a/lib/common_test/src/ct_util.erl +++ b/lib/common_test/src/ct_util.erl @@ -313,6 +313,10 @@ loop(Mode,TestData,StartDir) ->  	    ct_event:sync_notify(#event{name=test_done,  					node=node(),  					data=Time}), +	    Callbacks = ets:lookup_element(?suite_table, +					   suite_callbacks, +					   #suite_data.value), +	    ct_suite_callback:terminate(Callbacks),  	    close_connections(ets:tab2list(?conn_table)),  	    ets:delete(?conn_table),  	    ets:delete(?board_table), | 
