--- a/tests/run-tests.py Sun Oct 02 14:34:28 2011 -0400
+++ b/tests/run-tests.py Wed Oct 12 22:01:14 2011 +0200
@@ -521,6 +521,26 @@
def stringescape(s):
return escapesub(escapef, s)
+def transformtst(lines):
+ inblock = False
+ for l in lines:
+ if inblock:
+ if l.startswith(' $ '):
+ inblock = False
+ yield ' > EOF\n'
+ yield l
+ else:
+ yield ' > ' + l[2:]
+ else:
+ if l.startswith(' >>> '):
+ inblock = True
+ yield ' $ %s -m heredoctest <<EOF\n' % PYTHON
+ yield ' > ' + l[2:]
+ else:
+ yield l
+ if inblock:
+ yield ' > EOF\n'
+
def tsttest(test, wd, options, replacements):
t = open(test)
out = []
@@ -530,7 +550,7 @@
pos = prepos = -1
after = {}
expected = {}
- for n, l in enumerate(t):
+ for n, l in enumerate(transformtst(t)):
if not l.endswith('\n'):
l += '\n'
if l.startswith(' $ '): # commands
@@ -833,7 +853,7 @@
refout = None # to match "out is None"
elif os.path.exists(ref):
f = open(ref, "r")
- refout = splitnewlines(f.read())
+ refout = list(transformtst(splitnewlines(f.read())))
f.close()
else:
refout = []