[Python-checkins] cpython: Issue #23715: Enhance test.script_helper to investigate test_eintr failure

victor.stinner python-checkins at python.org
Fri Mar 20 13:38:50 CET 2015


https://hg.python.org/cpython/rev/8f9925a02fe7
changeset:   95093:8f9925a02fe7
user:        Victor Stinner <victor.stinner at gmail.com>
date:        Fri Mar 20 13:38:08 2015 +0100
summary:
  Issue #23715: Enhance test.script_helper to investigate test_eintr failure

If Python failed, show also stdout in the assertion error.

files:
  Lib/test/script_helper.py |  27 +++++++++++++++++++++++----
  1 files changed, 23 insertions(+), 4 deletions(-)


diff --git a/Lib/test/script_helper.py b/Lib/test/script_helper.py
--- a/Lib/test/script_helper.py
+++ b/Lib/test/script_helper.py
@@ -86,10 +86,29 @@
     rc = p.returncode
     err = strip_python_stderr(err)
     if (rc and expected_success) or (not rc and not expected_success):
-        raise AssertionError(
-            "Process return code is %d, command line was: %r, "
-            "stderr follows:\n%s" % (rc, cmd_line,
-                                     err.decode('ascii', 'ignore')))
+        # Limit to 80 lines to ASCII characters
+        maxlen = 80 * 100
+        if len(out) > maxlen:
+            out = b'(... truncated stdout ...)' + out[-maxlen:]
+        if len(err) > maxlen:
+            err = b'(... truncated stderr ...)' + err[-maxlen:]
+        out = out.decode('ascii', 'replace').rstrip()
+        err = err.decode('ascii', 'replace').rstrip()
+        raise AssertionError("Process return code is %d\n"
+                             "command line: %r\n"
+                             "\n"
+                             "stdout:\n"
+                             "---\n"
+                             "%s\n"
+                             "---\n"
+                             "\n"
+                             "stderr:\n"
+                             "---\n"
+                             "%s\n"
+                             "---"
+                             % (rc, cmd_line,
+                                out,
+                                err))
     return rc, out, err
 
 def assert_python_ok(*args, **env_vars):

-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list