]> Git Repo - qemu.git/commitdiff
image-fuzzer: Use errors parameter of subprocess.Popen()
authorEduardo Habkost <[email protected]>
Wed, 16 Oct 2019 19:24:30 +0000 (16:24 -0300)
committerStefan Hajnoczi <[email protected]>
Tue, 5 Nov 2019 15:35:06 +0000 (16:35 +0100)
Instead of manually encoding stderr and stdout output, use
`errors` parameter of subprocess.Popen().  This will make
process.communicate() return unicode strings instead of bytes
objects.

Signed-off-by: Eduardo Habkost <[email protected]>
Reviewed-by: John Snow <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Message-id: 20191016192430[email protected]
Message-Id: <20191016192430[email protected]>
Signed-off-by: Stefan Hajnoczi <[email protected]>
tests/image-fuzzer/runner.py

index 07932348150a8280f04377568bac69b47a254f9c..4ba5c79e136e2bcda8d5744e7963f4a893ec082b 100755 (executable)
@@ -79,16 +79,13 @@ def run_app(fd, q_args):
     devnull = open('/dev/null', 'r+')
     process = subprocess.Popen(q_args, stdin=devnull,
                                stdout=subprocess.PIPE,
-                               stderr=subprocess.PIPE)
+                               stderr=subprocess.PIPE,
+                               errors='replace')
     try:
         out, err = process.communicate()
         signal.alarm(0)
-        # fd is a text file, so we need to decode the process output before
-        # writing to it.
-        # We could be simply using the `errors` parameter of subprocess.Popen(),
-        # but this will be possible only after migrating to Python 3
-        fd.write(out.decode(errors='replace'))
-        fd.write(err.decode(errors='replace'))
+        fd.write(out)
+        fd.write(err)
         fd.flush()
         return process.returncode
 
This page took 0.027667 seconds and 4 git commands to generate.