[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 54/58] tests/drive_del-test: Fix harmless JSON interp
From: |
Markus Armbruster |
Subject: |
[Qemu-devel] [PULL 54/58] tests/drive_del-test: Fix harmless JSON interpolation bug |
Date: |
Fri, 24 Aug 2018 21:32:02 +0200 |
test_after_failed_device_add() does this:
response = qmp("{'execute': 'device_add',"
" 'arguments': {"
" 'driver': 'virtio-blk-%s',"
" 'drive': 'drive0'"
"}}", qvirtio_get_dev_type());
Wrong. An interpolation specification must be a JSON token, it
doesn't work within JSON string tokens. The code above doesn't use
the value of qvirtio_get_dev_type(), and sends arguments
{"driver": "virtio-blk-%s", "drive": "drive0"}}
The command fails because there is no driver named "virtio-blk-%".
Harmless, since the test wants the command to fail. Screwed up in
commit 2f84a92ec63.
Fix the obvious way. The command now fails because the drive is
empty, like it did before commit 2f84a92ec63.
Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>
---
tests/drive_del-test.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/tests/drive_del-test.c b/tests/drive_del-test.c
index 2d0b176b36..673c10140f 100644
--- a/tests/drive_del-test.c
+++ b/tests/drive_del-test.c
@@ -65,9 +65,13 @@ static void test_drive_without_dev(void)
static void test_after_failed_device_add(void)
{
+ char driver[32];
QDict *response;
QDict *error;
+ snprintf(driver, sizeof(driver), "virtio-blk-%s",
+ qvirtio_get_dev_type());
+
qtest_start("-drive if=none,id=drive0");
/* Make device_add fail. If this leaks the virtio-blk device then a
@@ -75,9 +79,9 @@ static void test_after_failed_device_add(void)
*/
response = qmp("{'execute': 'device_add',"
" 'arguments': {"
- " 'driver': 'virtio-blk-%s',"
+ " 'driver': %s,"
" 'drive': 'drive0'"
- "}}", qvirtio_get_dev_type());
+ "}}", driver);
g_assert(response);
error = qdict_get_qdict(response, "error");
g_assert_cmpstr(qdict_get_try_str(error, "class"), ==, "GenericError");
--
2.17.1
- [Qemu-devel] [PULL 51/58] json: Make JSONToken opaque outside json-parser.c, (continued)
- [Qemu-devel] [PULL 51/58] json: Make JSONToken opaque outside json-parser.c, Markus Armbruster, 2018/08/24
- [Qemu-devel] [PULL 41/58] json: Replace %I64d, %I64u by %PRId64, %PRIu64, Markus Armbruster, 2018/08/24
- [Qemu-devel] [PULL 38/58] json: Treat unwanted interpolation as lexical error, Markus Armbruster, 2018/08/24
- [Qemu-devel] [PULL 56/58] json: Improve safety of qobject_from_jsonf_nofail() & friends, Markus Armbruster, 2018/08/24
- [Qemu-devel] [PULL 53/58] json: Clean up headers, Markus Armbruster, 2018/08/24
- [Qemu-devel] [PULL 46/58] json: Assert json_parser_parse() consumes all tokens on success, Markus Armbruster, 2018/08/24
- [Qemu-devel] [PULL 47/58] qjson: Have qobject_from_json() & friends reject empty and blank, Markus Armbruster, 2018/08/24
- [Qemu-devel] [PULL 50/58] json: Unbox tokens queue in JSONMessageParser, Markus Armbruster, 2018/08/24
- [Qemu-devel] [PULL 48/58] json: Enforce token count and size limits more tightly, Markus Armbruster, 2018/08/24
- [Qemu-devel] [PULL 49/58] json: Streamline json_message_process_token(), Markus Armbruster, 2018/08/24
- [Qemu-devel] [PULL 54/58] tests/drive_del-test: Fix harmless JSON interpolation bug,
Markus Armbruster <=
- [Qemu-devel] [PULL 43/58] qjson: Fix qobject_from_json() & friends for multiple values, Markus Armbruster, 2018/08/24
- [Qemu-devel] [PULL 52/58] qobject: Drop superfluous includes of qemu-common.h, Markus Armbruster, 2018/08/24
- Re: [Qemu-devel] [PULL 00/58] QObject patches for 2018-08-24, Peter Maydell, 2018/08/25