qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH for-3.1 v2] python: Use io.StringIO


From: Eduardo Habkost
Subject: Re: [Qemu-devel] [PATCH for-3.1 v2] python: Use io.StringIO
Date: Fri, 20 Jul 2018 16:28:40 -0300
User-agent: Mutt/1.9.2 (2017-12-15)

On Wed, Jul 18, 2018 at 07:36:28PM -0300, Philippe Mathieu-Daudé wrote:
> Both Python 2.7 and 3 support the same io.StringIO to
> handle unicode strings.
> 
> Python 2.6 requires special care, but since 7f2b55443a his
> support was removed. Stop caring, drop the ImportError check.
> 
> Use the common form to use indistinctly Python 2.7 or 3.
> 
> http://python-future.org/compatible_idioms.html#stringio
> 
> This fixes running tests on the Fedora Docker image,
> which uses Python3 since 356dc290f:
> 
>   $ make address@hidden
>   [...]
>   045         [failed, exit status 1] - output mismatch (see 045.out.bad)
>   --- /tmp/qemu-test/src/tests/qemu-iotests/045.out       2018-07-17 
> 16:56:18.000000000 +0000
>   +++ /tmp/qemu-test/build/tests/qemu-iotests/045.out.bad 2018-07-17 
> 17:19:22.448409007 +0000
>   @@ -1,5 +1,6 @@
>   -...........
>   -----------------------------------------------------------------------
>   -Ran 11 tests
>   -
>   -OK
>   +Traceback (most recent call last):
>   +  File "045", line 178, in <module>
>   +    iotests.main(supported_fmts=['raw'])
>   +  File "/tmp/qemu-test/src/tests/qemu-iotests/iotests.py", line 682, in 
> main
>   +    import StringIO
>   +ModuleNotFoundError: No module named 'StringIO'
>   132         [failed, exit status 1] - output mismatch (see 132.out.bad)
>   152         [failed, exit status 1] - output mismatch (see 152.out.bad)
> 
>   Failures: 045 132 152
> 
> Suggested-by: Eduardo Habkost <address@hidden>
> Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
> ---
>  tests/docker/docker.py        | 5 +----
>  tests/image-fuzzer/runner.py  | 6 +++---
>  tests/qemu-iotests/iotests.py | 5 +++--
>  3 files changed, 7 insertions(+), 9 deletions(-)
> 
> diff --git a/tests/docker/docker.py b/tests/docker/docker.py
> index 69e7130db7..9d53b868db 100755
> --- a/tests/docker/docker.py
> +++ b/tests/docker/docker.py
> @@ -26,10 +26,7 @@ import tempfile
>  import re
>  import signal
>  from tarfile import TarFile, TarInfo
> -try:
> -    from StringIO import StringIO
> -except ImportError:
> -    from io import StringIO
> +from io import StringIO

This one should be BytesIO, see:
https://www.mail-archive.com/address@hidden/msg545627.html


>  from shutil import copy, rmtree
>  from pwd import getpwuid
>  from datetime import datetime,timedelta
> diff --git a/tests/image-fuzzer/runner.py b/tests/image-fuzzer/runner.py
> index 95d84f38f3..4462d84f45 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
> +from io import StringIO
>  import resource
>  
>  try:
> @@ -183,7 +183,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 = StringIO()
>          retcode = run_app(temp_log, cmd)

I wouldn't touch this until we're sure if temp_log needs to be a
binary file or a text file.


>          if retcode == 0:
>              temp_log.close()
> @@ -240,7 +240,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 = StringIO()
>              try:
>                  retcode = run_app(temp_log, current_cmd)
>              except OSError as e:
> diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py
> index 4e67fbbe96..c95dd17190 100644
> --- a/tests/qemu-iotests/iotests.py
> +++ b/tests/qemu-iotests/iotests.py
> @@ -679,13 +679,14 @@ def main(supported_fmts=[], supported_oses=['linux'], 
> supported_cache_modes=[],
>  
>      # We need to filter out the time taken from the output so that 
> qemu-iotest
>      # can reliably diff the results against master output.
> -    import StringIO
> +    from io import StringIO
> +

This one looks correct.


>      if debug:
>          output = sys.stdout
>          verbosity = 2
>          sys.argv.remove('-d')
>      else:
> -        output = StringIO.StringIO()
> +        output = StringIO()
>  
>      logging.basicConfig(level=(logging.DEBUG if debug else logging.WARN))
>  
> -- 
> 2.18.0
> 

-- 
Eduardo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]