Show More
@@ -708,7 +708,8 b' class Test(object):' | |||
|
708 | 708 | return res |
|
709 | 709 | |
|
710 | 710 | def _run(self, testtmp, replacements, env): |
|
711 | raise NotImplemented('Subclasses must implement Test.run()') | |
|
711 | # This should be implemented in child classes to run tests. | |
|
712 | return self._skip('unknown test type') | |
|
712 | 713 | |
|
713 | 714 | def _getreplacements(self, testtmp): |
|
714 | 715 | port = self._options.port + self._count * 3 |
@@ -1083,6 +1084,26 b' class TTest(Test):' | |||
|
1083 | 1084 | return '+glob' |
|
1084 | 1085 | return False |
|
1085 | 1086 | |
|
1087 | def gettest(testdir, test, options, count): | |
|
1088 | """Obtain a Test by looking at its filename. | |
|
1089 | ||
|
1090 | Returns a Test instance. The Test may not be runnable if it doesn't map | |
|
1091 | to a known type. | |
|
1092 | """ | |
|
1093 | ||
|
1094 | lctest = test.lower() | |
|
1095 | refpath = os.path.join(testdir, test) | |
|
1096 | ||
|
1097 | runner = Test | |
|
1098 | ||
|
1099 | for ext, cls, out in testtypes: | |
|
1100 | if lctest.endswith(ext): | |
|
1101 | runner = cls | |
|
1102 | refpath = os.path.join(testdir, test + out) | |
|
1103 | break | |
|
1104 | ||
|
1105 | return runner(testdir, test, options, count, refpath) | |
|
1106 | ||
|
1086 | 1107 | wifexited = getattr(os, "WIFEXITED", lambda x: False) |
|
1087 | 1108 | def run(cmd, wd, options, replacements, env): |
|
1088 | 1109 | """Run command in a sub-process, capturing the output (stdout and stderr). |
@@ -1129,31 +1150,6 b' def run(cmd, wd, options, replacements, ' | |||
|
1129 | 1150 | output = re.sub(s, r, output) |
|
1130 | 1151 | return ret, output.splitlines(True) |
|
1131 | 1152 | |
|
1132 | def runone(options, test, count): | |
|
1133 | '''returns a result element: (code, test, msg)''' | |
|
1134 | ||
|
1135 | def skip(msg): | |
|
1136 | if options.verbose: | |
|
1137 | log("\nSkipping %s: %s" % (testpath, msg)) | |
|
1138 | return 's', test, msg | |
|
1139 | ||
|
1140 | lctest = test.lower() | |
|
1141 | ||
|
1142 | for ext, cls, out in testtypes: | |
|
1143 | if lctest.endswith(ext): | |
|
1144 | runner = cls | |
|
1145 | ref = os.path.join(TESTDIR, test + out) | |
|
1146 | break | |
|
1147 | else: | |
|
1148 | return skip("unknown test type") | |
|
1149 | ||
|
1150 | t = runner(TESTDIR, test, options, count, ref) | |
|
1151 | result = t.run() | |
|
1152 | ||
|
1153 | t.cleanup() | |
|
1154 | ||
|
1155 | return result | |
|
1156 | ||
|
1157 | 1153 | _hgpath = None |
|
1158 | 1154 | |
|
1159 | 1155 | def _gethgpath(): |
@@ -1195,7 +1191,9 b' def scheduletests(options, tests):' | |||
|
1195 | 1191 | |
|
1196 | 1192 | def job(test, count): |
|
1197 | 1193 | try: |
|
1198 | done.put(runone(options, test, count)) | |
|
1194 | t = gettest(TESTDIR, test, options, count) | |
|
1195 | done.put(t.run()) | |
|
1196 | t.cleanup() | |
|
1199 | 1197 | except KeyboardInterrupt: |
|
1200 | 1198 | pass |
|
1201 | 1199 | except: # re-raises |
General Comments 0
You need to be logged in to leave comments.
Login now