Message ID | 1593782030-521984-5-git-send-email-andrey.shinkevich@virtuozzo.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | iotests: Dump QCOW2 dirty bitmaps metadata | expand |
03.07.2020 16:13, Andrey Shinkevich wrote: > Introduce the class BitmapFlags that parses a bitmap flags mask. > > Suggested-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> > Signed-off-by: Andrey Shinkevich <andrey.shinkevich@virtuozzo.com> > --- > tests/qemu-iotests/qcow2_format.py | 16 ++++++++++++++++ > 1 file changed, 16 insertions(+) > > diff --git a/tests/qemu-iotests/qcow2_format.py b/tests/qemu-iotests/qcow2_format.py > index 1435e34..d8c058d 100644 > --- a/tests/qemu-iotests/qcow2_format.py > +++ b/tests/qemu-iotests/qcow2_format.py > @@ -40,6 +40,22 @@ class Flags64(Qcow2Field): > return str(bits) > > > +class BitmapFlags(Qcow2Field): > + > + flags = { > + 0x1: 'in-use', > + 0x2: 'auto' > + } > + > + def __str__(self): > + bits = [] > + for bit in range(64): > + flag = self.value & (1 << bit) > + if flag: > + bits.append(self.flags.get(flag, '{:#x}'.format(flag))) please use f-strings where possible, for consistency. Also, more obvious notation for unknown bits would be f'bit-{bit}' I think, so you see number of bit, not big hex number. > + return f'{self.value:#x} ({bits})' > + > + > class Enum(Qcow2Field): > > def __str__(self): >
diff --git a/tests/qemu-iotests/qcow2_format.py b/tests/qemu-iotests/qcow2_format.py index 1435e34..d8c058d 100644 --- a/tests/qemu-iotests/qcow2_format.py +++ b/tests/qemu-iotests/qcow2_format.py @@ -40,6 +40,22 @@ class Flags64(Qcow2Field): return str(bits) +class BitmapFlags(Qcow2Field): + + flags = { + 0x1: 'in-use', + 0x2: 'auto' + } + + def __str__(self): + bits = [] + for bit in range(64): + flag = self.value & (1 << bit) + if flag: + bits.append(self.flags.get(flag, '{:#x}'.format(flag))) + return f'{self.value:#x} ({bits})' + + class Enum(Qcow2Field): def __str__(self):
Introduce the class BitmapFlags that parses a bitmap flags mask. Suggested-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> Signed-off-by: Andrey Shinkevich <andrey.shinkevich@virtuozzo.com> --- tests/qemu-iotests/qcow2_format.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+)