--- a/tests/run-tests.py Mon Aug 02 15:44:54 2010 -0500
+++ b/tests/run-tests.py Mon Aug 02 23:27:22 2010 -0500
@@ -52,6 +52,7 @@
import sys
import tempfile
import time
+import re
closefds = os.name == 'posix'
def Popen4(cmd, bufsize=-1):
@@ -459,6 +460,69 @@
vlog("# Running", cmd)
return run(cmd, options)
+def tsttest(test, options):
+ t = open(test)
+ out = []
+ script = []
+ salt = "SALT" + str(time.time())
+
+ pos = prepos = -1
+ after = {}
+ expected = {}
+ for n, l in enumerate(t):
+ if l.startswith(' $ '): # commands
+ after.setdefault(pos, []).append(l)
+ prepos = pos
+ pos = n
+ script.append('echo %s %s\n' % (salt, n))
+ script.append(l[4:])
+ elif l.startswith(' > '): # continuations
+ after.setdefault(prepos, []).append(l)
+ script.append(l[4:])
+ elif l.startswith(' '): # results
+ # queue up a list of expected results
+ expected.setdefault(pos, []).append(l[2:])
+ else:
+ # non-command/result - queue up for merged output
+ after.setdefault(pos, []).append(l)
+
+ fd, name = tempfile.mkstemp(suffix='hg-tst')
+
+ try:
+ for l in script:
+ os.write(fd, l)
+ os.close(fd)
+
+ cmd = '/bin/sh "%s"' % name