|
24 | 24 | import tempfile
|
25 | 25 | import re
|
26 | 26 |
|
| 27 | +TEST_EXIT_PASSED = 0 |
| 28 | +TEST_EXIT_SKIPPED = 77 |
| 29 | + |
27 | 30 | BASE_SCRIPTS= [
|
28 | 31 | # Scripts that are run by the travis build process.
|
29 | 32 | # Longest test should go first, to favor running tests in parallel
|
@@ -245,20 +248,20 @@ def run_tests(test_list, src_dir, build_dir, exeext, jobs=1, enable_coverage=Fal
|
245 | 248 | job_queue = TestHandler(jobs, tests_dir, test_list, flags)
|
246 | 249 |
|
247 | 250 | max_len_name = len(max(test_list, key=len))
|
248 |
| - results = BOLD[1] + "%s | %s | %s\n\n" % ("TEST".ljust(max_len_name), "PASSED", "DURATION") + BOLD[0] |
| 251 | + results = BOLD[1] + "%s | %s | %s\n\n" % ("TEST".ljust(max_len_name), "STATUS ", "DURATION") + BOLD[0] |
249 | 252 | for _ in range(len(test_list)):
|
250 |
| - (name, stdout, stderr, passed, duration) = job_queue.get_next() |
251 |
| - all_passed = all_passed and passed |
| 253 | + (name, stdout, stderr, status, duration) = job_queue.get_next() |
| 254 | + all_passed = all_passed and status != "Failed" |
252 | 255 | time_sum += duration
|
253 | 256 |
|
254 | 257 | print('\n' + BOLD[1] + name + BOLD[0] + ":")
|
255 |
| - print('' if passed else stdout + '\n', end='') |
| 258 | + print('' if status == "Passed" else stdout + '\n', end='') |
256 | 259 | print('' if stderr == '' else 'stderr:\n' + stderr + '\n', end='')
|
257 |
| - print("Pass: %s%s%s, Duration: %s s\n" % (BOLD[1], passed, BOLD[0], duration)) |
| 260 | + print("Status: %s%s%s, Duration: %s s\n" % (BOLD[1], status, BOLD[0], duration)) |
258 | 261 |
|
259 |
| - results += "%s | %s | %s s\n" % (name.ljust(max_len_name), str(passed).ljust(6), duration) |
| 262 | + results += "%s | %s | %s s\n" % (name.ljust(max_len_name), status.ljust(7), duration) |
260 | 263 |
|
261 |
| - results += BOLD[1] + "\n%s | %s | %s s (accumulated)" % ("ALL".ljust(max_len_name), str(all_passed).ljust(6), time_sum) + BOLD[0] |
| 264 | + results += BOLD[1] + "\n%s | %s | %s s (accumulated)" % ("ALL".ljust(max_len_name), str(all_passed).ljust(7), time_sum) + BOLD[0] |
262 | 265 | print(results)
|
263 | 266 | print("\nRuntime: %s s" % (int(time.time() - time0)))
|
264 | 267 |
|
@@ -315,10 +318,15 @@ def get_next(self):
|
315 | 318 | log_out.seek(0), log_err.seek(0)
|
316 | 319 | [stdout, stderr] = [l.read().decode('utf-8') for l in (log_out, log_err)]
|
317 | 320 | log_out.close(), log_err.close()
|
318 |
| - passed = stderr == "" and proc.returncode == 0 |
| 321 | + if proc.returncode == TEST_EXIT_PASSED and stderr == "": |
| 322 | + status = "Passed" |
| 323 | + elif proc.returncode == TEST_EXIT_SKIPPED: |
| 324 | + status = "Skipped" |
| 325 | + else: |
| 326 | + status = "Failed" |
319 | 327 | self.num_running -= 1
|
320 | 328 | self.jobs.remove(j)
|
321 |
| - return name, stdout, stderr, passed, int(time.time() - time0) |
| 329 | + return name, stdout, stderr, status, int(time.time() - time0) |
322 | 330 | print('.', end='', flush=True)
|
323 | 331 |
|
324 | 332 |
|
|
0 commit comments