@@ -125,24 +125,6 @@ def __str__(self) -> str:
125125# the test is running in background 
126126PROGRESS_MIN_TIME  =  30.0    # seconds 
127127
128- # small set of tests to determine if we have a basically functioning interpreter 
129- # (i.e. if any of these fail, then anything else is likely to follow) 
130- STDTESTS  =  [
131-     'test_grammar' ,
132-     'test_opcodes' ,
133-     'test_dict' ,
134-     'test_builtin' ,
135-     'test_exceptions' ,
136-     'test_types' ,
137-     'test_unittest' ,
138-     'test_doctest' ,
139-     'test_doctest2' ,
140-     'test_support' 
141- ]
142- 
143- # set of tests that we don't want to be executed when using regrtest 
144- NOTTESTS  =  set ()
145- 
146128#If these test directories are encountered recurse into them and treat each 
147129# test_ .py or dir as a separate test module. This can increase parallelism. 
148130# Beware this can't generally be done for any directory with sub-tests as the 
@@ -166,22 +148,38 @@ def findtestdir(path=None):
166148    return  path  or  os .path .dirname (os .path .dirname (__file__ )) or  os .curdir 
167149
168150
169- def  findtests (testdir = None , stdtests = STDTESTS , nottests = NOTTESTS , * , split_test_dirs = SPLITTESTDIRS , base_mod = "" ):
151+ def  findtests (* , testdir = None , exclude = None ,
152+               split_test_dirs = SPLITTESTDIRS , base_mod = "" ):
170153    """Return a list of all applicable test modules.""" 
171154    testdir  =  findtestdir (testdir )
172-     names  =  os .listdir (testdir )
173155    tests  =  []
174-     others  =  set (stdtests ) |  nottests 
175-     for  name  in  names :
156+     for  name  in  os .listdir (testdir ):
176157        mod , ext  =  os .path .splitext (name )
177-         if  mod [:5 ] ==  "test_"  and  mod  not  in others :
178-             if  mod  in  split_test_dirs :
179-                 subdir  =  os .path .join (testdir , mod )
180-                 mod  =  f"{ base_mod  or  'test' } { mod }  
181-                 tests .extend (findtests (subdir , [], nottests , split_test_dirs = split_test_dirs , base_mod = mod ))
182-             elif  ext  in  (".py" , "" ):
183-                 tests .append (f"{ base_mod } { mod }   if  base_mod  else  mod )
184-     return  stdtests  +  sorted (tests )
158+         if  (not  mod .startswith ("test_" )) or  (mod  in  exclude ):
159+             continue 
160+         if  mod  in  split_test_dirs :
161+             subdir  =  os .path .join (testdir , mod )
162+             mod  =  f"{ base_mod  or  'test' } { mod }  
163+             tests .extend (findtests (testdir = subdir , exclude = exclude ,
164+                                    split_test_dirs = split_test_dirs , base_mod = mod ))
165+         elif  ext  in  (".py" , "" ):
166+             tests .append (f"{ base_mod } { mod }   if  base_mod  else  mod )
167+     return  sorted (tests )
168+ 
169+ 
170+ def  split_test_packages (tests , * , testdir = None , exclude = None ,
171+                         split_test_dirs = SPLITTESTDIRS ):
172+     testdir  =  findtestdir (testdir )
173+     splitted  =  []
174+     for  name  in  tests :
175+         if  name  in  split_test_dirs :
176+             subdir  =  os .path .join (testdir , name )
177+             splitted .extend (findtests (testdir = subdir , exclude = exclude ,
178+                                       split_test_dirs = split_test_dirs ,
179+                                       base_mod = name ))
180+         else :
181+             splitted .append (name )
182+     return  splitted 
185183
186184
187185def  get_abs_module (ns : Namespace , test_name : str ) ->  str :
0 commit comments