]> granicus.if.org Git - python/commitdiff
Issue #23715: Enhance test.script_helper to investigate test_eintr failure
authorVictor Stinner <victor.stinner@gmail.com>
Fri, 20 Mar 2015 12:38:08 +0000 (13:38 +0100)
committerVictor Stinner <victor.stinner@gmail.com>
Fri, 20 Mar 2015 12:38:08 +0000 (13:38 +0100)
If Python failed, show also stdout in the assertion error.

Lib/test/script_helper.py

index 5531a34b622a6eb411acfe01c938a2bd5d3dd485..8743dba79e5f9d7593650515b3b91fbb1135e91a 100644 (file)
@@ -86,10 +86,29 @@ def _assert_python(expected_success, *args, **env_vars):
     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):