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