diff tests/heredoctest.py @ 40318:55fd0fefbec4

py3: flush std streams before/after running user code in heredoctest.py Otherwise, things written to stdout.buffer would be interleaved.
author Yuya Nishihara <yuya@tcha.org>
date Tue, 16 Oct 2018 07:18:30 +0200
parents 6a98f9408a50
children 2372284d9457
line wrap: on
line diff
--- a/tests/heredoctest.py	Tue Oct 16 08:06:17 2018 +0200
+++ b/tests/heredoctest.py	Tue Oct 16 07:18:30 2018 +0200
@@ -2,6 +2,10 @@
 
 import sys
 
+def flush():
+    sys.stdout.flush()
+    sys.stderr.flush()
+
 globalvars = {}
 lines = sys.stdin.readlines()
 while lines:
@@ -15,6 +19,9 @@
             snippet += l[4:]
         c = compile(snippet, '<heredoc>', 'single')
         try:
+            flush()
             exec(c, globalvars)
+            flush()
         except Exception as inst:
+            flush()
             print(repr(inst))