qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH for-2.9 1/2] qapi: Fix string input visitor regr


From: Michael Roth
Subject: Re: [Qemu-devel] [PATCH for-2.9 1/2] qapi: Fix string input visitor regression for empty lists
Date: Mon, 20 Mar 2017 16:04:44 -0500
User-agent: alot/0.3.6

Quoting Markus Armbruster (2017-03-20 11:13:43)
> Visiting a list when input is the empty string should result in an
> empty list, not an error.  Noticed when commit 3d089ce belatedly added
> tests, but simply accepted as weird then.  It's actually a regression:
> broken in commit 74f24cb, v2.7.0.  Fix it, and throw in another test
> case for empty string.
> 
> Signed-off-by: Markus Armbruster <address@hidden>

Reviewed-by: Michael Roth <address@hidden>

> ---
>  qapi/string-input-visitor.c       |  4 ++++
>  tests/test-string-input-visitor.c | 11 ++++++++---
>  2 files changed, 12 insertions(+), 3 deletions(-)
> 
> diff --git a/qapi/string-input-visitor.c b/qapi/string-input-visitor.c
> index 806b01ae..c089491 100644
> --- a/qapi/string-input-visitor.c
> +++ b/qapi/string-input-visitor.c
> @@ -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);
> diff --git a/tests/test-string-input-visitor.c 
> b/tests/test-string-input-visitor.c
> index 6db850b..79313a7 100644
> --- a/tests/test-string-input-visitor.c
> +++ b/tests/test-string-input-visitor.c
> @@ -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 */
> 
> -- 
> 2.7.4
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]