Mercurial > public > mercurial-scm > hg
comparison tests/run-tests.py @ 21321:d06b09dc80a5
run-tests: move err path handling to Test
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Sat, 19 Apr 2014 20:32:38 -0700 |
parents | e5eed8ded168 |
children | 512968bfb00a |
comparison
equal
deleted
inserted
replaced
21320:e5eed8ded168 | 21321:d06b09dc80a5 |
---|---|
549 | 549 |
550 Test instances can be run multiple times via run(). However, multiple | 550 Test instances can be run multiple times via run(). However, multiple |
551 runs cannot be run concurrently. | 551 runs cannot be run concurrently. |
552 """ | 552 """ |
553 | 553 |
554 def __init__(self, test, path, options, count, refpath): | 554 def __init__(self, test, path, options, count, refpath, errpath): |
555 self._test = test | 555 self._test = test |
556 self._path = path | 556 self._path = path |
557 self._options = options | 557 self._options = options |
558 self._count = count | 558 self._count = count |
559 self._daemonpids = [] | 559 self._daemonpids = [] |
560 self._refpath = refpath | |
561 self._errpath = errpath | |
560 | 562 |
561 # If we're not in --debug mode and reference output file exists, | 563 # If we're not in --debug mode and reference output file exists, |
562 # check test output against it. | 564 # check test output against it. |
563 if options.debug: | 565 if options.debug: |
564 self._refout = None # to match "out is None" | 566 self._refout = None # to match "out is None" |
578 | 580 |
579 if self._threadtmp and not self._options.keep_tmpdir: | 581 if self._threadtmp and not self._options.keep_tmpdir: |
580 shutil.rmtree(self._threadtmp, True) | 582 shutil.rmtree(self._threadtmp, True) |
581 | 583 |
582 def run(self, result): | 584 def run(self, result): |
585 # Remove any previous output files. | |
586 if os.path.exists(self._errpath): | |
587 os.remove(self._errpath) | |
588 | |
583 testtmp = os.path.join(self._threadtmp, os.path.basename(self._path)) | 589 testtmp = os.path.join(self._threadtmp, os.path.basename(self._path)) |
584 os.mkdir(testtmp) | 590 os.mkdir(testtmp) |
585 replacements, port = self._getreplacements(testtmp) | 591 replacements, port = self._getreplacements(testtmp) |
586 env = self._getenv(testtmp, port) | 592 env = self._getenv(testtmp, port) |
587 self._daemonpids.append(env['DAEMON_PIDS']) | 593 self._daemonpids.append(env['DAEMON_PIDS']) |
1088 else: | 1094 else: |
1089 return skip("unknown test type") | 1095 return skip("unknown test type") |
1090 | 1096 |
1091 vlog("# Test", test) | 1097 vlog("# Test", test) |
1092 | 1098 |
1093 if os.path.exists(err): | 1099 t = runner(test, testpath, options, count, ref, err) |
1094 os.remove(err) # Remove any previous output files | |
1095 | |
1096 t = runner(test, testpath, options, count, ref) | |
1097 res = TestResult() | 1100 res = TestResult() |
1098 t.run(res) | 1101 t.run(res) |
1099 t.cleanup() | 1102 t.cleanup() |
1100 | 1103 |
1101 if res.exception: | 1104 if res.exception: |