aboutsummaryrefslogtreecommitdiff
path: root/scripts/vmstate-static-checker.py
diff options
context:
space:
mode:
authorAmit Shah <amit.shah@redhat.com>2014-07-11 18:10:45 +0530
committerAmit Shah <amit.shah@redhat.com>2014-07-16 14:29:34 +0530
commit79fe16c0489ca658f53796206067a551fc915ba2 (patch)
tree31c17694512992802c906b490ad5ebf745848112 /scripts/vmstate-static-checker.py
parent5a7348045091a2bc15d85bb177e5956aa6114e5a (diff)
vmstate static checker: detect section renames
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.
Diffstat (limited to 'scripts/vmstate-static-checker.py')
-rwxr-xr-xscripts/vmstate-static-checker.py27
1 files changed, 22 insertions, 5 deletions
diff --git a/scripts/vmstate-static-checker.py b/scripts/vmstate-static-checker.py
index 1604e680dc..3bae769a37 100755
--- a/scripts/vmstate-static-checker.py
+++ b/scripts/vmstate-static-checker.py
@@ -79,6 +79,18 @@ def check_fields_match(name, s_field, d_field):
return False
+def get_changed_sec_name(sec):
+ # Section names can change -- see commit 292b1634 for an example.
+ changes = {
+ "ICH9 LPC": "ICH9-LPC",
+ }
+
+ for item in changes:
+ if item == sec:
+ return changes[item]
+ if changes[item] == sec:
+ return item
+ return ""
def exists_in_substruct(fields, item):
# Some QEMU versions moved a few fields inside a substruct. This
@@ -314,13 +326,18 @@ def main():
dest_data = temp
for sec in src_data:
- if not sec in dest_data:
- print "Section \"" + sec + "\" does not exist in dest"
- bump_taint()
- continue
+ dest_sec = sec
+ if not dest_sec in dest_data:
+ # Either the section name got changed, or the section
+ # doesn't exist in dest.
+ dest_sec = get_changed_sec_name(sec)
+ if not dest_sec in dest_data:
+ print "Section \"" + sec + "\" does not exist in dest"
+ bump_taint()
+ continue
s = src_data[sec]
- d = dest_data[sec]
+ d = dest_data[dest_sec]
if sec == "vmschkmachine":
check_machine_type(s, d)