From e04b9be7167841c7eaefcfb7eee5b4bc2eb3a943 Mon Sep 17 00:00:00 2001 From: Andrey Pampukha Date: Thu, 11 Mar 2010 14:21:51 +0100 Subject: Add tests for test specifications --- lib/common_test/test/ct_config_SUITE.erl | 54 ++++++++++++++++++++-- .../config/test/config_driver.erl | 13 ++++-- 2 files changed, 60 insertions(+), 7 deletions(-) (limited to 'lib/common_test/test') diff --git a/lib/common_test/test/ct_config_SUITE.erl b/lib/common_test/test/ct_config_SUITE.erl index 4ae68fbfa8..ad7c521946 100644 --- a/lib/common_test/test/ct_config_SUITE.erl +++ b/lib/common_test/test/ct_config_SUITE.erl @@ -63,7 +63,10 @@ all(suite) -> [ require, userconfig_static, - userconfig_dynamic + userconfig_dynamic, + testspec_legacy, + testspec_static, + testspec_dynamic ]. @@ -93,9 +96,52 @@ userconfig_dynamic(Config) when is_list(Config) -> {userconfig, {config_driver, "config_server"}}, ["config_2_SUITE"]). +testspec_legacy(Config) when is_list(Config) -> + DataDir = ?config(data_dir, Config), + make_spec(DataDir, + "config/spec_legacy.spec", + [config_1_SUITE], + [{config, filename:join(DataDir, "config/config.txt")}]), + run_test(testspec_legacy, + Config, + {spec, filename:join(DataDir, "config/spec_legacy.spec")}, + []), + file:delete(filename:join(DataDir, "config/spec_legacy.spec")). + +testspec_static(Config) when is_list(Config) -> + DataDir = ?config(data_dir, Config), + make_spec(DataDir, + "config/spec_static.spec", + [config_1_SUITE], + [{userconfig, {ct_config_xml, filename:join(DataDir, "config/config.xml")}}]), + run_test(testspec_static, + Config, + {spec, filename:join(DataDir, "config/spec_static.spec")}, + []), + file:delete(filename:join(DataDir, "config/spec_static.spec")). + +testspec_dynamic(Config) when is_list(Config) -> + DataDir = ?config(data_dir, Config), + make_spec(DataDir, "config/spec_dynamic.spec", + [config_2_SUITE], + [{userconfig, {config_driver, "config_server"}}]), + run_test(testspec_dynamic, + Config, + {spec, filename:join(DataDir, "config/spec_dynamic.spec")}, + []), + file:delete(filename:join(DataDir, "config/spec_dynamic.spec")). + %%%----------------------------------------------------------------- %%% HELP FUNCTIONS %%%----------------------------------------------------------------- +% {suites, "ct_config_SUITE_data/config/test", config_2_SUITE}. +make_spec(DataDir, Filename, Suites, Config)-> + {ok, Fd} = file:open(filename:join(DataDir, Filename), [write]), + ok = file:write(Fd, + io_lib:format("{suites, \"~sconfig/test/\", ~p}.~n", [DataDir, Suites])), + lists:foreach(fun(C)-> ok=file:write(Fd, io_lib:format("~p.~n", [C])) end, Config), + ok = file:close(Fd). + run_test(Name, Config, CTConfig, SuiteNames)-> DataDir = ?config(data_dir, Config), Joiner = fun(Suite) -> filename:join(DataDir, "config/test/"++Suite) end, @@ -123,7 +169,9 @@ reformat_events(Events, EH) -> %%%----------------------------------------------------------------- %%% TEST EVENTS %%%----------------------------------------------------------------- -expected_events(ReqOrUCS) when ReqOrUCS==require; ReqOrUCS==userconfig_static-> +expected_events(Static) when + Static == require; Static == testspec_legacy; + Static == userconfig_static; Static == testspec_static-> [ {?eh,start_logging,{'DEF','RUNDIR'}}, {?eh,test_start,{'DEF',{'START_TIME','LOGDIR'}}}, @@ -163,7 +211,7 @@ expected_events(ReqOrUCS) when ReqOrUCS==require; ReqOrUCS==userconfig_static-> {?eh,stop_logging,[]} ]; -expected_events(userconfig_dynamic)-> +expected_events(Dynamic) when Dynamic == testspec_dynamic; Dynamic == userconfig_dynamic-> [ {ct_test_support_eh,start_logging,{'DEF','RUNDIR'}}, {ct_test_support_eh,test_start,{'DEF',{'START_TIME','LOGDIR'}}}, diff --git a/lib/common_test/test/ct_config_SUITE_data/config/test/config_driver.erl b/lib/common_test/test/ct_config_SUITE_data/config/test/config_driver.erl index 37572500c7..670639f7c7 100644 --- a/lib/common_test/test/ct_config_SUITE_data/config/test/config_driver.erl +++ b/lib/common_test/test/ct_config_SUITE_data/config/test/config_driver.erl @@ -33,9 +33,14 @@ read_config(ServerName)-> check_parameter(ServerName)-> ServerModule = list_to_atom(ServerName), - case code:load_file(ServerModule) of - {module, ServerModule}-> + case code:is_loaded(ServerModule) of + {file, _}-> {ok, {config, ServerName}}; - {error, nofile}-> - {nok, {wrong_config, "File not found: " ++ ServerName ++ ".beam"}} + false-> + case code:load_file(ServerModule) of + {module, ServerModule}-> + {ok, {config, ServerName}}; + {error, nofile}-> + {nok, {wrong_config, "File not found: " ++ ServerName ++ ".beam"}} + end end. -- cgit v1.2.3