mirror of https://gitlab.com/qemu-project/qemu
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>
This commit is contained in:
parent
d974451c5b
commit
8353546de5
|
@ -28,7 +28,7 @@ import shutil
|
||||||
from itertools import count
|
from itertools import count
|
||||||
import time
|
import time
|
||||||
import getopt
|
import getopt
|
||||||
import StringIO
|
import io
|
||||||
import resource
|
import resource
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
@ -84,8 +84,12 @@ def run_app(fd, q_args):
|
||||||
try:
|
try:
|
||||||
out, err = process.communicate()
|
out, err = process.communicate()
|
||||||
signal.alarm(0)
|
signal.alarm(0)
|
||||||
fd.write(out)
|
# fd is a text file, so we need to decode the process output before
|
||||||
fd.write(err)
|
# 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()
|
fd.flush()
|
||||||
return process.returncode
|
return process.returncode
|
||||||
|
|
||||||
|
@ -183,7 +187,7 @@ class TestEnv(object):
|
||||||
MAX_BACKING_FILE_SIZE) * (1 << 20)
|
MAX_BACKING_FILE_SIZE) * (1 << 20)
|
||||||
cmd = self.qemu_img + ['create', '-f', backing_file_fmt,
|
cmd = self.qemu_img + ['create', '-f', backing_file_fmt,
|
||||||
backing_file_name, str(backing_file_size)]
|
backing_file_name, str(backing_file_size)]
|
||||||
temp_log = StringIO.StringIO()
|
temp_log = io.StringIO()
|
||||||
retcode = run_app(temp_log, cmd)
|
retcode = run_app(temp_log, cmd)
|
||||||
if retcode == 0:
|
if retcode == 0:
|
||||||
temp_log.close()
|
temp_log.close()
|
||||||
|
@ -240,7 +244,7 @@ class TestEnv(object):
|
||||||
"Backing file: %s\n" \
|
"Backing file: %s\n" \
|
||||||
% (self.seed, " ".join(current_cmd),
|
% (self.seed, " ".join(current_cmd),
|
||||||
self.current_dir, backing_file_name)
|
self.current_dir, backing_file_name)
|
||||||
temp_log = StringIO.StringIO()
|
temp_log = io.StringIO()
|
||||||
try:
|
try:
|
||||||
retcode = run_app(temp_log, current_cmd)
|
retcode = run_app(temp_log, current_cmd)
|
||||||
except OSError as e:
|
except OSError as e:
|
||||||
|
|
Loading…
Reference in New Issue