[dpdk-ci] [PATCH 1/2] create_new_execution_file_from_tags: add test specifier
ohilyard at iol.unh.edu
ohilyard at iol.unh.edu
Fri Sep 24 18:05:26 CEST 2021
From: Owen Hilyard <ohilyard at iol.unh.edu>
BREAKING CHANGE: --tags syntax changed
Due to limitations of the argparse library, the tags syntax needed
to be redone when the ability to specify individual tests was added.
As such, the syntax has gone from "--tags core documentation" to "--tag
core --tag documentation". This is because argparse does not allow
multiple greedy variadic arguments in all versions.
added syntax to force adding a specific test
syntax: "--test nic_single_core_perf --test hello_world"
This flag was added to help facilitate periodic testing. The list of
tests in the template file will be ignored by this argument. This allows
a more automated way to run tests which should not be run under normal
circumstances, such as rte_flow, which is lightly supported in many
NICs.
Signed-off-by: Owen Hilyard <ohilyard at iol.unh.edu>
---
tools/create_new_execution_file_from_tags.py | 19 ++++++++++++++++---
1 file changed, 16 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..61d801d 100755
--- a/tools/create_new_execution_file_from_tags.py
+++ b/tools/create_new_execution_file_from_tags.py
@@ -73,7 +73,10 @@ def __str__(self):
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 @@ def __str__(self):
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.tag, test_map)
try:
output_file = open(args.output_path, 'x')
@@ -98,7 +103,15 @@ def __str__(self):
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: # no tags given
+ 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