equal
deleted
inserted
replaced
353 self._errpath = errpath |
353 self._errpath = errpath |
354 |
354 |
355 self._finished = None |
355 self._finished = None |
356 self._ret = None |
356 self._ret = None |
357 self._out = None |
357 self._out = None |
358 self._duration = None |
|
359 self._skipped = None |
358 self._skipped = None |
360 self._testtmp = None |
359 self._testtmp = None |
361 |
360 |
362 # If we're not in --debug mode and reference output file exists, |
361 # If we're not in --debug mode and reference output file exists, |
363 # check test output against it. |
362 # check test output against it. |
391 def setUp(self): |
390 def setUp(self): |
392 """Tasks to perform before run().""" |
391 """Tasks to perform before run().""" |
393 self._finished = False |
392 self._finished = False |
394 self._ret = None |
393 self._ret = None |
395 self._out = None |
394 self._out = None |
396 self._duration = None |
|
397 self._skipped = None |
395 self._skipped = None |
398 |
396 |
399 self._testtmp = os.path.join(self._threadtmp, |
397 self._testtmp = os.path.join(self._threadtmp, |
400 os.path.basename(self._path)) |
398 os.path.basename(self._path)) |
401 os.mkdir(self._testtmp) |
399 os.mkdir(self._testtmp) |
404 if os.path.exists(self._errpath): |
402 if os.path.exists(self._errpath): |
405 os.remove(self._errpath) |
403 os.remove(self._errpath) |
406 |
404 |
407 def run(self, result): |
405 def run(self, result): |
408 result.startTest(self) |
406 result.startTest(self) |
|
407 starttime = time.time() |
409 try: |
408 try: |
410 try: |
409 try: |
411 self.setUp() |
410 self.setUp() |
412 except (KeyboardInterrupt, SystemExit): |
411 except (KeyboardInterrupt, SystemExit): |
413 raise |
412 raise |
417 |
416 |
418 success = False |
417 success = False |
419 try: |
418 try: |
420 self.runTest() |
419 self.runTest() |
421 except KeyboardInterrupt: |
420 except KeyboardInterrupt: |
|
421 duration = time.time() - starttime |
|
422 log('INTERRUPTED: %s (after %d seconds)' % (self.name, |
|
423 duration)) |
|
424 self._runner.times.append((self.name, duration)) |
422 raise |
425 raise |
423 except SkipTest, e: |
426 except SkipTest, e: |
424 result.addSkip(self, str(e)) |
427 result.addSkip(self, str(e)) |
425 except IgnoreTest, e: |
428 except IgnoreTest, e: |
426 result.addIgnore(self, str(e)) |
429 result.addIgnore(self, str(e)) |
435 except Exception: |
438 except Exception: |
436 result.addError(self, sys.exc_info()) |
439 result.addError(self, sys.exc_info()) |
437 else: |
440 else: |
438 success = True |
441 success = True |
439 |
442 |
|
443 self._runner.times.append((self.name, time.time() - starttime)) |
|
444 |
440 try: |
445 try: |
441 self.tearDown() |
446 self.tearDown() |
442 except (KeyboardInterrupt, SystemExit): |
447 except (KeyboardInterrupt, SystemExit): |
443 raise |
448 raise |
444 except Exception: |
449 except Exception: |
484 self._daemonpids.append(env['DAEMON_PIDS']) |
489 self._daemonpids.append(env['DAEMON_PIDS']) |
485 self._createhgrc(env['HGRCPATH']) |
490 self._createhgrc(env['HGRCPATH']) |
486 |
491 |
487 vlog('# Test', self.name) |
492 vlog('# Test', self.name) |
488 |
493 |
489 starttime = time.time() |
|
490 try: |
494 try: |
491 ret, out = self._run(replacements, env) |
495 ret, out = self._run(replacements, env) |
492 self._duration = time.time() - starttime |
|
493 self._finished = True |
496 self._finished = True |
494 self._ret = ret |
497 self._ret = ret |
495 self._out = out |
498 self._out = out |
496 except KeyboardInterrupt: |
499 except KeyboardInterrupt: |
497 self._duration = time.time() - starttime |
|
498 log('INTERRUPTED: %s (after %d seconds)' % (self.name, |
|
499 self._duration)) |
|
500 raise |
500 raise |
501 except Exception, e: |
501 except Exception, e: |
502 return self.fail('Exception during execution: %s' % e, 255) |
502 return self.fail('Exception during execution: %s' % e, 255) |
503 |
503 |
504 def describe(ret): |
504 def describe(ret): |
570 for line in self._out: |
570 for line in self._out: |
571 f.write(line) |
571 f.write(line) |
572 f.close() |
572 f.close() |
573 |
573 |
574 vlog("# Ret was:", self._ret) |
574 vlog("# Ret was:", self._ret) |
575 |
|
576 self._runner.times.append((self.name, self._duration)) |
|
577 |
575 |
578 def _run(self, replacements, env): |
576 def _run(self, replacements, env): |
579 # This should be implemented in child classes to run tests. |
577 # This should be implemented in child classes to run tests. |
580 raise SkipTest('unknown test type') |
578 raise SkipTest('unknown test type') |
581 |
579 |