Commit 76861f6b authored by Eric Blake's avatar Eric Blake Committed by Markus Armbruster
Browse files

tests: Expose regression in QemuOpts visitor



Commit 15c2f669 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 9cb8ef36 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: default avatarEric Blake <eblake@redhat.com>
Reviewed-by: default avatarMichael Roth <mdroth@linux.vnet.ibm.com>
Message-Id: <20170322144525.18964-2-eblake@redhat.com>
Reviewed-by: default avatarMarkus Armbruster <armbru@redhat.com>
Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
parent 4bc0c94d
Loading
Loading
Loading
Loading
+20 −0
Original line number Diff line number Diff line
@@ -247,6 +247,24 @@ test_opts_range_beyond(void)
    qemu_opts_del(opts);
}

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)
{
@@ -343,6 +361,8 @@ main(int argc, char **argv)
    g_test_add_func("/visitor/opts/range/beyond",
                    test_opts_range_beyond);

    g_test_add_func("/visitor/opts/dict/unvisited", test_opts_dict_unvisited);

    g_test_run();
    return 0;
}