aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEduardo Habkost <ehabkost@redhat.com>2019-10-16 16:24:24 -0300
committerStefan Hajnoczi <stefanha@redhat.com>2019-11-05 16:35:06 +0100
commit8353546de54a6b1143ed23f62c976a986369fcf1 (patch)
treedbd007a306d2e3895a2d90982842b12a1a8a3628
parentd974451c5bc9a0bdf07a8299edf75c0f66a86e04 (diff)
downloadqemu-8353546de54a6b1143ed23f62c976a986369fcf1.tar.gz
image-fuzzer: Use io.StringIO
StringIO.StringIO is not available on Python 3, but io.StringIO is available on both Python 2 and 3. io.StringIO is slightly different from the Python 2 StringIO module, though, so we need bytes coming from subprocess.Popen() to be explicitly decoded. Signed-off-by: Eduardo Habkost <ehabkost@redhat.com> Reviewed-by: John Snow <jsnow@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Message-id: 20191016192430.25098-5-ehabkost@redhat.com Message-Id: <20191016192430.25098-5-ehabkost@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
-rwxr-xr-xtests/image-fuzzer/runner.py14
1 files changed, 9 insertions, 5 deletions
diff --git a/tests/image-fuzzer/runner.py b/tests/image-fuzzer/runner.py
index 95d84f38f37..94cab5bd93f 100755
--- a/tests/image-fuzzer/runner.py
+++ b/tests/image-fuzzer/runner.py
@@ -28,7 +28,7 @@ import shutil
from itertools import count
import time
import getopt
-import StringIO
+import io
import resource
try:
@@ -84,8 +84,12 @@ def run_app(fd, q_args):
try:
out, err = process.communicate()
signal.alarm(0)
- fd.write(out)
- fd.write(err)
+ # 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.flush()
return process.returncode
@@ -183,7 +187,7 @@ class TestEnv(object):
MAX_BACKING_FILE_SIZE) * (1 << 20)
cmd = self.qemu_img + ['create', '-f', backing_file_fmt,
backing_file_name, str(backing_file_size)]
- temp_log = StringIO.StringIO()
+ temp_log = io.StringIO()
retcode = run_app(temp_log, cmd)
if retcode == 0:
temp_log.close()
@@ -240,7 +244,7 @@ class TestEnv(object):
"Backing file: %s\n" \
% (self.seed, " ".join(current_cmd),
self.current_dir, backing_file_name)
- temp_log = StringIO.StringIO()
+ temp_log = io.StringIO()
try:
retcode = run_app(temp_log, current_cmd)
except OSError as e: