[PATCH v5 1/3] create_new_execution_file_from_tags: change tag argument

ohilyard at iol.unh.edu ohilyard at iol.unh.edu
Mon Feb 7 16:08:24 CET 2022


From: Owen Hilyard <ohilyard at iol.unh.edu>

BREAKING CHANGE: --tags syntax changed

Due to limitations of the argparse library, you can't have 2 varidic
arguments. Since upcoming requirements for the CI require the ability to
specify individual tests to be run (ex: weekly rte_flow testing), this
script must have the ability to pass in those tests as well. This is a
change made to support that.

Old syntax:
"--tags core documentation"

New syntax:
"--tag core --tag documentation"

Signed-off-by: Owen Hilyard <ohilyard at iol.unh.edu>
---
 tools/create_new_execution_file_from_tags.py | 18 +++++++++++++++---
 1 file changed, 15 insertions(+), 3 deletions(-)

diff --git a/tools/create_new_execution_file_from_tags.py b/tools/create_new_execution_file_from_tags.py
index d1d4447..f2081ee 100755
--- a/tools/create_new_execution_file_from_tags.py
+++ b/tools/create_new_execution_file_from_tags.py
@@ -73,7 +73,10 @@ if __name__ == '__main__':
     parser.add_argument('output_path', help='The path to the output execution file')
     parser.add_argument('testing_type', type=TestingType, choices=list(TestingType),
                         help='What type of testing to create an execution file for')
-    parser.add_argument('tags', metavar='tag', type=str, nargs='*', help='The tags to create an execution file for.')
+    parser.add_argument('--tag', type=str, action='append',
+                        help='The tags to create an execution file for.')
+    parser.add_argument('--test', type=str, action='append',
+                        help='The tests to run along with the tests required by the provided tags')
 
     args = parser.parse_args()
 
@@ -86,7 +89,9 @@ if __name__ == '__main__':
     test_map = {key: parse_comma_delimited_list_from_string(value.strip()) for key, value in
                 tag_to_test_map_parser[str(args.testing_type)].items()}
 
-    tests = map_tags_to_tests(args.tags, test_map)
+    tests = set()
+    if args.tag is not None:
+        tests = map_tags_to_tests(args.tags, test_map)
 
     try:
         output_file = open(args.output_path, 'x')
@@ -98,7 +103,14 @@ if __name__ == '__main__':
         if execution_plan != 'DEFAULT':
             test_allowlist = parse_comma_delimited_list_from_string(
                 template_execution_file_parser[execution_plan]['test_suites'])
-            tests_to_run = list(set(test_allowlist).intersection(tests))
+            if len(tests) != 0:
+                tests_to_run = list(set(test_allowlist).intersection(tests))
+            else:
+                tests_to_run = [entry for entry in test_allowlist if entry != '']
+
+            if args.test is not None:
+                for test in args.test:
+                    tests_to_run.append(test)
             tests_to_run.sort()
             template_execution_file_parser[execution_plan]['test_suites'] = ", ".join(tests_to_run)
 
-- 
2.30.2



More information about the ci mailing list