Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Ledest:erlang:19
erlang
1286-Update-the-CT-test_spec-grammar-to-accept-...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 1286-Update-the-CT-test_spec-grammar-to-accept-group-path.patch of Package erlang
From abe4546661ab940a6046994305b02c080690ad79 Mon Sep 17 00:00:00 2001 From: acw224 <thomasdcuvillier@gmail.com> Date: Tue, 3 Aug 2021 08:40:00 -0700 Subject: [PATCH 2/2] Update the CT test_spec grammar to accept group-path of group_spec Before there was a mismatch in the grammar. Groups = [[GroupNames]] | GroupSpec | [GroupSpec] | all where the [[GroupNames]] is a GroupPath This change makes the grammar more coherent with Groups = [[GroupSpec]] | GroupSpec | [GroupSpec] | all That is the groups in a group-path can now be GroupSpec --- lib/common_test/doc/src/run_test_chapter.xml | 2 +- lib/common_test/src/ct_groups.erl | 9 ++-- lib/common_test/src/ct_run.erl | 19 +++++++- lib/common_test/test/ct_testspec_1_SUITE.erl | 49 ++++++++++++++++++++ 4 files changed, 72 insertions(+), 7 deletions(-) diff --git a/lib/common_test/doc/src/run_test_chapter.xml b/lib/common_test/doc/src/run_test_chapter.xml index 1d88abc27e..731e550364 100644 --- a/lib/common_test/doc/src/run_test_chapter.xml +++ b/lib/common_test/doc/src/run_test_chapter.xml @@ -956,7 +956,7 @@ Suites = atom() | [atom()] | all Suite = atom() Groups = GroupPath | GroupSpec | [GroupSpec] | all - GroupPath = [[GroupName]] + GroupPath = [[GroupSpec]] GroupSpec = GroupName | {GroupName,Properties} | {GroupName,Properties,[GroupSpec]} GroupName = atom() GroupNames = GroupName | [GroupName] 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 31ae19a033..41027dff36 100644 --- a/lib/common_test/test/ct_testspec_1_SUITE.erl +++ b/lib/common_test/test/ct_testspec_1_SUITE.erl @@ -65,6 +65,7 @@ all() -> 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, @@ -244,6 +245,18 @@ multi_group_config(Config) when is_list(Config) -> {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), @@ -878,6 +891,42 @@ test_events(group_config) -> ]; +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,'_'}, -- 2.31.1
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor