mirror of https://github.com/xemu-project/xemu.git
qapi: Fix string input visitor regression for empty lists
Visiting a list when input is the empty string should result in an empty list, not an error. Noticed when commit3d089ce
belatedly added tests, but simply accepted as weird then. It's actually a regression: broken in commit74f24cb
, v2.7.0. Fix it, and throw in another test case for empty string. Signed-off-by: Markus Armbruster <armbru@redhat.com> Message-Id: <1490026424-11330-2-git-send-email-armbru@redhat.com> Reviewed-by: Michael Roth <mdroth@linux.vnet.ibm.com> Reviewed-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
parent
c32617a194
commit
d2788227c6
|
@ -54,6 +54,10 @@ static int parse_str(StringInputVisitor *siv, const char *name, Error **errp)
|
|||
return 0;
|
||||
}
|
||||
|
||||
if (!*str) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
do {
|
||||
errno = 0;
|
||||
start = strtoll(str, &endptr, 0);
|
||||
|
|
|
@ -63,6 +63,11 @@ static void test_visitor_in_int(TestInputVisitorData *data,
|
|||
|
||||
visit_type_int(v, NULL, &res, &err);
|
||||
error_free_or_abort(&err);
|
||||
|
||||
v = visitor_input_test_init(data, "");
|
||||
|
||||
visit_type_int(v, NULL, &res, &err);
|
||||
error_free_or_abort(&err);
|
||||
}
|
||||
|
||||
static void check_ilist(Visitor *v, int64_t *expected, size_t n)
|
||||
|
@ -140,11 +145,11 @@ static void test_visitor_in_intList(TestInputVisitorData *data,
|
|||
v = visitor_input_test_init(data, "18446744073709551615");
|
||||
check_ulist(v, expect4, ARRAY_SIZE(expect4));
|
||||
|
||||
/* Empty list is invalid (weird) */
|
||||
/* Empty list */
|
||||
|
||||
v = visitor_input_test_init(data, "");
|
||||
visit_type_int64List(v, NULL, &res, &err);
|
||||
error_free_or_abort(&err);
|
||||
visit_type_int64List(v, NULL, &res, &error_abort);
|
||||
g_assert(!res);
|
||||
|
||||
/* Not a list */
|
||||
|
||||
|
|
Loading…
Reference in New Issue