diff options
-rwxr-xr-x | lib/common_test/src/ct_config.erl | 43 | ||||
-rw-r--r-- | lib/common_test/src/ct_testspec.erl | 2 |
2 files changed, 28 insertions, 17 deletions
diff --git a/lib/common_test/src/ct_config.erl b/lib/common_test/src/ct_config.erl index 6fd89c5617..312dc8782f 100755 --- a/lib/common_test/src/ct_config.erl +++ b/lib/common_test/src/ct_config.erl @@ -208,7 +208,9 @@ get_config_file_list(Opts)-> read_config_files(Opts) -> AddCallback = fun(CallBack, [])-> [{CallBack, []}]; - (CallBack, Files)-> + (CallBack, [F|_]=Files) when is_integer(F)-> + [{CallBack, Files}]; + (CallBack, [F|_]=Files) when is_list(F)-> lists:map(fun(X)-> {CallBack, X} end, Files) end, ConfigFiles = case lists:keyfind(config, 1, Opts) of @@ -697,20 +699,31 @@ check_callback_load(Callback)-> end. check_config_files(Configs)-> - lists:keysearch(error, 1, - lists:flatten( - lists:map(fun({Callback, Files})-> - case check_callback_load(Callback) of - {ok, Callback}-> - lists:map(fun(File)-> - Callback:check_parameter(File) - end, - Files); - {error, _}-> - {error, {callback, Callback}} - end - end, - Configs))). + ConfigChecker = fun + ({Callback, [F|_R]=Files})-> + case check_callback_load(Callback) of + {ok, Callback}-> + if + is_integer(F)-> + Callback:check_parameter(Files); + is_list(F)-> + lists:map(fun(File)-> + Callback:check_parameter(File) + end, + Files) + end; + {error, _}-> + {error, {callback, Callback}} + end; + ({Callback, []})-> + case check_callback_load(Callback) of + {ok, Callback}-> + Callback:check_parameter([]); + {error, _}-> + {error, {callback, Callback}} + end + end, + lists:keysearch(error, 1, lists:flatten(lists:map(ConfigChecker, Configs))). prepare_user_configs([ConfigString|UserConfigs], Acc, new)-> prepare_user_configs(UserConfigs, diff --git a/lib/common_test/src/ct_testspec.erl b/lib/common_test/src/ct_testspec.erl index c07de370b0..028c614991 100644 --- a/lib/common_test/src/ct_testspec.erl +++ b/lib/common_test/src/ct_testspec.erl @@ -306,8 +306,6 @@ get_global([{node,Ref,Node}|Ts],Spec=#testspec{nodes=Refs}) -> get_global([_|Ts],Spec) -> get_global(Ts,Spec); get_global([],Spec) -> Spec. -% TODO probably we can terminate here, if any problem with the filename -% anyway, later ct_run will do it for us :-) get_absfile(Callback, FullName,#testspec{spec_dir=SpecDir}) -> % we need to temporary switch to new cwd here, because % otherwise config files cannot be found |