iotests: handle TypeError for Python 3 in test 242

The data type for bytes in Python 3 differs from the one in Python 2.
The type cast that is compatible with both versions was applied.

Signed-off-by: Nir Soffer <nsoffer@redhat.com>
Signed-off-by: Andrey Shinkevich <andrey.shinkevich@virtuozzo.com>
Reported-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <1551197495-24425-1-git-send-email-andrey.shinkevich@virtuozzo.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
Andrey Shinkevich 2019-02-26 19:11:35 +03:00 committed by Eric Blake
parent d88d85f1f0
commit 42eb4591fe

View File

@ -20,6 +20,7 @@
import iotests
import json
import struct
from iotests import qemu_img_create, qemu_io, qemu_img_pipe, \
file_path, img_info_log, log, filter_qemu_io
@ -64,10 +65,11 @@ def write_to_disk(offset, size):
def toggle_flag(offset):
with open(disk, "r+b") as f:
f.seek(offset, 0)
c = f.read(1)
toggled = chr(ord(c) ^ bitmap_flag_unknown)
# Read one byte in a way compatible with Python 2
flags = struct.unpack("B", f.read(1))
toggled = flags[0] ^ bitmap_flag_unknown
f.seek(-1, 1)
f.write(toggled)
f.write(struct.pack("B", toggled))
qemu_img_create('-f', iotests.imgfmt, disk, '1M')