[Qemu-devel] [PATCH v2 0/9] iotests: Make them work for both Python 2 and 3

Max Reitz posted 9 patches 5 years, 5 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20181019191523.12157-1-mreitz@redhat.com
Test docker-clang@ubuntu passed
Test checkpatch failed
Test asan passed
Test docker-mingw@fedora failed
Test docker-quick@centos7 passed
There is a newer version of this series
scripts/qemu.py                          |  34 +-
scripts/qtest.py                         |   2 +-
tests/qemu-iotests/030                   |   2 +-
tests/qemu-iotests/040                   |   4 +-
tests/qemu-iotests/041                   |   4 +-
tests/qemu-iotests/044                   |  24 +-
tests/qemu-iotests/045                   |   2 +-
tests/qemu-iotests/056                   |   2 +-
tests/qemu-iotests/065                   |   4 +-
tests/qemu-iotests/083.out               |   9 +
tests/qemu-iotests/093                   |  18 +-
tests/qemu-iotests/124                   |   4 +-
tests/qemu-iotests/136                   |   2 +-
tests/qemu-iotests/139                   |   2 +-
tests/qemu-iotests/147                   |   2 +-
tests/qemu-iotests/149                   |  14 +-
tests/qemu-iotests/151                   |  12 +-
tests/qemu-iotests/163                   |  13 +-
tests/qemu-iotests/169                   |   3 +-
tests/qemu-iotests/194.out               |  22 +-
tests/qemu-iotests/202.out               |  12 +-
tests/qemu-iotests/203.out               |  14 +-
tests/qemu-iotests/206.out               | 218 +++++-----
tests/qemu-iotests/207                   |   6 +-
tests/qemu-iotests/207.out               |  72 ++--
tests/qemu-iotests/208.out               |   8 +-
tests/qemu-iotests/210.out               |  94 ++--
tests/qemu-iotests/211.out               | 102 ++---
tests/qemu-iotests/212.out               | 174 ++++----
tests/qemu-iotests/213.out               | 182 ++++----
tests/qemu-iotests/216.out               |   4 +-
tests/qemu-iotests/218.out               |  20 +-
tests/qemu-iotests/219.out               | 526 +++++++++++------------
tests/qemu-iotests/222.out               |  24 +-
tests/qemu-iotests/iotests.py            |  37 +-
tests/qemu-iotests/nbd-fault-injector.py |  12 +-
tests/qemu-iotests/qcow2.py              |  10 +-
tests/qemu-iotests/qed.py                |   6 +-
38 files changed, 879 insertions(+), 821 deletions(-)
[Qemu-devel] [PATCH v2 0/9] iotests: Make them work for both Python 2 and 3
Posted by Max Reitz 5 years, 5 months ago
This series prepares the iotests to work with both Python 2 and 3.  In
some places, it adds version-specific code and decides what to do based
on the version (for instance, whether to import the StringIO or the
BytesIO class from 'io' for use with the test runner), but most of the
time, it just makes code work for both versions in general.

And when we make the switch to make Python 3 mandatory, we can simply
drop the Python 2 branches.


v2:
- Patch 3: Commit message fix [Philippe]
- Patch 4: Really convert all places that use / [Cleber]
- Patch 5:
  - Use list comprehension expressions where that makes sense [Eduardo]
  - Make 'range' an alias for 'xrange' in 044 and 163 [Cleber]
- Patch 6:
  - %s/3\.2/3.4/g [Cleber]
  - Use hasattr() instead of catching AttributeError [Cleber]
  - Call set_inheritable in send_fd_scm() for both the QMP socket FD and
    the FD to be passed (if any) [Eduardo]
- Patch 7: Kept as-is, because it's just the minimal amount of change
- Patch 8: Use io.BytesIO in Python 2 [Cleber]
- Patch 9: Use json.dumps(..., sort_keys=True) instead of homegrown
           stringification function [Eduardo]

