OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # | 2 # |
3 # Copyright 2008 the V8 project authors. All rights reserved. | 3 # Copyright 2008 the V8 project authors. All rights reserved. |
4 # Redistribution and use in source and binary forms, with or without | 4 # Redistribution and use in source and binary forms, with or without |
5 # modification, are permitted provided that the following conditions are | 5 # modification, are permitted provided that the following conditions are |
6 # met: | 6 # met: |
7 # | 7 # |
8 # * Redistributions of source code must retain the above copyright | 8 # * Redistributions of source code must retain the above copyright |
9 # notice, this list of conditions and the following disclaimer. | 9 # notice, this list of conditions and the following disclaimer. |
10 # * Redistributions in binary form must reproduce the above | 10 # * Redistributions in binary form must reproduce the above |
(...skipping 338 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
349 | 349 |
350 def IsFailureOutput(self, output): | 350 def IsFailureOutput(self, output): |
351 return output.exit_code != 0 | 351 return output.exit_code != 0 |
352 | 352 |
353 def GetSource(self): | 353 def GetSource(self): |
354 return "(no source available)" | 354 return "(no source available)" |
355 | 355 |
356 def RunCommand(self, command): | 356 def RunCommand(self, command): |
357 full_command = self.context.processor(command) | 357 full_command = self.context.processor(command) |
358 output = Execute(full_command, self.context, self.context.timeout) | 358 output = Execute(full_command, self.context, self.context.timeout) |
| 359 self.Cleanup() |
359 return TestOutput(self, full_command, output) | 360 return TestOutput(self, full_command, output) |
360 | 361 |
361 def Run(self): | 362 def Run(self): |
362 return self.RunCommand(self.GetCommand()) | 363 return self.RunCommand(self.GetCommand()) |
363 | 364 |
| 365 def Cleanup(self): |
| 366 return |
| 367 |
364 | 368 |
365 class TestOutput(object): | 369 class TestOutput(object): |
366 | 370 |
367 def __init__(self, test, command, output): | 371 def __init__(self, test, command, output): |
368 self.test = test | 372 self.test = test |
369 self.command = command | 373 self.command = command |
370 self.output = output | 374 self.output = output |
371 | 375 |
372 def UnexpectedOutput(self): | 376 def UnexpectedOutput(self): |
373 if self.HasCrashed(): | 377 if self.HasCrashed(): |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
466 if sleep_time > MAX_SLEEP_TIME: | 470 if sleep_time > MAX_SLEEP_TIME: |
467 sleep_time = MAX_SLEEP_TIME | 471 sleep_time = MAX_SLEEP_TIME |
468 return (process, exit_code, timed_out) | 472 return (process, exit_code, timed_out) |
469 | 473 |
470 | 474 |
471 def PrintError(str): | 475 def PrintError(str): |
472 sys.stderr.write(str) | 476 sys.stderr.write(str) |
473 sys.stderr.write('\n') | 477 sys.stderr.write('\n') |
474 | 478 |
475 | 479 |
| 480 def CheckedUnlink(name): |
| 481 try: |
| 482 os.unlink(name) |
| 483 except OSError, e: |
| 484 PrintError("os.unlink() " + str(e)) |
| 485 |
| 486 |
476 def Execute(args, context, timeout=None): | 487 def Execute(args, context, timeout=None): |
477 (fd_out, outname) = tempfile.mkstemp() | 488 (fd_out, outname) = tempfile.mkstemp() |
478 (fd_err, errname) = tempfile.mkstemp() | 489 (fd_err, errname) = tempfile.mkstemp() |
479 (process, exit_code, timed_out) = RunProcess( | 490 (process, exit_code, timed_out) = RunProcess( |
480 context, | 491 context, |
481 timeout, | 492 timeout, |
482 args = args, | 493 args = args, |
483 stdout = fd_out, | 494 stdout = fd_out, |
484 stderr = fd_err, | 495 stderr = fd_err, |
485 ) | 496 ) |
486 os.close(fd_out) | 497 os.close(fd_out) |
487 os.close(fd_err) | 498 os.close(fd_err) |
488 output = file(outname).read() | 499 output = file(outname).read() |
489 errors = file(errname).read() | 500 errors = file(errname).read() |
490 def CheckedUnlink(name): | |
491 try: | |
492 os.unlink(name) | |
493 except OSError, e: | |
494 PrintError("os.unlink() " + str(e)) | |
495 CheckedUnlink(outname) | 501 CheckedUnlink(outname) |
496 CheckedUnlink(errname) | 502 CheckedUnlink(errname) |
497 return CommandOutput(exit_code, timed_out, output, errors) | 503 return CommandOutput(exit_code, timed_out, output, errors) |
498 | 504 |
499 | 505 |
500 def ExecuteNoCapture(args, context, timeout=None): | 506 def ExecuteNoCapture(args, context, timeout=None): |
501 (process, exit_code, timed_out) = RunProcess( | 507 (process, exit_code, timed_out) = RunProcess( |
502 context, | 508 context, |
503 timeout, | 509 timeout, |
504 args = args, | 510 args = args, |
(...skipping 828 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1333 for entry in timed_tests[:20]: | 1339 for entry in timed_tests[:20]: |
1334 t = FormatTime(entry.duration) | 1340 t = FormatTime(entry.duration) |
1335 sys.stderr.write("%4i (%s) %s\n" % (index, t, entry.GetLabel())) | 1341 sys.stderr.write("%4i (%s) %s\n" % (index, t, entry.GetLabel())) |
1336 index += 1 | 1342 index += 1 |
1337 | 1343 |
1338 return result | 1344 return result |
1339 | 1345 |
1340 | 1346 |
1341 if __name__ == '__main__': | 1347 if __name__ == '__main__': |
1342 sys.exit(Main()) | 1348 sys.exit(Main()) |
OLD | NEW |