On 08/08/2018 07:02 AM, Markus Armbruster wrote:
Signed-off-by: Markus Armbruster <[email protected]>
---
tests/libqtest.c | 17 +++++++++++++++++
tests/libqtest.h | 11 +++++++++++
tests/qmp-test.c | 39 +++++++++++++++++++++++++++++++++++++++
3 files changed, 67 insertions(+)
+ /* lexical error: impossible byte outside string */
+ qtest_qmp_send_raw(qts, "{\xFF");
\xff is an impossible byte inside a string as well; plus it has special
meaning to at least QMP for commanding a parser reset. Is a better byte
more appropriate (maybe \x7f), either in replacement to \xff or as an
additional test?
+ resp = qtest_qmp_receive(qts);
+ g_assert_cmpstr(get_error_class(resp), ==, "GenericError");
+ qobject_unref(resp);
+ g_assert(recovered(qts));
+
+ /* lexical error: impossible byte in string */
+ qtest_qmp_send_raw(qts, "{'bad \xFF");
Same question about \xff being special as the parser reset command, so
should we test a different byte instead/as well?
+ resp = qtest_qmp_receive(qts);
+ g_assert_cmpstr(get_error_class(resp), ==, "GenericError");
+ qobject_unref(resp);
+ g_assert(recovered(qts));
+
+ /* lexical error: interpolation */
+ qtest_qmp_send_raw(qts, "%%p\n");
+ resp = qtest_qmp_receive(qts);
+ g_assert_cmpstr(get_error_class(resp), ==, "GenericError");
+ qobject_unref(resp);
+ g_assert(recovered(qts));
+
/* Not even a dictionary */
resp = qtest_qmp(qts, "null");
g_assert_cmpstr(get_error_class(resp), ==, "GenericError");
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3266
Virtualization: qemu.org | libvirt.org