iotests: Use Python byte strings where appropriate
commit8eb5e6746feaf9e021b69ea2521899f8dc889033
authorMax Reitz <mreitz@redhat.com>
Mon, 22 Oct 2018 13:53:01 +0000 (22 14:53 +0100)
committerEduardo Habkost <ehabkost@redhat.com>
Wed, 31 Oct 2018 00:11:52 +0000 (30 21:11 -0300)
treed583c2b1ff0c86cffda689278e9e176bb73c6274
parentf544adf736cb1b100a7fe926f3712157b22c3ddd
iotests: Use Python byte strings where appropriate

Since byte strings are no longer the default in Python 3, we have to
explicitly use them where we need to, which is mostly when working with
structures.  It also means that we need to open a file in binary mode
when we want to use structures.

On the other hand, we have to accomodate for the fact that some
functions (still) work with byte strings but we want to use unicode
strings (in Python 3 at least, and it does not matter in Python 2).
This includes base64 encoding, but it is most notable when working with
the subprocess module: Either we set universal_newlines to True so that
the default streams are opened in text mode (hence this parameter is
aliased as "text" as of 3.7), or, if that is not possible, we have to
decode the output to a normal string.

Signed-off-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Eduardo Habkost <ehabkost@redhat.com>
Message-Id: <20181022135307.14398-4-mreitz@redhat.com>
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
scripts/qtest.py
tests/qemu-iotests/044
tests/qemu-iotests/149
tests/qemu-iotests/207
tests/qemu-iotests/iotests.py
tests/qemu-iotests/nbd-fault-injector.py
tests/qemu-iotests/qcow2.py