summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Blake <eblake@redhat.com>2017-03-22 09:45:23 -0500
committerMichael Roth <mdroth@linux.vnet.ibm.com>2017-03-30 12:28:35 -0500
commit879b6454be1e29241d5b7d6986adcdb95d883856 (patch)
tree3be76810a107aeb06abc019cd74db4182fbc984a
parentce37df91f4f9a4577fb12f46b94dde93c19bd661 (diff)
downloadqemu-879b6454be1e29241d5b7d6986adcdb95d883856.tar.gz
tests: Expose regression in QemuOpts visitor
Commit 15c2f669e broke the ability of the QemuOpts visitor to flag extra input parameters, but the regression went unnoticed because of missing testsuite coverage. Add a test to cover this; take the approach already used in 9cb8ef3 of adding a test that passes (to avoid breaking bisection) but marks with BUG the behavior that we don't like, so that the actual impact of the fix in a later patch is easier to see. CC: qemu-stable@nongnu.org Signed-off-by: Eric Blake <eblake@redhat.com> Reviewed-by: Michael Roth <mdroth@linux.vnet.ibm.com> Message-Id: <20170322144525.18964-2-eblake@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com> (cherry picked from commit 76861f6befc50c30cb71e84b372dc91dd26656a4) Conflicts: tests/test-opts-visitor.c * drop context dep on 9cb8ef36 and a9416dc6 tests Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
-rw-r--r--tests/test-opts-visitor.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/test-opts-visitor.c b/tests/test-opts-visitor.c
index 0a9e75f1bb..8befe82918 100644
--- a/tests/test-opts-visitor.c
+++ b/tests/test-opts-visitor.c
@@ -172,6 +172,24 @@ expect_u64_max(OptsVisitorFixture *f, gconstpointer test_data)
/* test cases */
+static void
+test_opts_dict_unvisited(void)
+{
+ QemuOpts *opts;
+ Visitor *v;
+ UserDefOptions *userdef;
+
+ opts = qemu_opts_parse(qemu_find_opts("userdef"), "i64x=0,bogus=1", false,
+ &error_abort);
+
+ v = opts_visitor_new(opts);
+ /* BUG: bogus should be diagnosed */
+ visit_type_UserDefOptions(v, NULL, &userdef, &error_abort);
+ visit_free(v);
+ qemu_opts_del(opts);
+ qapi_free_UserDefOptions(userdef);
+}
+
int
main(int argc, char **argv)
{
@@ -263,6 +281,8 @@ main(int argc, char **argv)
add_test("/visitor/opts/i64/range/2big/full", &expect_fail,
"i64=-0x8000000000000000-0x7fffffffffffffff");
+ g_test_add_func("/visitor/opts/dict/unvisited", test_opts_dict_unvisited);
+
g_test_run();
return 0;
}