diff mbox

[2/6] blockdev-test: Use single rather than double quotes in QMP

Message ID 1412261496-24455-3-git-send-email-armbru@redhat.com
State New
Headers show

Commit Message

Markus Armbruster Oct. 2, 2014, 2:51 p.m. UTC
QMP accepts both single and double quotes.  This is the only test
using double quotes.  They need to be quoted in C strings.  Replace
them by single quotes.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 tests/drive_del-test.c | 32 ++++++++++++++++----------------
 1 file changed, 16 insertions(+), 16 deletions(-)

Comments

Eric Blake Oct. 2, 2014, 3:24 p.m. UTC | #1
On 10/02/2014 08:51 AM, Markus Armbruster wrote:
> QMP accepts both single and double quotes.  This is the only test
> using double quotes.  They need to be quoted in C strings.  Replace
> them by single quotes.

Ooh, the use of single quotes on input is undocumented, and a violation
of JSON. We always output double quotes, and I've been relying on
.json/.hx files using single quotes for QAPI vs. double quotes for QMP
examples.  What would break if we tightened up our input parser to
forbid non-JSON inputs and mandate that QMP use double quotes, bringing
us into compliance with our docs (docs/qmp/README)?

> 
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
>  tests/drive_del-test.c | 32 ++++++++++++++++----------------
>  1 file changed, 16 insertions(+), 16 deletions(-)

If we WANT to keep undocumented support for single quotes (and/or
document our extension to JSON), then this is fine; otherwise, I'd
prefer that we use double quotes in QMP.

But if we decide single quotes are tolerable,

Reviewed-by: Eric Blake <eblake@redhat.com>
Markus Armbruster Oct. 2, 2014, 4:24 p.m. UTC | #2
Eric Blake <eblake@redhat.com> writes:

> On 10/02/2014 08:51 AM, Markus Armbruster wrote:
>> QMP accepts both single and double quotes.  This is the only test
>> using double quotes.  They need to be quoted in C strings.  Replace
>> them by single quotes.
>
> Ooh, the use of single quotes on input is undocumented, and a violation
> of JSON. We always output double quotes, and I've been relying on
> .json/.hx files using single quotes for QAPI vs. double quotes for QMP
> examples.  What would break if we tightened up our input parser to
> forbid non-JSON inputs and mandate that QMP use double quotes, bringing
> us into compliance with our docs (docs/qmp/README)?

A whole bunch of tests.  Easily fixable.

No telling what out-of-tree stuff breaks.  Maybe even nothing.

Perhaps Anthony (cc'ed) can advise.

>> Signed-off-by: Markus Armbruster <armbru@redhat.com>
>> ---
>>  tests/drive_del-test.c | 32 ++++++++++++++++----------------
>>  1 file changed, 16 insertions(+), 16 deletions(-)
>
> If we WANT to keep undocumented support for single quotes (and/or
> document our extension to JSON), then this is fine; otherwise, I'd
> prefer that we use double quotes in QMP.
>
> But if we decide single quotes are tolerable,
>
> Reviewed-by: Eric Blake <eblake@redhat.com>

Thanks!
diff mbox

Patch

diff --git a/tests/drive_del-test.c b/tests/drive_del-test.c
index ba3ee12..786f026 100644
--- a/tests/drive_del-test.c
+++ b/tests/drive_del-test.c
@@ -23,9 +23,9 @@  static void test_drive_without_dev(void)
     qtest_start("-drive if=none,id=drive0");
 
     /* Delete the drive */
-    response = qmp("{\"execute\": \"human-monitor-command\","
-                   " \"arguments\": {"
-                   "   \"command-line\": \"drive_del drive0\""
+    response = qmp("{'execute': 'human-monitor-command',"
+                   " 'arguments': {"
+                   "   'command-line': 'drive_del drive0'"
                    "}}");
     g_assert(response);
     response_return = qdict_get_try_str(response, "return");
@@ -36,9 +36,9 @@  static void test_drive_without_dev(void)
     /* Ensure re-adding the drive works - there should be no duplicate ID error
      * because the old drive must be gone.
      */
-    response = qmp("{\"execute\": \"human-monitor-command\","
-                   " \"arguments\": {"
-                   "   \"command-line\": \"drive_add 0 if=none,id=drive0\""
+    response = qmp("{'execute': 'human-monitor-command',"
+                   " 'arguments': {"
+                   "   'command-line': 'drive_add 0 if=none,id=drive0'"
                    "}}");
     g_assert(response);
     response_return = qdict_get_try_str(response, "return");
@@ -59,10 +59,10 @@  static void test_after_failed_device_add(void)
     /* Make device_add fail.  If this leaks the virtio-blk-pci device then a
      * reference to drive0 will also be held (via qdev properties).
      */
-    response = qmp("{\"execute\": \"device_add\","
-                   " \"arguments\": {"
-                   "   \"driver\": \"virtio-blk-pci\","
-                   "   \"drive\": \"drive0\""
+    response = qmp("{'execute': 'device_add',"
+                   " 'arguments': {"
+                   "   'driver': 'virtio-blk-pci',"
+                   "   'drive': 'drive0'"
                    "}}");
     g_assert(response);
     error = qdict_get_qdict(response, "error");
@@ -70,9 +70,9 @@  static void test_after_failed_device_add(void)
     QDECREF(response);
 
     /* Delete the drive */
-    response = qmp("{\"execute\": \"human-monitor-command\","
-                   " \"arguments\": {"
-                   "   \"command-line\": \"drive_del drive0\""
+    response = qmp("{'execute': 'human-monitor-command',"
+                   " 'arguments': {"
+                   "   'command-line': 'drive_del drive0'"
                    "}}");
     g_assert(response);
     g_assert_cmpstr(qdict_get_try_str(response, "return"), ==, "");
@@ -81,9 +81,9 @@  static void test_after_failed_device_add(void)
     /* Try to re-add the drive.  This fails with duplicate IDs if a leaked
      * virtio-blk-pci exists that holds a reference to the old drive0.
      */
-    response = qmp("{\"execute\": \"human-monitor-command\","
-                   " \"arguments\": {"
-                   "   \"command-line\": \"drive_add pci-addr=auto if=none,id=drive0\""
+    response = qmp("{'execute': 'human-monitor-command',"
+                   " 'arguments': {"
+                   "   'command-line': 'drive_add pci-addr=auto if=none,id=drive0'"
                    "}}");
     g_assert(response);
     g_assert_cmpstr(qdict_get_try_str(response, "return"), ==, "OK\r\n");