Re: [PATCH v3 2/6] iotests: move check for printable data to QcowHeaderExtension class

2020-06-02 Thread Vladimir Sementsov-Ogievskiy

01.06.2020 16:48, Andrey Shinkevich wrote:

Let us differ binary data type from string one for the extension data
variable and keep the string as the QcowHeaderExtension class member
in the script qcow2.py.

Signed-off-by: Andrey Shinkevich


Reviewed-by: Vladimir Sementsov-Ogievskiy 

--
Best regards,
Vladimir



Re: [PATCH v3 2/6] iotests: move check for printable data to QcowHeaderExtension class

2020-06-02 Thread Eric Blake

On 6/1/20 8:48 AM, Andrey Shinkevich wrote:

Let us differ binary data type from string one for the extension data
variable and keep the string as the QcowHeaderExtension class member
in the script qcow2.py.

Signed-off-by: Andrey Shinkevich 
---
  tests/qemu-iotests/qcow2.py | 15 ---
  1 file changed, 8 insertions(+), 7 deletions(-)



Sane code motion.
Reviewed-by: Eric Blake 

--
Eric Blake, Principal Software Engineer
Red Hat, Inc.   +1-919-301-3226
Virtualization:  qemu.org | libvirt.org




[PATCH v3 2/6] iotests: move check for printable data to QcowHeaderExtension class

2020-06-01 Thread Andrey Shinkevich
Let us differ binary data type from string one for the extension data
variable and keep the string as the QcowHeaderExtension class member
in the script qcow2.py.

Signed-off-by: Andrey Shinkevich 
---
 tests/qemu-iotests/qcow2.py | 15 ---
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/tests/qemu-iotests/qcow2.py b/tests/qemu-iotests/qcow2.py
index e824b09..18e4923 100755
--- a/tests/qemu-iotests/qcow2.py
+++ b/tests/qemu-iotests/qcow2.py
@@ -13,6 +13,12 @@ class QcowHeaderExtension:
 QCOW2_EXT_MAGIC_DATA_FILE = 0x44415441
 
 def __init__(self, magic, length, data):
+data_str = data[:length]
+if all(c in string.printable.encode('ascii') for c in data_str):
+data_str = "'%s'" % data_str.decode('ascii')
+else:
+data_str = ""
+
 if length % 8 != 0:
 padding = 8 - (length % 8)
 data += b"\0" * padding
@@ -21,6 +27,7 @@ class QcowHeaderExtension:
 self.length = length
 self.data = data
 self.name = self.extension_name(magic)
+self.data_str = data_str
 
 @classmethod
 def create(cls, magic, data):
@@ -162,16 +169,10 @@ class QcowHeader:
 def dump_extensions(self):
 for ex in self.extensions:
 
-data = ex.data[:ex.length]
-if all(c in string.printable.encode('ascii') for c in data):
-data = "'%s'" % data.decode('ascii')
-else:
-data = ""
-
 print("%-25s %s" % ("Header extension:", ex.name))
 print("%-25s %#x" % ("magic", ex.magic))
 print("%-25s %d" % ("length", ex.length))
-print("%-25s %s" % ("data", data))
+print("%-25s %s" % ("data", ex.data_str))
 print("")
 
 
-- 
1.8.3.1