tests/drive_del-test: Fix harmless JSON interpolation bug
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 <armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Message-Id: <20180823164025.12553-55-armbru@redhat.com>
This commit is contained in:
parent
86cdf9ec8d
commit
83273e84d9
@ -65,9 +65,13 @@ static void test_drive_without_dev(void)
|
|||||||
|
|
||||||
static void test_after_failed_device_add(void)
|
static void test_after_failed_device_add(void)
|
||||||
{
|
{
|
||||||
|
char driver[32];
|
||||||
QDict *response;
|
QDict *response;
|
||||||
QDict *error;
|
QDict *error;
|
||||||
|
|
||||||
|
snprintf(driver, sizeof(driver), "virtio-blk-%s",
|
||||||
|
qvirtio_get_dev_type());
|
||||||
|
|
||||||
qtest_start("-drive if=none,id=drive0");
|
qtest_start("-drive if=none,id=drive0");
|
||||||
|
|
||||||
/* Make device_add fail. If this leaks the virtio-blk device then a
|
/* 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',"
|
response = qmp("{'execute': 'device_add',"
|
||||||
" 'arguments': {"
|
" 'arguments': {"
|
||||||
" 'driver': 'virtio-blk-%s',"
|
" 'driver': %s,"
|
||||||
" 'drive': 'drive0'"
|
" 'drive': 'drive0'"
|
||||||
"}}", qvirtio_get_dev_type());
|
"}}", driver);
|
||||||
g_assert(response);
|
g_assert(response);
|
||||||
error = qdict_get_qdict(response, "error");
|
error = qdict_get_qdict(response, "error");
|
||||||
g_assert_cmpstr(qdict_get_try_str(error, "class"), ==, "GenericError");
|
g_assert_cmpstr(qdict_get_try_str(error, "class"), ==, "GenericError");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user