##// END OF EJS Templates
run-tests: move err file saving to Test.run()
Gregory Szorc -
r21334:6a90ecb6 default
parent child Browse files
Show More
@@ -640,8 +640,6 b' class Test(object):'
640
640
641 killdaemons(env['DAEMON_PIDS'])
641 killdaemons(env['DAEMON_PIDS'])
642
642
643 result.refout = self._refout
644
645 if not options.keep_tmpdir:
643 if not options.keep_tmpdir:
646 shutil.rmtree(testtmp)
644 shutil.rmtree(testtmp)
647
645
@@ -661,13 +659,13 b' class Test(object):'
661 missing = ['irrelevant']
659 missing = ['irrelevant']
662
660
663 if failed:
661 if failed:
664 return self.fail('hg have failed checking for %s' % failed[-1],
662 res = self.fail('hg have failed checking for %s' % failed[-1],
665 ret)
663 ret)
666 else:
664 else:
667 result.skipped = True
665 result.skipped = True
668 return self.skip(missing[-1])
666 res = self.skip(missing[-1])
669 elif ret == 'timeout':
667 elif ret == 'timeout':
670 return self.fail('timed out', ret)
668 res = self.fail('timed out', ret)
671 elif out != self._refout:
669 elif out != self._refout:
672 info = {}
670 info = {}
673 if not options.nodiff:
671 if not options.nodiff:
@@ -687,11 +685,20 b' class Test(object):'
687 else:
685 else:
688 msg += 'output changed'
686 msg += 'output changed'
689
687
690 return self.fail(msg, ret)
688 res = self.fail(msg, ret)
691 elif ret:
689 elif ret:
692 return self.fail(describe(ret), ret)
690 res = self.fail(describe(ret), ret)
693 else:
691 else:
694 return self.success()
692 res = self.success()
693
694 if (ret != 0 or out != self._refout) and not result.skipped \
695 and not options.debug:
696 f = open(self._errpath, 'wb')
697 for line in out:
698 f.write(line)
699 f.close()
700
701 return res
695
702
696 def _run(self, testtmp, replacements, env):
703 def _run(self, testtmp, replacements, env):
697 raise NotImplemented('Subclasses must implement Test.run()')
704 raise NotImplemented('Subclasses must implement Test.run()')
@@ -789,7 +796,6 b' class TestResult(object):'
789 self.ret = None
796 self.ret = None
790 self.out = None
797 self.out = None
791 self.duration = None
798 self.duration = None
792 self.refout = None
793 self.skipped = False
799 self.skipped = False
794
800
795 class PythonTest(Test):
801 class PythonTest(Test):
@@ -1157,16 +1163,6 b' def runone(options, test, count):'
1157 times.append((test, res.duration))
1163 times.append((test, res.duration))
1158 vlog("# Ret was:", ret)
1164 vlog("# Ret was:", ret)
1159
1165
1160 skipped = res.skipped
1161 refout = res.refout
1162
1163 if (ret != 0 or out != refout) and not skipped and not options.debug:
1164 # Save errors to a file for diagnosis
1165 f = open(err, "wb")
1166 for line in out:
1167 f.write(line)
1168 f.close()
1169
1170 if not options.verbose:
1166 if not options.verbose:
1171 iolock.acquire()
1167 iolock.acquire()
1172 sys.stdout.write(result[0])
1168 sys.stdout.write(result[0])
General Comments 0
You need to be logged in to leave comments. Login now