qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 05/56] qmp-test: Cover syntax and lexical errors


From: Eric Blake
Subject: Re: [Qemu-devel] [PATCH 05/56] qmp-test: Cover syntax and lexical errors
Date: Thu, 9 Aug 2018 08:42:36 -0500
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.8.0

On 08/08/2018 07:02 AM, Markus Armbruster wrote:
Signed-off-by: Markus Armbruster <address@hidden>
---
  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



reply via email to

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