diff options
author | Amit Shah <amit.shah@redhat.com> | 2014-07-11 18:10:45 +0530 |
---|---|---|
committer | Amit Shah <amit.shah@redhat.com> | 2014-07-16 14:29:34 +0530 |
commit | 79fe16c0489ca658f53796206067a551fc915ba2 (patch) | |
tree | 31c17694512992802c906b490ad5ebf745848112 /scripts | |
parent | 5a7348045091a2bc15d85bb177e5956aa6114e5a (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')
-rwxr-xr-x | scripts/vmstate-static-checker.py | 27 |
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) |