99from pavilion import cmd_utils
1010from pavilion import groups
1111from pavilion import output
12+ from pavilion import resolver
1213from pavilion .enums import Verbose
1314from pavilion .errors import TestSeriesError , PavilionError
1415from pavilion .series .series import TestSeries
@@ -61,6 +62,10 @@ def _generic_arguments(parser):
6162 :param argparse.ArgumentParser parser:
6263 """
6364
65+ parser .add_argument (
66+ "-a" , "--all" , action = "store_true" ,
67+ help = "Build or run all known tests."
68+ )
6469 parser .add_argument (
6570 '-p' , '--platform' , action = 'store' ,
6671 help = 'The platform to configure this test for. If not '
@@ -152,13 +157,19 @@ def run(self, pav_cfg, args, log_results: bool = True):
152157 ignore_errors = args .ignore_errors ,
153158 )
154159
155- tests = args .tests
156- try :
157- tests .extend (cmd_utils .read_test_files (pav_cfg , args .files ))
158- except PavilionError as err :
159- output .fprint (self .errfile , "Error reading given test list files.\n {}"
160- .format (err ))
161- return errno .EINVAL
160+ if args .all :
161+ resolv = resolver .TestConfigResolver (pav_cfg )
162+ suites = resolv .find_all_tests ()
163+ tests = list (suites .keys ())
164+ args .files = []
165+ else :
166+ tests = args .tests
167+ try :
168+ tests .extend (cmd_utils .read_test_files (pav_cfg , args .files ))
169+ except PavilionError as err :
170+ output .fprint (self .errfile , "Error reading given test list files.\n {}"
171+ .format (err ))
172+ return errno .EINVAL
162173
163174 local_builds_only = getattr (args , 'local_builds_only' , False )
164175 report_status = getattr (args , 'status' , False )
@@ -167,18 +178,13 @@ def run(self, pav_cfg, args, log_results: bool = True):
167178 series_obj = TestSeries (pav_cfg , series_cfg = series_cfg ,
168179 verbosity = Verbose [args .verbosity ],
169180 outfile = self .outfile )
170- testset_name = cmd_utils .get_testset_name (pav_cfg , args . tests , args .files )
181+ testset_name = cmd_utils .get_testset_name (pav_cfg , tests , args .files )
171182
172183 if args .group :
173- try :
174- group = groups .TestGroup (pav_cfg , args .group )
175- group .add ([series_obj ])
176- except groups .TestGroupError as err :
177- output .fprint (self .errfile ,
178- "Could not add series to group '{}'" .format (args .group ),
179- color = output .RED )
180- output .fprint (self .errfile , err .pformat ())
181- return errno .EINVAL
184+ ret = self ._add_to_group (pav_cfg , series_obj , args .group )
185+
186+ if ret != 0 :
187+ return ret
182188
183189 else :
184190 output .fprint (self .outfile , "Created Test Series {}." .format (series_obj .name ))
@@ -211,3 +217,18 @@ def run(self, pav_cfg, args, log_results: bool = True):
211217 )
212218
213219 return 0
220+
221+ def _add_to_group (self , pav_cfg : "PavConfig" , series : "TestSeries" , group : str ) -> int :
222+ """Add the given series to the given group."""
223+
224+ try :
225+ group = groups .TestGroup (pav_cfg , group )
226+ group .add ([series ])
227+
228+ return 0
229+ except groups .TestGroupError as err :
230+ output .fprint (self .errfile ,
231+ "Could not add series to group '{}'" .format (group ),
232+ color = output .RED )
233+ output .fprint (self .errfile , err .pformat ())
234+ return errno .EINVAL
0 commit comments