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):
>
--
Best regards,
Vladimir