This script is necessary to choose the best machine type in the appropriate cases. Also we have to check compat_props of the old MT after changes to be sure that they haven't broken old the MT. For example, pc_compat_3_1 of pc-q35-3.1 has Icelake-Client which was removed in March.
v5 -> v4: * minor fixes v4 -> v3: * increase read buffer limit to limit value in libvirt * add caching of qmp requests to speed up the script v3 -> v2: * simplify adding new methods for getting QEMU default values * add typing * change concept from fixed dictionaries to classes v2 -> v1: * fix script code style and descriptions * reorder patches v1 -> previous iteration: * new default value print concept * QEMU python library is used to collect qmp data * remove auxiliary patches (that was used to fix `->get` sematics) * print compat_props in the correct order * delete `absract` field to reduce output JSON size Maksim Davydov (4): qom: add default value python/qmp: increase read buffer size qmp: add dump machine type compatible properties scripts: add script to compare compatible properties hw/core/machine-qmp-cmds.c | 23 +- python/qemu/qmp/qmp_client.py | 4 +- qapi/machine.json | 54 +++- qom/qom-qmp-cmds.c | 1 + scripts/compare_mt.py | 506 ++++++++++++++++++++++++++++++++++ tests/qtest/fuzz/qos_fuzz.c | 2 +- 6 files changed, 584 insertions(+), 6 deletions(-) create mode 100755 scripts/compare_mt.py -- 2.25.1