(Also kept the order, because one vote against, one vote for, so I go
for what's simplest for me. O:-))


git-backport-diff against v1:

Key:
[----] : patches are identical
[####] : number of functional differences between upstream/downstream patch
[down] : patch is downstream-only
The flags [FC] indicate (F)unctional and (C)ontextual differences, respectively

001/9:[----] [--] 'iotests: Make nbd-fault-injector flush'
002/9:[----] [--] 'iotests: Flush in iotests.py's QemuIoInteractive'
003/9:[----] [--] 'iotests: Use Python byte strings where appropriate'
004/9:[0014] [FC] 'iotests: Use // for Python integer division'
005/9:[0013] [FC] 'iotests: Different iterator behavior in Python 3'
006/9:[0049] [FC] 'iotests: Explicitly inherit FDs in Python'
007/9:[----] [--] 'iotests: 'new' module replacement in 169'
008/9:[0017] [FC] 'iotests: Modify imports for Python 3'
009/9:[1644] [FC] 'iotests: Unify log outputs between Python 2 and 3'


Max Reitz (9):
  iotests: Make nbd-fault-injector flush
  iotests: Flush in iotests.py's QemuIoInteractive
  iotests: Use Python byte strings where appropriate
  iotests: Use // for Python integer division
  iotests: Different iterator behavior in Python 3
  iotests: Explicitly inherit FDs in Python
  iotests: 'new' module replacement in 169
  iotests: Modify imports for Python 3
  iotests: Unify log outputs between Python 2 and 3

 scripts/qemu.py                          |  34 +-
 scripts/qtest.py                         |   2 +-
 tests/qemu-iotests/030                   |   2 +-
 tests/qemu-iotests/040                   |   4 +-
 tests/qemu-iotests/041                   |   4 +-
 tests/qemu-iotests/044                   |  24 +-
 tests/qemu-iotests/045                   |   2 +-
 tests/qemu-iotests/056                   |   2 +-
 tests/qemu-iotests/065                   |   4 +-
 tests/qemu-iotests/083.out               |   9 +
 tests/qemu-iotests/093                   |  18 +-
 tests/qemu-iotests/124                   |   4 +-
 tests/qemu-iotests/136                   |   2 +-
 tests/qemu-iotests/139                   |   2 +-
 tests/qemu-iotests/147                   |   2 +-
 tests/qemu-iotests/149                   |  14 +-
 tests/qemu-iotests/151                   |  12 +-
 tests/qemu-iotests/163                   |  13 +-
 tests/qemu-iotests/169                   |   3 +-
 tests/qemu-iotests/194.out               |  22 +-
 tests/qemu-iotests/202.out               |  12 +-
 tests/qemu-iotests/203.out               |  14 +-
 tests/qemu-iotests/206.out               | 218 +++++-----
 tests/qemu-iotests/207                   |   6 +-
 tests/qemu-iotests/207.out               |  72 ++--
 tests/qemu-iotests/208.out               |   8 +-
 tests/qemu-iotests/210.out               |  94 ++--
 tests/qemu-iotests/211.out               | 102 ++---
 tests/qemu-iotests/212.out               | 174 ++++----
 tests/qemu-iotests/213.out               | 182 ++++----
 tests/qemu-iotests/216.out               |   4 +-
 tests/qemu-iotests/218.out               |  20 +-
 tests/qemu-iotests/219.out               | 526 +++++++++++------------
 tests/qemu-iotests/222.out               |  24 +-
 tests/qemu-iotests/iotests.py            |  37 +-
 tests/qemu-iotests/nbd-fault-injector.py |  12 +-
 tests/qemu-iotests/qcow2.py              |  10 +-
 tests/qemu-iotests/qed.py                |   6 +-
 38 files changed, 879 insertions(+), 821 deletions(-)

-- 
2.17.1


Re: [Qemu-devel] [PATCH v2 0/9] iotests: Make them work for both Python 2 and 3
Posted by Cleber Rosa 5 years, 5 months ago

On 10/19/18 3:15 PM, Max Reitz wrote:
> This series prepares the iotests to work with both Python 2 and 3.  In
> some places, it adds version-specific code and decides what to do based
> on the version (for instance, whether to import the StringIO or the
> BytesIO class from 'io' for use with the test runner), but most of the
> time, it just makes code work for both versions in general.
> 

Tested on both Python 2 and 3.

Tested-by: Cleber Rosa <crosa@redhat.com>