summaryrefslogtreecommitdiffstats
path: root/scripts/vmstate-static-checker.py
Commit message (Collapse)AuthorAgeFilesLines
* drop "from __future__ import print_function"Paolo Bonzini2020-02-071-1/+0Star
| | | | | | | | | | | | This is only needed for Python 2, which we do not support anymore. Cc: Philippe Mathieu-Daudé <philmd@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Acked-by: Alex Bennée <alex.bennee@linaro.org> Acked-by: Markus Armbruster <armbru@redhat.com> Message-Id: <20200204160604.19883-1-pbonzini@redhat.com> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
* scripts: Explicit usage of Python 3 (scripts with __main__)Philippe Mathieu-Daudé2020-02-071-1/+1
| | | | | | | | | | | | | | | | | | Use the program search path to find the Python 3 interpreter. Patch created mechanically by running: $ sed -i "s,^#\!/usr/bin/\(env\ \)\?python$,#\!/usr/bin/env python3," \ $(git grep -l 'if __name__.*__main__') Reported-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> Suggested-by: Daniel P. Berrangé <berrange@redhat.com> Suggested-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Juan Quintela <quintela@redhat.com> Acked-by: Stefan Hajnoczi <stefanha@redhat.com> Acked-by: Paolo Bonzini <pbonzini@redhat.com> Message-Id: <20200130163232.10446-6-philmd@redhat.com> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
* vmstate-static-checker: Fix for current pythonDr. David Alan Gilbert2019-11-251-2/+4
| | | | | | | | | | | Python 3.7.5 on f31 doesn't seem to like the old type=file syntax on argparse. Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Message-Id: <20191121185303.51685-1-dgilbert@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Cleber Rosa <crosa@redhat.com> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
* python: futurize -f libfuturize.fixes.fix_next_callEduardo Habkost2018-06-081-2/+2
| | | | | | | | | | | | | | | | | Change obj.next() calls to next(obj). This is necessary for Python 3 compatibility. Done using: $ py=$( (g grep -l -E '^#!.*python';find -name '*.py' -printf '%P\n';) | \ sort -u | grep -v README.sh4) $ futurize -w -f libfuturize.fixes.fix_next_call $py Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com> Message-Id: <20180608122952.2009-4-ehabkost@redhat.com> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
* python: futurize -f libfuturize.fixes.fix_print_with_importEduardo Habkost2018-06-081-42/+43
| | | | | | | | | | | | | | | | | | | Change all Python code to use print as a function. This is necessary for Python 3 compatibility. Done using: $ py=$( (g grep -l -E '^#!.*python';find -name '*.py' -printf '%P\n';) | \ sort -u | grep -v README.sh4) $ futurize -w -f libfuturize.fixes.fix_print_with_import $py Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Acked-by: Fam Zheng <famz@redhat.com> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com> Message-Id: <20180608122952.2009-2-ehabkost@redhat.com> [ehabkost: fixup tests/docker/docker.py] Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
* vmstate-static-checker: update white list with spapr_pciLaurent Vivier2017-02-281-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To fix migration between 2.7 and 2.8, some fields have been renamed and managed with the help of a PHB property (pre_2_8_migration): 5c4537b spapr: Fix 2.7<->2.8 migration of PCI host bridge So we need to add them to the white list: dma_liobn[0], mem_win_addr, mem_win_size, io_win_addr, io_win_size become mig_liobn, mig_mem_win_addr, mig_mem_win_size, mig_io_win_addr, mig_io_win_size CC: David Gibson <david@gibson.dropbear.id.au> CC: Dr. David Alan Gilbert <dgilbert@redhat.com> CC: Thomas Huth <thuth@redhat.com> CC: Greg Kurz <groug@kaod.org> CC: Alexey Kardashevskiy <aik@ozlabs.ru> Signed-off-by: Laurent Vivier <lvivier@redhat.com> Message-Id: <20170214133331.28997-1-lvivier@redhat.com> Reviewed-by: Thomas Huth <thuth@redhat.com> Reviewed-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
* vmstate-static-checker: fix size mismatch detection in unused fieldsAmit Shah2016-06-171-1/+1
| | | | | | | | | | | | | | If a field changed from something to unused, the checker wasn't flagging if the field size mismatched. This was noticed in: http://thread.gmane.org/gmane.comp.emulators.qemu/419802 where the 4->1 size change along with field name change to 'unused' wasn't being flagged. Fix this. Signed-off-by: Amit Shah <amit.shah@redhat.com> Message-Id: <d7ec03a9b2edfa0616764887a51ba8f64fdd3f68.1466165736.git.amit.shah@redhat.com> Signed-off-by: Amit Shah <amit.shah@redhat.com>
* static checker: e1000-82540em got aliased to e1000Amit Shah2016-02-051-0/+1
| | | | | | | | | | | | | | | Commit 8304402033e8dbe8e379017d51ed1dd8344f1dce changed the name of the e1000-82540em device to e1000. This was flagged: Section "e1000-82540em" does not exist in dest Add the mapping to the changed section names dictionary so the checker can proceed. Signed-off-by: Amit Shah <amit.shah@redhat.com> Acked-by: Jason Wang <jasowang@redhat.com> Message-Id: <7ccfe834c897142dceaa4da87c13b7059fa12aa8.1450416947.git.amit.shah@redhat.com> Signed-off-by: Amit Shah <amit.shah@redhat.com>
* vmstate-static-checker: update whitelistAmit Shah2015-02-051-0/+2
| | | | | | | | | | | Commit 22382bb96c8bd88370c1ff0cb28c3ee6bee79ed3 renamed the 'hw_cursor_x' and 'hw_cursor_y' fields in cirrus_vga. Update the static checker's whitelist to allow matching against the old and new names. Signed-off-by: Amit Shah <amit.shah@redhat.com> Reviewed-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Amit Shah <amit.shah@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com>
* checker: ignore fields marked unusedAmit Shah2014-08-041-4/+50
| | | | | | | | | | | | | | | While comparing qemu-1.0 json output with qemu-2.1, a few fields got marked unused. These need to be skipped over, and not flagged as mismatches. For handling unused fields, the exact number of bytes need to be skipped over as the size of the unused field. Currently, only the term "unused" is matched. When more field names turn up, this will have to be updated based on the whitelist matching method to match more such terms. Signed-off-by: Amit Shah <amit.shah@redhat.com>
* vmstate static checker: whitelist additionsAmit Shah2014-07-221-1/+15
| | | | | | | Comparing json outputs from qemu-1.0 with qemu-2.1 turned up a few description name changes; whitelist them here. Signed-off-by: Amit Shah <amit.shah@redhat.com>
* vmstate static checker: detect section renamesAmit Shah2014-07-161-5/+22
| | | | | | | | | | | | | | | | | Commit 292b1634 changed the section name of "ICH9 LPC" to "ICH9-LPC", and that causes the static checker to flag this: Section "ICH9 LPC" does not exist in dest This patch introduces a function that checks for section renames and also a dictionary that maps those renames. Reported-by: "Dr. David Alan Gilbert" <dgilbert@redhat.com> Signed-off-by: Amit Shah <amit.shah@redhat.com> --- This is a small patch to a script; doesn't break qemu and helps with the static checker, so it's a very low-risk patch for 2.1.
* vmstate-static-checker: script to validate vmstate changesAmit Shah2014-06-231-0/+345
This script compares the vmstate dumps in JSON format as output by QEMU with the -dump-vmstate option. It flags various errors, like version mismatch, sections going away, size mismatches, etc. This script is tolerant of a few changes that do not change the on-wire format, like embedding a few fields within substructs. The script takes -s/--src and -d/--dest parameters, to which filenames are given as arguments. Example: (in a qemu 2.0 tree): ./x86_64-softmmu/qemu-system-x86_64 -dump-vmstate qemu-2.0.json (in a qemu 2.2 tree:) ./x86_64-softmmu/qemu-system-x86_64 -dump-vmstate -M pc-i440fx-2.0 \ qemu-2.2-m2.0.json ./scripts/vmstate-static-checker.py -s qemu-2.0.json -d qemu-2.2-m2.0.json The script also takes a --reverse parameter to switch the src and dest jsons. This is just a shorthand for reversing the src and dest. The --help parameter shows usage information. Signed-off-by: Amit Shah <amit.shah@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com>