| Index: tools/test.py
|
| ===================================================================
|
| --- tools/test.py (revision 7609)
|
| +++ tools/test.py (working copy)
|
| @@ -117,6 +117,8 @@
|
| start = time.time()
|
| output = case.Run()
|
| case.duration = (time.time() - start)
|
| + except BreakNowException:
|
| + self.terminate = True
|
| except IOError, e:
|
| assert self.terminate
|
| return
|
| @@ -318,7 +320,13 @@
|
| # --- F r a m e w o r k ---
|
| # -------------------------
|
|
|
| +class BreakNowException(Exception):
|
| + def __init__(self, value):
|
| + self.value = value
|
| + def __str__(self):
|
| + return repr(self.value)
|
|
|
| +
|
| class CommandOutput(object):
|
|
|
| def __init__(self, exit_code, timed_out, stdout, stderr):
|
| @@ -379,9 +387,12 @@
|
|
|
| def Run(self):
|
| self.BeforeRun()
|
| - result = "exception"
|
| + result = None
|
| try:
|
| result = self.RunCommand(self.GetCommand())
|
| + except:
|
| + self.terminate = True
|
| + raise BreakNowException("Used pressed CTRL+C or IO went wrong")
|
| finally:
|
| self.AfterRun(result)
|
| return result
|
| @@ -423,7 +434,7 @@
|
| self.output.exit_code != -signal.SIGABRT
|
|
|
| def HasTimedOut(self):
|
| - return self.output.timed_out;
|
| + return self.output.timed_out
|
|
|
| def HasFailed(self):
|
| execution_failed = self.test.DidFail(self.output)
|
| @@ -702,7 +713,12 @@
|
|
|
| def RunTestCases(cases_to_run, progress, tasks):
|
| progress = PROGRESS_INDICATORS[progress](cases_to_run)
|
| - return progress.Run(tasks)
|
| + result = 0
|
| + try:
|
| + result = progress.Run(tasks)
|
| + except Exception, e:
|
| + print "\n", e
|
| + return result
|
|
|
|
|
| def BuildRequirements(context, requirements, mode, scons_flags):
|
| @@ -1339,11 +1355,11 @@
|
| print "shard-run not a valid number, should be in [1:shard-count]"
|
| print "defaulting back to running all tests"
|
| return tests
|
| - count = 0;
|
| + count = 0
|
| shard = []
|
| for test in tests:
|
| if count % options.shard_count == options.shard_run - 1:
|
| - shard.append(test);
|
| + shard.append(test)
|
| count += 1
|
| return shard
|
|
|
|
|