aboutsummaryrefslogtreecommitdiffstats
path: root/lib/common_test/src/ct_hooks.erl
diff options
context:
space:
mode:
Diffstat (limited to 'lib/common_test/src/ct_hooks.erl')
-rw-r--r--lib/common_test/src/ct_hooks.erl19
1 files changed, 17 insertions, 2 deletions
diff --git a/lib/common_test/src/ct_hooks.erl b/lib/common_test/src/ct_hooks.erl
index 2a23cd992b..8f452ef5e3 100644
--- a/lib/common_test/src/ct_hooks.erl
+++ b/lib/common_test/src/ct_hooks.erl
@@ -213,10 +213,25 @@ call([{HookId, Fun} | Rest], Config, Meta, Hooks) ->
try
Hook = lists:keyfind(HookId, #ct_hook_config.id, Hooks),
{NewConf, NewHook} = Fun(Hook, Config, Meta),
- NewCalls = get_new_hooks(NewConf, Fun),
+
+ %%! --- Fri Mar 16 17:27:25 2012 --- peppe was here!
+ %%!!??
+ NewConf1 =
+ if is_tuple(NewConf) ->
+ if element(1, NewConf) == skip;
+ element(1, NewConf) == fail ->
+ Config;
+ true ->
+ NewConf
+ end;
+ true ->
+ NewConf
+ end,
+
+ NewCalls = get_new_hooks(NewConf1, Fun),
NewHooks = lists:keyreplace(HookId, #ct_hook_config.id, Hooks, NewHook),
call(resort(NewCalls ++ Rest,NewHooks,Meta), %% Resort if call_init changed prio
- remove(?config_name, NewConf), Meta,
+ remove(?config_name, NewConf1), Meta,
terminate_if_scope_ends(HookId, Meta, NewHooks))
catch throw:{error_in_cth_call,Reason} ->
call(Rest, {fail, Reason}, Meta,