[PATCH v4 0/4] tests/functional: Test with scripts/vmstate-static-checker.py

Thomas Huth posted 4 patches 2 weeks, 2 days ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20250912100755.316518-1-thuth@redhat.com
Maintainers: Peter Xu <peterx@redhat.com>, Fabiano Rosas <farosas@suse.de>, Halil Pasic <pasic@linux.ibm.com>, Christian Borntraeger <borntraeger@linux.ibm.com>, Eric Farman <farman@linux.ibm.com>, Matthew Rosato <mjrosato@linux.ibm.com>, Paolo Bonzini <pbonzini@redhat.com>, Zhao Liu <zhao1.liu@intel.com>
MAINTAINERS                                   |    4 +-
.../aarch64/virt-7.2.json                     | 2571 +++++++++++++
.../vmstate-static-checker}/dump1.json        |    0
.../vmstate-static-checker}/dump2.json        |    0
.../vmstate-static-checker/m68k/virt-7.2.json | 2936 +++++++++++++++
.../ppc64/pseries-7.2.json                    | 1068 ++++++
.../s390x/s390-ccw-virtio-7.2.json            |  475 +++
.../x86_64/pc-q35-7.2.json                    | 3297 +++++++++++++++++
tests/functional/aarch64/meson.build          |    1 +
tests/functional/generic/test_vmstate.py      |   67 +
tests/functional/m68k/meson.build             |    4 +
tests/functional/ppc64/meson.build            |    1 +
tests/functional/s390x/meson.build            |    4 +
tests/functional/x86_64/meson.build           |    4 +-
tests/functional/x86_64/test_bad_vmstate.py   |   58 +
15 files changed, 10488 insertions(+), 2 deletions(-)
create mode 100644 tests/data/vmstate-static-checker/aarch64/virt-7.2.json
rename tests/{vmstate-static-checker-data => data/vmstate-static-checker}/dump1.json (100%)
rename tests/{vmstate-static-checker-data => data/vmstate-static-checker}/dump2.json (100%)
create mode 100644 tests/data/vmstate-static-checker/m68k/virt-7.2.json
create mode 100644 tests/data/vmstate-static-checker/ppc64/pseries-7.2.json
create mode 100644 tests/data/vmstate-static-checker/s390x/s390-ccw-virtio-7.2.json
create mode 100644 tests/data/vmstate-static-checker/x86_64/pc-q35-7.2.json
create mode 100755 tests/functional/generic/test_vmstate.py
create mode 100755 tests/functional/x86_64/test_bad_vmstate.py
[PATCH v4 0/4] tests/functional: Test with scripts/vmstate-static-checker.py
Posted by Thomas Huth 2 weeks, 2 days ago
There are also some files available in tests/vmstate-static-checker-data/
which were used in the past to verify the functionality of the checker
script. Move them to tests/data/vmstate-static-checker now and add an
automated test that checks for the expected output when using these files
with the scripts/vmstate-static-checker.py script.

Additionally also add an automatic test of the vmstate via good reference
files from an older version of QEMU. I chose to use QEMU 7.2 for the
reference files since this is a long term support release that is still
actively being maintained, so we certainly want to make sure that we don't
break migration from that version to the latest one.

Since the checker script can report false positives in certain cases,
the latter test is marked with the "skipFlakyTests" decorator, i.e. it
is only run if the user set the QEMU_TEST_FLAKY_TESTS environment
variable before starting the tests.

v4:
- Move the test with the dump*.json files to a separate file
- Rebase to current master since the folder layout in tests/functional
  has changed

v3:
- Do not run the tests by default, only if QEMU_TEST_FLAKY_TESTS has
  been set
- Add some hints what to do in case the test detects an error

v2:
- Dropped the patch that is already upstream
- Don't remove the old dump files, rather test for the expected
  output of the checker script with them

Thomas Huth (4):
  tests: Move the old vmstate-static-checker files to tests/data/
  tests/functional: Test whether the vmstate-static-checker script works
    fine
  tests/data/vmstate-static-checker: Add dump files from QEMU 7.2.17
  tests/functional: Use vmstate-static-checker.py to test data from v7.2

 MAINTAINERS                                   |    4 +-
 .../aarch64/virt-7.2.json                     | 2571 +++++++++++++
 .../vmstate-static-checker}/dump1.json        |    0
 .../vmstate-static-checker}/dump2.json        |    0
 .../vmstate-static-checker/m68k/virt-7.2.json | 2936 +++++++++++++++
 .../ppc64/pseries-7.2.json                    | 1068 ++++++
 .../s390x/s390-ccw-virtio-7.2.json            |  475 +++
 .../x86_64/pc-q35-7.2.json                    | 3297 +++++++++++++++++
 tests/functional/aarch64/meson.build          |    1 +
 tests/functional/generic/test_vmstate.py      |   67 +
 tests/functional/m68k/meson.build             |    4 +
 tests/functional/ppc64/meson.build            |    1 +
 tests/functional/s390x/meson.build            |    4 +
 tests/functional/x86_64/meson.build           |    4 +-
 tests/functional/x86_64/test_bad_vmstate.py   |   58 +
 15 files changed, 10488 insertions(+), 2 deletions(-)
 create mode 100644 tests/data/vmstate-static-checker/aarch64/virt-7.2.json
 rename tests/{vmstate-static-checker-data => data/vmstate-static-checker}/dump1.json (100%)
 rename tests/{vmstate-static-checker-data => data/vmstate-static-checker}/dump2.json (100%)
 create mode 100644 tests/data/vmstate-static-checker/m68k/virt-7.2.json
 create mode 100644 tests/data/vmstate-static-checker/ppc64/pseries-7.2.json
 create mode 100644 tests/data/vmstate-static-checker/s390x/s390-ccw-virtio-7.2.json
 create mode 100644 tests/data/vmstate-static-checker/x86_64/pc-q35-7.2.json
 create mode 100755 tests/functional/generic/test_vmstate.py
 create mode 100755 tests/functional/x86_64/test_bad_vmstate.py

-- 
2.51.0