Eric Blake <ebl...@redhat.com> writes: > On 08/08/2018 07:02 AM, Markus Armbruster wrote: >> qobject_from_json() can return null without setting an error on >> lexical errors. I call that a bug. Add test coverage to demonstrate >> it. >> >> Signed-off-by: Markus Armbruster <arm...@redhat.com> >> --- >> tests/check-qjson.c | 36 +++++++++++++++++++++++++++++++++--- >> 1 file changed, 33 insertions(+), 3 deletions(-) >> > >> +static void junk_input(void) >> +{ >> + /* Note: junk within strings is covered elsewhere */ >> + Error *err = NULL; >> + QObject *obj; >> + >> + obj = qobject_from_json("@", &err); > > Invalid token > >> + g_assert(!err); /* BUG */ >> + g_assert(obj == NULL); >> + >> + obj = qobject_from_json("[0\xFF]", &err); > > \xff stream reset, followed by unbalanced ]
>> + error_free_or_abort(&err); >> + g_assert(obj == NULL); >> + >> + obj = qobject_from_json("00", &err); > > Invalid as a JSON number > >> + g_assert(!err); /* BUG */ >> + g_assert(obj == NULL); >> + >> + obj = qobject_from_json("[1e", &err); > > Incomplete as a JSON number > >> + g_assert(!err); /* BUG */ >> g_assert(obj == NULL); >> } > > Is it also worth testing: > > "t" (incomplete as a JSON literal) > "a" (not a valid JSON literal, but alphabetic and thus different from > the "@" test above) Yes, an invalid keyword is worth testing. The way the code works, testing one should suffice. > At any rate, with or without further tests this is good improved > coverage dealt with in the rest of the series. > > Reviewed-by: Eric Blake <ebl...@redhat.com> Thanks!