aboutsummaryrefslogtreecommitdiffstats
path: root/lib/common_test/test/ct_skip_SUITE.erl
diff options
context:
space:
mode:
authorPeter Andersson <[email protected]>2013-11-08 16:55:39 +0100
committerPeter Andersson <[email protected]>2013-11-18 18:07:10 +0100
commita522754dde5071ca131f3463a57f5ca4ecfedd6b (patch)
tree4818fb5a7f86825736baa651ad5c6b0fab098e21 /lib/common_test/test/ct_skip_SUITE.erl
parent16f45bc71e6a9cec351ca562a7a1e77569d4cdcf (diff)
downloadotp-a522754dde5071ca131f3463a57f5ca4ecfedd6b.tar.gz
otp-a522754dde5071ca131f3463a57f5ca4ecfedd6b.tar.bz2
otp-a522754dde5071ca131f3463a57f5ca4ecfedd6b.zip
Fix problem with suites and groups skipped from test specification
Diffstat (limited to 'lib/common_test/test/ct_skip_SUITE.erl')
-rw-r--r--lib/common_test/test/ct_skip_SUITE.erl47
1 files changed, 45 insertions, 2 deletions
diff --git a/lib/common_test/test/ct_skip_SUITE.erl b/lib/common_test/test/ct_skip_SUITE.erl
index a67ad3f374..10e834ff2a 100644
--- a/lib/common_test/test/ct_skip_SUITE.erl
+++ b/lib/common_test/test/ct_skip_SUITE.erl
@@ -59,7 +59,7 @@ end_per_testcase(TestCase, Config) ->
suite() -> [{ct_hooks,[ts_install_cth]}].
all() ->
- [auto_skip, user_skip].
+ [auto_skip, user_skip, testspec_skip].
groups() ->
[].
@@ -133,8 +133,48 @@ user_skip(Config) when is_list(Config) ->
ok = ct_test_support:verify_events(TestEvents, Events, Config).
%%%-----------------------------------------------------------------
+%%%
+testspec_skip(Config) when is_list(Config) ->
+ TestDir = filename:join(?config(data_dir, Config),
+ filename:join("skip", "test")),
+ TestSpec1 = [{suites, TestDir, user_skip_7_SUITE},
+ {skip_cases, TestDir, user_skip_7_SUITE, [tc1,tc3], "SKIPPED"}],
+
+ TestSpec2 = [{suites, TestDir, user_skip_7_SUITE},
+ {skip_groups, TestDir, user_skip_7_SUITE, ptop1, "SKIPPED"}],
+
+ TestSpec3 = [{suites, TestDir, user_skip_7_SUITE},
+ {skip_groups, TestDir, user_skip_7_SUITE, psub1, "SKIPPED"}],
+
+ {Opts,ERPid} = setup_testspec([{ts1,TestSpec1},
+ {ts2,TestSpec2},
+ {ts3,TestSpec3}], Config),
+
+ ok = ct_test_support:run(Opts, Config),
+
+ Events = ct_test_support:get_events(ERPid, Config),
+
+ ct_test_support:log_events(testspec_skip,
+ reformat(Events, ?eh),
+ ?config(priv_dir, Config),
+ Opts),
+
+ TestEvents = events_to_check(testspec_skip),
+ ok = ct_test_support:verify_events(TestEvents, Events, Config).
+
+%%%-----------------------------------------------------------------
%%% HELP FUNCTIONS
%%%-----------------------------------------------------------------
+setup_testspec(TestSpecs, Config) ->
+ SpecFiles =
+ [begin SpecFile = filename:join(?config(priv_dir, Config),
+ atom_to_list(SpecName)++".spec"),
+ {ok,Dev} = file:open(SpecFile, [write]),
+ [io:format(Dev, "~p.~n", [Term]) || Term <- TestSpec],
+ file:close(Dev),
+ SpecFile
+ end || {SpecName,TestSpec} <- TestSpecs],
+ setup({spec,SpecFiles}, Config).
setup(Test, Config) ->
Opts0 = ct_test_support:get_opts(Config),
@@ -678,4 +718,7 @@ test_events(user_skip) ->
{?eh,test_done,{'DEF','STOP_TIME'}},
{?eh,stop_logging,[]}
- ].
+ ];
+
+test_events(testspec_skip) ->
+ [].