##// END OF EJS Templates
run-tests: move fail() into Test...
Gregory Szorc -
r21323:a7c677e2 default
parent child Browse files
Show More
@@ -678,6 +678,27 b' class Test(object):'
678 678 def success(self):
679 679 return '.', self._test, ''
680 680
681 def fail(self, msg, ret):
682 warned = ret is False
683 if not self._options.nodiff:
684 log("\n%s: %s %s" % (warned and 'Warning' or 'ERROR', self._test,
685 msg))
686 if (not ret and self._options.interactive and
687 os.path.exists(self._errpath)):
688 iolock.acquire()
689 print 'Accept this change? [n] ',
690 answer = sys.stdin.readline().strip()
691 iolock.release()
692 if answer.lower() in ('y', 'yes').split():
693 if self._test.endswith('.t'):
694 rename(self._errpath, self._testpath)
695 else:
696 rename(self._errpath, '%s.out' % self._testpath)
697
698 return '.', self._test, ''
699
700 return warned and '~' or '!', self._test, msg
701
681 702 class TestResult(object):
682 703 """Holds the result of a test execution."""
683 704
@@ -1034,24 +1055,6 b' def runone(options, test, count):'
1034 1055 log("\nSkipping %s: %s" % (testpath, msg))
1035 1056 return 's', test, msg
1036 1057
1037 def fail(msg, ret):
1038 warned = ret is False
1039 if not options.nodiff:
1040 log("\n%s: %s %s" % (warned and 'Warning' or 'ERROR', test, msg))
1041 if (not ret and options.interactive
1042 and os.path.exists(testpath + ".err")):
1043 iolock.acquire()
1044 print "Accept this change? [n] ",
1045 answer = sys.stdin.readline().strip()
1046 iolock.release()
1047 if answer.lower() in "y yes".split():
1048 if test.endswith(".t"):
1049 rename(testpath + ".err", testpath)
1050 else:
1051 rename(testpath + ".err", testpath + ".out")
1052 return '.', test, ''
1053 return warned and '~' or '!', test, msg
1054
1055 1058 def ignore(msg):
1056 1059 return 'i', test, msg
1057 1060
@@ -1101,7 +1104,7 b' def runone(options, test, count):'
1101 1104 t.run(res)
1102 1105
1103 1106 if res.exception:
1104 return fail('Exception during execution: %s' % res.exception, 255)
1107 return t.fail('Exception during execution: %s' % res.exception, 255)
1105 1108
1106 1109 ret = res.ret
1107 1110 out = res.out
@@ -1128,12 +1131,12 b' def runone(options, test, count):'
1128 1131 if not missing:
1129 1132 missing = ['irrelevant']
1130 1133 if failed:
1131 result = fail("hghave failed checking for %s" % failed[-1], ret)
1134 result = t.fail("hghave failed checking for %s" % failed[-1], ret)
1132 1135 skipped = False
1133 1136 else:
1134 1137 result = skip(missing[-1])
1135 1138 elif ret == 'timeout':
1136 result = fail("timed out", ret)
1139 result = t.fail("timed out", ret)
1137 1140 elif out != refout:
1138 1141 info = {}
1139 1142 if not options.nodiff:
@@ -1149,9 +1152,9 b' def runone(options, test, count):'
1149 1152 msg += "output changed and " + describe(ret)
1150 1153 else:
1151 1154 msg += "output changed"
1152 result = fail(msg, ret)
1155 result = t.fail(msg, ret)
1153 1156 elif ret:
1154 result = fail(describe(ret), ret)
1157 result = t.fail(describe(ret), ret)
1155 1158 else:
1156 1159 result = t.success()
1157 1160
General Comments 0
You need to be logged in to leave comments. Login now