##// END OF EJS Templates
run-tests: move output difference processing to Test.run()
Gregory Szorc -
r21326:04e04766 default
parent child Browse files
Show More
@@ -619,6 +619,11 b' class Test(object):'
619 if not self._options.keep_tmpdir:
619 if not self._options.keep_tmpdir:
620 shutil.rmtree(testtmp)
620 shutil.rmtree(testtmp)
621
621
622 def describe(ret):
623 if ret < 0:
624 return 'killed by signal: %d' % -ret
625 return 'returned error code %d' % ret
626
622 if ret == SKIPPED_STATUS:
627 if ret == SKIPPED_STATUS:
623 if out is None: # Debug mode, nothing to parse.
628 if out is None: # Debug mode, nothing to parse.
624 missing = ['unknown']
629 missing = ['unknown']
@@ -637,6 +642,26 b' class Test(object):'
637 return self.skip(missing[-1])
642 return self.skip(missing[-1])
638 elif ret == 'timeout':
643 elif ret == 'timeout':
639 return self.fail('timed out', ret)
644 return self.fail('timed out', ret)
645 elif out != self._refout:
646 info = {}
647 if not self._options.nodiff:
648 iolock.acquire()
649 if self._options.view:
650 os.system("%s %s %s" % (self._options.view, self._refpath,
651 self._errpath))
652 else:
653 info = showdiff(self._refout, out, self._refpath,
654 self._errpath)
655 iolock.release()
656 msg = ''
657 if info.get('servefail'):
658 msg += 'serve failed and '
659 if ret:
660 msg += 'output changed and ' + describe(ret)
661 else:
662 msg += 'output changed'
663
664 return self.fail(msg, ret)
640
665
641 def _run(self, testtmp, replacements, env):
666 def _run(self, testtmp, replacements, env):
642 raise NotImplemented('Subclasses must implement Test.run()')
667 raise NotImplemented('Subclasses must implement Test.run()')
@@ -1079,11 +1104,6 b' def runone(options, test, count):'
1079 def ignore(msg):
1104 def ignore(msg):
1080 return 'i', test, msg
1105 return 'i', test, msg
1081
1106
1082 def describe(ret):
1083 if ret < 0:
1084 return 'killed by signal %d' % -ret
1085 return 'returned error code %d' % ret
1086
1087 testpath = os.path.join(TESTDIR, test)
1107 testpath = os.path.join(TESTDIR, test)
1088 err = os.path.join(TESTDIR, test + ".err")
1108 err = os.path.join(TESTDIR, test + ".err")
1089 lctest = test.lower()
1109 lctest = test.lower()
@@ -1145,22 +1165,6 b' def runone(options, test, count):'
1145
1165
1146 if result:
1166 if result:
1147 pass
1167 pass
1148 elif out != refout:
1149 info = {}
1150 if not options.nodiff:
1151 iolock.acquire()
1152 if options.view:
1153 os.system("%s %s %s" % (options.view, ref, err))
1154 else:
1155 info = showdiff(refout, out, ref, err)
1156 iolock.release()
1157 msg = ""
1158 if info.get('servefail'): msg += "serve failed and "
1159 if ret:
1160 msg += "output changed and " + describe(ret)
1161 else:
1162 msg += "output changed"
1163 result = t.fail(msg, ret)
1164 elif ret:
1168 elif ret:
1165 result = t.fail(describe(ret), ret)
1169 result = t.fail(describe(ret), ret)
1166 else:
1170 else:
General Comments 0
You need to be logged in to leave comments. Login now