Changeset ced2e989
- Timestamp:
- Aug 30, 2016, 2:25:28 PM (8 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
- Children:
- 32a2a99, bda58ad
- Parents:
- efd6e4a5
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/tests/test.py
refd6e4a5 rced2e989 2 2 from __future__ import print_function 3 3 4 from functools import partial 5 from multiprocessing import Pool 4 6 from os import listdir, environ 5 7 from os.path import isfile, join, splitext … … 102 104 # running test functions 103 105 ################################################################################ 104 def run_ test_instance(test, generate, dry_run):106 def run_single_test(test, generate, dry_run): 105 107 106 108 # find the output file based on the test name and options flag … … 163 165 return retcode, error 164 166 167 def run_test_instance(t, generate, dry_run) : 168 # print formated name 169 name_txt = "%20s " % t.name 170 171 #run the test instance and collect the result 172 test_failed, error = run_single_test(t, generate, dry_run) 173 174 # update output based on current action 175 if generate : 176 failed_txt = "ERROR" 177 success_txt = "Done" 178 else : 179 failed_txt = "FAILED" 180 success_txt = "PASSED" 181 182 #print result with error if needed 183 text = name_txt + (failed_txt if test_failed else success_txt) 184 out = sys.stdout 185 if error : 186 text = text + "\n" + error 187 out = sys.stderr 188 189 print(text, file = out); 190 sys.stdout.flush() 191 sys.stderr.flush() 192 193 return test_failed 194 165 195 # run the given list of tests with the given parameters 166 196 def run_tests(tests, generate, dry_run, jobs) : … … 174 204 print( "Regenerate tests for: " ) 175 205 176 failed = False; 177 # for eeach test to run 178 for t in tests: 179 # print formated name 180 name_txt = "%20s " % t.name 181 182 #run the test instance and collect the result 183 test_failed, error = run_test_instance(t, generate, dry_run) 184 185 # aggregate test suite result 186 failed = test_failed or failed 187 188 # update output based on current action 189 if generate : 190 failed_txt = "ERROR" 191 success_txt = "Done" 192 else : 193 failed_txt = "FAILED" 194 success_txt = "PASSED" 195 196 #print result with error if needed 197 text = name_txt + (failed_txt if test_failed else success_txt) 198 out = sys.stdout 199 if error : 200 text = text + "\n" + error 201 out = sys.stderr 202 203 print(text, file = out); 204 sys.stdout.flush() 205 sys.stderr.flush() 206 206 # for each test to run 207 pool = Pool(jobs) 208 try : 209 results = pool.map_async(partial(run_test_instance, generate=generate, dry_run=dry_run), tests ).get(99999999) 210 except KeyboardInterrupt: 211 pool.terminate() 212 print("Tests interrupted by user") 213 sys.exit(1) 207 214 208 215 #clean the workspace 209 216 sh("%s clean > /dev/null 2>&1" % make_cmd, dry_run) 210 217 211 return 1 if failed else 0 218 for failed in results: 219 if failed : 220 return 1 221 222 return 0 212 223 213 224 ################################################################################ … … 279 290 280 291 # make sure we have a valid number of jobs that corresponds to user input 281 options.jobs = int(make_max_jobs) if make_max_jobs else options.jobs292 options.jobs = int(make_max_jobs) if make_max_jobs else (options.jobs if options.jobs else 1) 282 293 if options.jobs <= 0 : 283 294 print('ERROR: Invalid number of jobs', file=sys.stderr) 284 295 sys.exit(1) 285 296 297 print('Running on %i cores' % options.jobs) 298 286 299 # users may want to simply list the tests 287 300 if options.list :
Note: See TracChangeset
for help on using the changeset viewer.