summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Witczak <u3s@users.noreply.github.com>2021-09-29 11:45:17 +0200
committerGitHub <noreply@github.com>2021-09-29 11:45:17 +0200
commitddddb3f16c369b9ff0dfb6207689f99b5e4c9888 (patch)
tree070d6dc461b1866b767d14df497d046f2526d197
parent7a8338768e0ee46cb0b02f4820998b82b5e9c200 (diff)
parentabe4546661ab940a6046994305b02c080690ad79 (diff)
downloaderlang-ddddb3f16c369b9ff0dfb6207689f99b5e4c9888.tar.gz
Merge pull request #5242 from acw224/acw224/common_test/group_parsing_modification
Common_test : Updated grammar for tests specifications OTP-17664 Closes #5088
-rw-r--r--lib/common_test/doc/src/run_test_chapter.xml8
-rw-r--r--lib/common_test/src/ct_groups.erl9
-rw-r--r--lib/common_test/src/ct_run.erl19
-rw-r--r--lib/common_test/test/ct_testspec_1_SUITE.erl238
-rw-r--r--lib/common_test/test/ct_testspec_1_SUITE_data/groups_1/groups_11_SUITE.erl50
5 files changed, 293 insertions, 31 deletions
diff --git a/lib/common_test/doc/src/run_test_chapter.xml b/lib/common_test/doc/src/run_test_chapter.xml
index 0b8657ced3..731e550364 100644
--- a/lib/common_test/doc/src/run_test_chapter.xml
+++ b/lib/common_test/doc/src/run_test_chapter.xml
@@ -955,9 +955,9 @@
Dir = string()
Suites = atom() | [atom()] | all
Suite = atom()
- Groups = GroupPath | [GroupPath] | GroupSpec | [GroupSpec] | all
- GroupPath = [GroupName]
- GroupSpec = GroupName | {GroupName,Properties} | {GroupName,Properties,GroupSpec}
+ Groups = GroupPath | GroupSpec | [GroupSpec] | all
+ GroupPath = [[GroupSpec]]
+ GroupSpec = GroupName | {GroupName,Properties} | {GroupName,Properties,[GroupSpec]}
GroupName = atom()
GroupNames = GroupName | [GroupName]
Cases = atom() | [atom()] | all
@@ -1608,5 +1608,3 @@ div.error pre { color:white }</pre>
</section>
</chapter>
-
-
diff --git a/lib/common_test/src/ct_groups.erl b/lib/common_test/src/ct_groups.erl
index b296939bd6..273a1acb12 100644
--- a/lib/common_test/src/ct_groups.erl
+++ b/lib/common_test/src/ct_groups.erl
@@ -550,11 +550,11 @@ search_and_override([Conf = {conf,Props,Init,Tests,End}], ORSpec, Mod) ->
Suite = ?val(suite, Props),
case lists:keysearch(Name, 1, ORSpec) of
{value,{Name,default}} ->
- [Conf];
+ [{conf, Props, Init, search_and_override(Tests, ORSpec, Mod),End}];
{value,{Name,ORProps}} ->
- [{conf,InsProps(Name,Suite,ORProps),Init,Tests,End}];
+ [{conf,InsProps(Name,Suite,ORProps),Init, search_and_override(Tests, ORSpec, Mod),End}];
{value,{Name,default,[]}} ->
- [Conf];
+ [{conf, Props, Init, search_and_override(Tests, ORSpec, Mod),End}];
{value,{Name,default,SubORSpec}} ->
override_props([Conf], SubORSpec, Name,Mod);
{value,{Name,ORProps,SubORSpec}} ->
@@ -562,7 +562,8 @@ search_and_override([Conf = {conf,Props,Init,Tests,End}], ORSpec, Mod) ->
Init,Tests,End}], SubORSpec, Name,Mod);
_ ->
[{conf,Props,Init,search_and_override(Tests,ORSpec,Mod),End}]
- end.
+ end;
+search_and_override(Tests, _, _) -> Tests.
%% Modify the Tests element according to the override specification
override_props([{conf,Props,Init,Tests,End} | Confs], SubORSpec, Name,Mod) ->
diff --git a/lib/common_test/src/ct_run.erl b/lib/common_test/src/ct_run.erl
index a69267f5ea..27d0418029 100644
--- a/lib/common_test/src/ct_run.erl
+++ b/lib/common_test/src/ct_run.erl
@@ -2050,8 +2050,23 @@ final_tests1([{TestDir,Suite,GrsOrCs}|Tests], Final, Skip, Bad) when
[ct_groups:make_conf(TestDir, Suite,
GroupName, Props, TCs)];
({GroupOrGroups,TCs}) ->
- [ct_groups:make_conf(TestDir, Suite,
- GroupOrGroups, [], TCs)];
+ case GroupOrGroups of
+ [GroupList] when is_list(GroupList) ->
+ {GrpNames, Props} = lists:foldl(
+ fun({GrpName,_} = GrSpec, {GrpNames, Props}) ->
+ {lists:append(GrpNames, [GrpName]), [GrSpec | Props]};
+ ({GrpName,_,_} = GrSpec, {GrpNames, Props}) ->
+ {lists:append(GrpNames, [GrpName]), [GrSpec | Props]};
+ (GrpName, {GrpNames, Props}) ->
+ {lists:append(GrpNames, [GrpName]), Props}
+ end,
+ {[], []}, GroupList),
+ [ct_groups:make_conf(TestDir, Suite,
+ [GrpNames], [{override, Props}], TCs)];
+ _ ->
+ [ct_groups:make_conf(TestDir, Suite,
+ GroupOrGroups, [], TCs)]
+ end;
(TC) ->
[TC]
end, GrsOrCs),
diff --git a/lib/common_test/test/ct_testspec_1_SUITE.erl b/lib/common_test/test/ct_testspec_1_SUITE.erl
index 2d2c42999f..41027dff36 100644
--- a/lib/common_test/test/ct_testspec_1_SUITE.erl
+++ b/lib/common_test/test/ct_testspec_1_SUITE.erl
@@ -63,6 +63,9 @@ all() ->
[all_suites, skip_all_suites, suite, skip_suite,
all_testcases, skip_all_testcases, testcase,
skip_testcase, all_groups, skip_all_groups, group,
+ group_path, group_config,
+ group_spec, multi_group, multi_group_config,
+ groupspec_path, groupspec_path_2,
skip_group, group_all_testcases,
skip_group_all_testcases, group_testcase,
skip_group_testcase, topgroup, subgroup, skip_subgroup,
@@ -207,12 +210,53 @@ skip_all_groups(Config) when is_list(Config) ->
group(Config) when is_list(Config) ->
DataDir = ?config(data_dir, Config),
-
TestDir = filename:join(DataDir, "groups_1"),
TestSpec = [{groups,TestDir,groups_11_SUITE,test_group_1a}],
-
setup_and_execute(group, TestSpec, Config).
+group_path(Config) when is_list(Config) ->
+ DataDir = ?config(data_dir, Config),
+ TestDir = filename:join(DataDir, "groups_1"),
+ TestSpec = [{groups,TestDir,groups_11_SUITE,[[test_group_2, test_group_3]]}],
+ setup_and_execute(group_path, TestSpec, Config).
+
+group_config(Config) when is_list(Config) ->
+ DataDir = ?config(data_dir, Config),
+ TestDir = filename:join(DataDir, "groups_1"),
+ TestSpec = [{groups,TestDir,groups_11_SUITE, {test_group_1c, [parallel]}}],
+ setup_and_execute(group_config, TestSpec, Config).
+
+group_spec(Config) when is_list(Config) ->
+ DataDir = ?config(data_dir, Config),
+ TestDir = filename:join(DataDir, "groups_1"),
+ TestSpec = [{groups,TestDir,groups_11_SUITE, {test_group_2, [parallel], [{test_group_3, [sequence]}]}}],
+ setup_and_execute(group_spec, TestSpec, Config).
+
+multi_group(Config) when is_list(Config) ->
+ DataDir = ?config(data_dir, Config),
+ TestDir = filename:join(DataDir, "groups_1"),
+ TestSpec = [{groups,TestDir,groups_11_SUITE, [test_group_1a, test_group_3]}],
+ setup_and_execute(multi_group, TestSpec, Config).
+
+multi_group_config(Config) when is_list(Config) ->
+ DataDir = ?config(data_dir, Config),
+ TestDir = filename:join(DataDir, "groups_1"),
+ TestSpec = [{groups,TestDir,groups_11_SUITE, [{test_group_2, [parallel], [{test_group_3, [sequence]}]},
+ {test_group_9, [sequence], [{test_group_8, [parallel]}]}]}],
+ setup_and_execute(multi_group_config, TestSpec, Config).
+
+groupspec_path(Config) when is_list(Config) ->
+ DataDir = ?config(data_dir, Config),
+ TestDir = filename:join(DataDir, "groups_1"),
+ TestSpec = [{groups,TestDir,groups_11_SUITE,[[{test_group_2, []}, {test_group_3,[]}]]}],
+ setup_and_execute(groupspec_path, TestSpec, Config).
+
+groupspec_path_2(Config) when is_list(Config) ->
+ DataDir = ?config(data_dir, Config),
+ TestDir = filename:join(DataDir, "groups_1"),
+ TestSpec = [{groups,TestDir,groups_11_SUITE,[[{test_group_2, [parallel]}, {test_group_3,[sequence]}]]}],
+ setup_and_execute(groupspec_path_2, TestSpec, Config).
+
skip_group(Config) when is_list(Config) ->
DataDir = ?config(data_dir, Config),
@@ -224,7 +268,6 @@ skip_group(Config) when is_list(Config) ->
setup_and_execute(skip_group, TestSpec, Config).
-
%%%-----------------------------------------------------------------
%%%
@@ -753,7 +796,7 @@ test_events(all_groups) ->
[
{?eh,start_logging,'_'},
{?eh,tc_start,{groups_11_SUITE,init_per_suite}},
- {?eh,test_stats,{12,0,{0,0}}},
+ {?eh,test_stats,{16,0,{0,0}}},
{?eh,tc_done,{groups_11_SUITE,end_per_suite,'_'}},
{negative,{?eh,tc_start,'_'},{?eh,stop_logging,'_'}}
];
@@ -761,7 +804,7 @@ test_events(all_groups) ->
test_events(skip_all_groups) ->
[
{?eh,start_logging,'_'},
- {?eh,start_info,{1,1,12}},
+ {?eh,start_info,{1,1,16}},
{?eh,tc_start,{groups_11_SUITE,init_per_suite}},
{?eh,tc_user_skip,{groups_11_SUITE,{init_per_group,test_group_1a},"SKIPPED!"}},
{?eh,tc_user_skip,{groups_11_SUITE,{testcase_1a,test_group_1a},"SKIPPED!"}},
@@ -775,26 +818,38 @@ test_events(skip_all_groups) ->
{?eh,tc_user_skip,{groups_11_SUITE,{testcase_1b,test_group_1b},"SKIPPED!"}},
{?eh,test_stats,{0,0,{4,0}}},
{?eh,tc_user_skip,{groups_11_SUITE,{end_per_group,test_group_1b},"SKIPPED!"}},
+ {?eh,tc_user_skip,{groups_11_SUITE,{init_per_group,test_group_1c},"SKIPPED!"}},
+ {?eh,tc_user_skip,{groups_11_SUITE,{testcase_1a,test_group_1c},"SKIPPED!"}},
+ {?eh,test_stats,{0,0,{5,0}}},
+ {?eh,tc_user_skip,{groups_11_SUITE,{testcase_1b,test_group_1c},"SKIPPED!"}},
+ {?eh,test_stats,{0,0,{6,0}}},
+ {?eh,tc_user_skip,{groups_11_SUITE,{end_per_group,test_group_1c},"SKIPPED!"}},
{?eh,tc_user_skip,{groups_11_SUITE,{init_per_group,test_group_2},"SKIPPED!"}},
{?eh,tc_user_skip,{groups_11_SUITE,{testcase_2a,test_group_2},"SKIPPED!"}},
- {?eh,test_stats,{0,0,{5,0}}},
+ {?eh,test_stats,{0,0,{7,0}}},
{?eh,tc_user_skip,{groups_11_SUITE,{testcase_3a,test_group_3},"SKIPPED!"}},
- {?eh,test_stats,{0,0,{6,0}}},
+ {?eh,test_stats,{0,0,{8,0}}},
{?eh,tc_user_skip,{groups_11_SUITE,{testcase_3b,test_group_3},"SKIPPED!"}},
- {?eh,test_stats,{0,0,{7,0}}},
+ {?eh,test_stats,{0,0,{9,0}}},
{?eh,tc_user_skip,{groups_11_SUITE,{testcase_2b,test_group_2},"SKIPPED!"}},
- {?eh,test_stats,{0,0,{8,0}}},
+ {?eh,test_stats,{0,0,{10,0}}},
{?eh,tc_user_skip,{groups_11_SUITE,{end_per_group,test_group_2},"SKIPPED!"}},
{?eh,tc_user_skip,{groups_11_SUITE,{init_per_group,test_group_4},"SKIPPED!"}},
{?eh,tc_user_skip,{groups_11_SUITE,{testcase_5a,test_group_5},"SKIPPED!"}},
- {?eh,test_stats,{0,0,{9,0}}},
+ {?eh,test_stats,{0,0,{11,0}}},
{?eh,tc_user_skip,{groups_11_SUITE,{testcase_7a,test_group_7},"SKIPPED!"}},
- {?eh,test_stats,{0,0,{10,0}}},
+ {?eh,test_stats,{0,0,{12,0}}},
{?eh,tc_user_skip,{groups_11_SUITE,{testcase_7b,test_group_7},"SKIPPED!"}},
- {?eh,test_stats,{0,0,{11,0}}},
+ {?eh,test_stats,{0,0,{13,0}}},
{?eh,tc_user_skip,{groups_11_SUITE,{testcase_5b,test_group_5},"SKIPPED!"}},
- {?eh,test_stats,{0,0,{12,0}}},
+ {?eh,test_stats,{0,0,{14,0}}},
{?eh,tc_user_skip,{groups_11_SUITE,{end_per_group,test_group_4},"SKIPPED!"}},
+ {?eh,tc_user_skip,{groups_11_SUITE,{init_per_group,test_group_9},"SKIPPED!"}},
+ {?eh,tc_user_skip,{groups_11_SUITE,{testcase_9,test_group_9},"SKIPPED!"}},
+ {?eh,test_stats,{0,0,{15,0}}},
+ {?eh,tc_user_skip,{groups_11_SUITE,{testcase_8,test_group_8},"SKIPPED!"}},
+ {?eh,test_stats,{0,0,{16,0}}},
+ {?eh,tc_user_skip,{groups_11_SUITE,{end_per_group,test_group_9},"SKIPPED!"}},
{?eh,tc_start,{groups_11_SUITE,end_per_suite}},
{?eh,tc_done,{groups_11_SUITE,end_per_suite,ok}},
{negative,{?eh,tc_start,'_'},{?eh,stop_logging,'_'}}
@@ -813,6 +868,65 @@ test_events(group) ->
{negative,{?eh,tc_start,'_'},{?eh,stop_logging,'_'}}
];
+test_events(group_path) ->
+ [
+ {?eh,start_logging,'_'},
+ {?eh,tc_start,{groups_11_SUITE,init_per_suite}},
+ {?eh,tc_start,{groups_11_SUITE,{init_per_group,test_group_2,[sequence]}}},
+ {?eh,tc_start,{groups_11_SUITE,{init_per_group,test_group_3,[parallel]}}},
+ {?eh,tc_done,{groups_11_SUITE,{end_per_group,test_group_3,[parallel]},'_'}},
+ {?eh,tc_done,{groups_11_SUITE,{end_per_group,test_group_2,[sequence]},'_'}},
+ {?eh,tc_done,{groups_11_SUITE,end_per_suite,'_'}},
+ {negative,{?eh,tc_start,'_'},{?eh,stop_logging,'_'}}
+ ];
+
+test_events(group_config) ->
+ [
+ {?eh,start_logging,'_'},
+ {?eh,tc_start,{groups_11_SUITE,init_per_suite}},
+ {?eh,tc_start,{groups_11_SUITE,{init_per_group,test_group_1c,[parallel]}}},
+ {?eh,tc_done,{groups_11_SUITE,{end_per_group,test_group_1c,[parallel]},'_'}},
+ {?eh,tc_done,{groups_11_SUITE,end_per_suite,'_'}},
+ {negative,{?eh,tc_start,'_'},{?eh,stop_logging,'_'}}
+ ];
+
+
+test_events(groupspec_path) ->
+ [
+ {?eh,start_logging,'_'},
+ {?eh,tc_start,{groups_11_SUITE,init_per_suite}},
+ {?eh,tc_start,{groups_11_SUITE,{init_per_group,test_group_2,[]}}},
+ {?eh,tc_start,{groups_11_SUITE,{init_per_group,test_group_3,[]}}},
+ {?eh,tc_start,{groups_11_SUITE,testcase_3a}},
+ {?eh,tc_start,{groups_11_SUITE,testcase_3b}},
+ {?eh,test_stats,{2,0,{0,0}}},
+ {?eh,tc_done,{groups_11_SUITE,{end_per_group,test_group_3,[]},'_'}},
+ {?eh,tc_done,{groups_11_SUITE,{end_per_group,test_group_2,[]},'_'}},
+ {?eh,tc_done,{groups_11_SUITE,end_per_suite,'_'}},
+ {negative,{?eh,tc_start,'_'},{?eh,stop_logging,'_'}}
+ ];
+
+test_events(groupspec_path_2) ->
+ [
+ {?eh,start_logging,'_'},
+ {?eh,tc_start,{groups_11_SUITE,init_per_suite}},
+ {parallel, [
+ {?eh,tc_start,{groups_11_SUITE,{init_per_group,test_group_2,[parallel]}}},
+ {?eh,tc_done,{groups_11_SUITE,{init_per_group,test_group_2,[parallel]},ok}},
+ [
+ {?eh,tc_start,{groups_11_SUITE,{init_per_group,test_group_3,[sequence]}}},
+ {?eh,tc_start,{groups_11_SUITE,testcase_3a}},
+ {?eh,tc_start,{groups_11_SUITE,testcase_3b}},
+ {?eh,test_stats,{2,0,{0,0}}},
+ {?eh,tc_done,{groups_11_SUITE,{end_per_group,test_group_3,[sequence]},'_'}}
+ ],
+ {?eh,tc_start,{groups_11_SUITE,{end_per_group,test_group_2,[parallel]}}},
+ {?eh,tc_done,{groups_11_SUITE,{end_per_group,test_group_2,[parallel]},ok}}
+ ]},
+ {?eh,tc_done,{groups_11_SUITE,end_per_suite,'_'}},
+ {negative,{?eh,tc_start,'_'},{?eh,stop_logging,'_'}}
+ ];
+
test_events(skip_group) ->
[
{?eh,start_logging,'_'},
@@ -858,6 +972,104 @@ test_events(group_all_testcases) ->
{negative,{?eh,tc_start,'_'},{?eh,stop_logging,'_'}}
];
+test_events(group_spec) ->
+ [
+ {?eh,start_logging,'_'},
+ {?eh,tc_start,{groups_11_SUITE,init_per_suite}},
+ {parallel, [
+ {?eh,tc_start,{groups_11_SUITE,{init_per_group,test_group_2,[parallel]}}},
+ {?eh,tc_done,{groups_11_SUITE,{init_per_group,test_group_2,[parallel]},ok}},
+ {?eh,tc_start,{groups_11_SUITE,testcase_2a}},
+ {?eh,tc_done,{groups_11_SUITE,testcase_2a,ok}},
+ [
+ {?eh,tc_start,{groups_11_SUITE,{init_per_group,test_group_3,[sequence]}}},
+ {?eh,tc_start,{groups_11_SUITE,testcase_3a}},
+ {?eh,tc_start,{groups_11_SUITE,testcase_3b}},
+ {?eh,test_stats,{3,0,{0,0}}},
+ {?eh,tc_done,{groups_11_SUITE,{end_per_group,test_group_3,[sequence]},'_'}}
+ ],
+ {?eh,tc_start,{groups_11_SUITE,testcase_2b}},
+ {?eh,tc_done,{groups_11_SUITE,testcase_2b,ok}},
+ {?eh,test_stats,{4,0,{0,0}}},
+ {?eh,tc_start,{groups_11_SUITE,{end_per_group,test_group_2,[parallel]}}},
+ {?eh,tc_done,{groups_11_SUITE,{end_per_group,test_group_2,[parallel]},ok}}
+ ]},
+ {?eh,tc_done,{groups_11_SUITE,end_per_suite,'_'}},
+ {negative,{?eh,tc_start,'_'},{?eh,stop_logging,'_'}}
+ ];
+
+test_events(multi_group) ->
+ [
+ {?eh,start_logging,'_'},
+ {?eh,tc_start,{groups_11_SUITE,init_per_suite}},
+ {?eh,tc_start,{groups_11_SUITE,{init_per_group,test_group_1a,[]}}},
+ {?eh,tc_start,{groups_11_SUITE,testcase_1a}},
+ {?eh,tc_start,{groups_11_SUITE,testcase_1b}},
+ {?eh,test_stats,{2,0,{0,0}}},
+ {?eh,tc_done,{groups_11_SUITE,{end_per_group,test_group_1a,[]},'_'}},
+ {?eh,tc_start,{groups_11_SUITE,{init_per_group,test_group_2,[sequence]}}},
+ {parallel, [
+ {?eh,tc_start,{groups_11_SUITE,{init_per_group,test_group_3,[parallel]}}},
+ {?eh,tc_done,{groups_11_SUITE,{init_per_group,test_group_3,[parallel]}, ok}},
+ {?eh,tc_start,{groups_11_SUITE,testcase_3a}},
+ {?eh,tc_done,{groups_11_SUITE,testcase_3a,ok}},
+ {?eh,tc_start,{groups_11_SUITE,testcase_3b}},
+ {?eh,tc_done,{groups_11_SUITE,testcase_3b,ok}},
+ {?eh,test_stats,{4,0,{0,0}}},
+ {?eh,tc_start,{groups_11_SUITE,{end_per_group,test_group_3,[parallel]}}},
+ {?eh,tc_done,{groups_11_SUITE,{end_per_group,test_group_3,[parallel]}, ok}}
+ ]},
+ {?eh,tc_done,{groups_11_SUITE,{end_per_group,test_group_2,[sequence]},'_'}},
+ {?eh,tc_done,{groups_11_SUITE,end_per_suite,'_'}},
+ {negative,{?eh,tc_start,'_'},{?eh,stop_logging,'_'}}
+ ];
+
+test_events(multi_group_config) ->
+ [
+ {?eh,start_logging,'_'},
+ {?eh,tc_start,{groups_11_SUITE,init_per_suite}},
+ {parallel, [
+ {?eh,tc_start,{groups_11_SUITE,{init_per_group,test_group_2,[parallel]}}},
+ {?eh,tc_done,{groups_11_SUITE,{init_per_group,test_group_2,[parallel]},ok}},
+ {?eh,tc_start,{groups_11_SUITE,testcase_2a}},
+ {?eh,tc_done,{groups_11_SUITE,testcase_2a,ok}},
+ [
+ {?eh,tc_start,{groups_11_SUITE,{init_per_group,test_group_3,[sequence]}}},
+ {?eh,tc_start,{groups_11_SUITE,testcase_3a}},
+ {?eh,tc_start,{groups_11_SUITE,testcase_3b}},
+ {?eh,test_stats,{3,0,{0,0}}},
+ {?eh,tc_done,{groups_11_SUITE,{end_per_group,test_group_3,[sequence]},'_'}}
+ ],
+ {?eh,tc_start,{groups_11_SUITE,testcase_2b}},
+ {?eh,tc_done,{groups_11_SUITE,testcase_2b,ok}},
+ {?eh,test_stats,{4,0,{0,0}}},
+ {?eh,tc_start,{groups_11_SUITE,{end_per_group,test_group_2,[parallel]}}},
+ {?eh,tc_done,{groups_11_SUITE,{end_per_group,test_group_2,[parallel]},ok}}
+ ]},
+ [
+ {?eh,tc_start,{groups_11_SUITE,{init_per_group,test_group_9,[sequence]}}},
+ {?eh,tc_done,{groups_11_SUITE,{init_per_group,test_group_9,[sequence]},ok}},
+ {?eh,tc_start,{groups_11_SUITE,testcase_9}},
+ {?eh,tc_done,{groups_11_SUITE,testcase_9,ok}},
+ {?eh,test_stats,{5,0,{0,0}}},
+ {parallel,[
+ {?eh,tc_start,
+ {groups_11_SUITE,{init_per_group,test_group_8,[parallel]}}},
+ {?eh,tc_done,{groups_11_SUITE,{init_per_group,test_group_8,[parallel]},ok}},
+ {?eh,tc_start,{groups_11_SUITE,testcase_8}},
+ {?eh,tc_done,{groups_11_SUITE,testcase_8,ok}},
+ {?eh,test_stats,{6,0,{0,0}}},
+ {?eh,tc_start,{groups_11_SUITE,{end_per_group,test_group_8,[parallel]}}},
+ {?eh,tc_done,{groups_11_SUITE,{end_per_group,test_group_8,[parallel]},ok}}
+ ]},
+ {?eh,tc_start,{groups_11_SUITE,{end_per_group,test_group_9,[sequence]}}},
+ {?eh,tc_done,{groups_11_SUITE,{end_per_group,test_group_9,[sequence]},ok}}
+ ],
+ {?eh,tc_done,{groups_11_SUITE,end_per_suite,'_'}},
+ {negative,{?eh,tc_start,'_'},{?eh,stop_logging,'_'}}
+ ];
+
+
test_events(skip_group_all_testcases) ->
[
{?eh,start_logging,'_'},
diff --git a/lib/common_test/test/ct_testspec_1_SUITE_data/groups_1/groups_11_SUITE.erl b/lib/common_test/test/ct_testspec_1_SUITE_data/groups_1/groups_11_SUITE.erl
index 4d481fe3b8..56c97d9782 100644
--- a/lib/common_test/test/ct_testspec_1_SUITE_data/groups_1/groups_11_SUITE.erl
+++ b/lib/common_test/test/ct_testspec_1_SUITE_data/groups_1/groups_11_SUITE.erl
@@ -36,9 +36,11 @@ groups() ->
{test_group_1b, [], [testcase_1a,testcase_1b]},
- {test_group_2, [], [testcase_2a,
+ {test_group_1c, [sequence], [testcase_1a,testcase_1b]},
- {test_group_3, [], [testcase_3a,
+ {test_group_2, [sequence], [testcase_2a,
+
+ {test_group_3, [parallel], [testcase_3a,
testcase_3b]},
testcase_2b]},
@@ -49,7 +51,12 @@ groups() ->
testcase_5b]}]},
{test_group_6, [{group, test_group_7}]},
- {test_group_7, [testcase_7a,testcase_7b]}
+ {test_group_7, [testcase_7a,testcase_7b]},
+
+ {test_group_8, [sequence], [testcase_8]},
+
+ {test_group_9, [parallel], [testcase_9, {group, test_group_8}]}
+
].
all() ->
@@ -64,10 +71,11 @@ all() ->
%% this func only for internal test purposes
grs_and_tcs() ->
{[
- test_group_1a, test_group_1b,
+ test_group_1a, test_group_1b, test_group_1c,
test_group_2, test_group_3,
test_group_4, test_group_5,
- test_group_6, test_group_7
+ test_group_6, test_group_7,
+ test_group_8, test_group_9
],
[
testcase_1,
@@ -77,7 +85,9 @@ grs_and_tcs() ->
testcase_3a, testcase_3b,
testcase_3,
testcase_5a, testcase_5b,
- testcase_7a, testcase_7b
+ testcase_7a, testcase_7b,
+ testcase_8,
+ testcase_9
]}.
%%--------------------------------------------------------------------
@@ -95,7 +105,10 @@ end_per_suite(Config) ->
%%--------------------------------------------------------------------
init_per_group(Group, Config) ->
- [{name,Group}] = ?config(tc_group_properties,Config),
+ Group = case ?config(tc_group_properties,Config) of
+ [{name, Group0}] -> Group0;
+ [{name, Group0}, _Props] -> Group0
+ end,
{Grs,_} = grs_and_tcs(),
case lists:member(Group, Grs) of
true ->
@@ -164,8 +177,11 @@ testcase_1a(Config) ->
_ ->
case ?config(test_group_1b,Config) of
test_group_1b -> ok;
+ _ -> case ?config(test_group_1c,Config) of
+ test_group_1c -> ok;
_ -> ct:fail(no_group_data)
end
+ end
end,
testcase_1a = ?config(testcase_1a,Config),
ok.
@@ -178,8 +194,11 @@ testcase_1b(Config) ->
_ ->
case ?config(test_group_1b,Config) of
test_group_1b -> ok;
+ _ -> case ?config(test_group_1c,Config) of
+ test_group_1c -> ok;
_ -> ct:fail(no_group_data)
end
+ end
end,
undefined = ?config(testcase_1a,Config),
testcase_1b = ?config(testcase_1b,Config),
@@ -191,6 +210,7 @@ testcase_2(Config) ->
init = ?config(suite,Config),
undefined = ?config(test_group_1a,Config),
undefined = ?config(test_group_1b,Config),
+ undefined = ?config(test_group_1c, Config),
testcase_2 = ?config(testcase_2,Config),
ok.
@@ -280,3 +300,19 @@ testcase_7b(Config) ->
undefined = ?config(testcase_7a,Config),
testcase_7b = ?config(testcase_7b,Config),
ok.
+testcase_8() ->
+ [].
+testcase_8(Config) ->
+ init = ?config(suite,Config),
+ test_group_9 = ?config(test_group_9,Config),
+ test_group_8 = ?config(test_group_8,Config),
+ testcase_8 = ?config(testcase_8,Config),
+ ok.
+testcase_9() ->
+ [].
+testcase_9(Config) ->
+ init = ?config(suite,Config),
+ test_group_9 = ?config(test_group_9,Config),
+ undefined = ?config(test_group_8,Config),
+ testcase_9 = ?config(testcase_9,Config),
+ ok.