On Tue, Apr 29, 2025 at 05:21:38PM +0200, Thomas Huth wrote:
> From: Thomas Huth <th...@redhat.com>
> 
> These files reference QEMU machine types that have already been
> removed and thus are of no use anymore.
> 
> Signed-off-by: Thomas Huth <th...@redhat.com>

I never noticed these files, but when looking it seems to me these two
dumps are tailored to be used to test the script itself..

See:

$ git ls tests/vmstate-static-checker-data/
e178113ff6 hw: Replace anti-social QOM type names
38ef86b5a6 tests: vmstate static checker: add size mismatch inside substructure
af3713f6b9 tests: vmstate static checker: add substructure for usb-kbd for hid 
section
c7173a9c18 tests: vmstate static checker: remove Subsections
aa2a12bb82 tests: vmstate static checker: remove a subsection
b5968f0ab3 tests: vmstate static checker: remove Description inside Fields
ff29b8573f tests: vmstate static checker: remove Description
083bac3484 tests: vmstate static checker: remove Fields
1d681c712a tests: vmstate static checker: change description name
fd52ffb9bf tests: vmstate static checker: remove last field in a struct
55e8e0e19c tests: vmstate static checker: remove a field
ab99bdbe33 tests: vmstate static checker: remove a section
7daa3d76df tests: vmstate static checker: minimum_version_id check
4efa6e1d64 tests: vmstate static checker: version mismatch inside a Description
a81d3fad87 tests: vmstate static checker: add version error in main section
bc178dc563 tests: vmstate static checker: incompat machine types
a10413e4fc tests: vmstate static checker: add dump1 and dump2 files

So dump2.json was deliberately modified to trigger all kinds of error that
the python script can detect.

Maybe we can still keep it there, but at least make it clearer that it's
testing the script?  For example, we could create a bash under the same dir
running the script over the two dumps and comparing the results to be the
expected one?

Currently the output:

$ scripts/vmstate-static-checker.py -s 
./tests/vmstate-static-checker-data/dump1.json -d 
./tests/vmstate-static-checker-data/dump2.json 
Warning: checking incompatible machine types: "pc-i440fx-2.1", "pc-i440fx-2.2"
Section "fw_cfg" does not exist in dest
Section "fusbh200-ehci-usb" version error: 2 > 1
Section "fusbh200-ehci-usb", Description "ehci-core": expected field "usbsts", 
got "usbsts_pending"; skipping rest
Section "pci-serial-4x" Description "pci-serial-multi": Entry "Fields" missing
Section "intel-hda-generic", Description "intel-hda", Field "pci": missing 
description
Section "cfi.pflash01": Entry "Description" missing
Section "megasas", Description "PCIDevice": expected field "irq_state", while 
dest has no further fields
Section "PIIX3-xen" Description "PIIX3": minimum version error: 1 < 2
Section "PIIX3-xen" Description "PIIX3": Entry "Subsections" missing
Section "tpci200": Description "tpci200" missing, got "tpci2002" instead; 
skipping
Section "sun-fdtwo" Description "fdc": version error: 2 > 1
Section "sun-fdtwo", Description "fdrive": Subsection "fdrive/media_rate" not 
found
Section "usb-kbd" Description "usb-kbd" Field "kbd.keycodes" size mismatch: 4 , 
2

So the bash can make sure the result is exactly that.  If we want, we could
even route that to CI, but I'd say optional.

-- 
Peter Xu


Reply via email to