Skip to content

Commit 15c51f7

Browse files
terencelihuth
authored andcommitted
tests: qmp-cmd-test: fix memory leak
Properly free each test response to avoid memory leak and separate qtest_qmp() calls with spare lines, in a consistent manner. Fixes: 5b88849("tests/qmp-cmd-test: Add qmp/object-add-failure-modes") Reviewed-by: Eric Auger <[email protected]> Signed-off-by: Li Qiang <[email protected]> Message-Id: <[email protected]> Fixes: 9fc719b ("tests/qmp-cmd-test: Add qmp/object-add-duplicate-id") Reviewed-by: Markus Armbruster <[email protected]> Signed-off-by: Thomas Huth <[email protected]>
1 parent 82e258d commit 15c51f7

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

tests/qtest/qmp-cmd-test.c

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,8 @@ static void test_object_add_failure_modes(void)
230230
" 'props': {'size': 1048576 } } }");
231231
g_assert_nonnull(resp);
232232
g_assert(qdict_haskey(resp, "return"));
233+
qobject_unref(resp);
234+
233235
resp = qtest_qmp(qts, "{'execute': 'object-add', 'arguments':"
234236
" {'qom-type': 'memory-backend-ram', 'id': 'ram1',"
235237
" 'props': {'size': 1048576 } } }");
@@ -241,6 +243,7 @@ static void test_object_add_failure_modes(void)
241243
" {'id': 'ram1' } }");
242244
g_assert_nonnull(resp);
243245
g_assert(qdict_haskey(resp, "return"));
246+
qobject_unref(resp);
244247

245248
/* attempt to create an object with a property of a wrong type */
246249
resp = qtest_qmp(qts, "{'execute': 'object-add', 'arguments':"
@@ -249,60 +252,70 @@ static void test_object_add_failure_modes(void)
249252
g_assert_nonnull(resp);
250253
/* now do it right */
251254
qmp_assert_error_class(resp, "GenericError");
255+
252256
resp = qtest_qmp(qts, "{'execute': 'object-add', 'arguments':"
253257
" {'qom-type': 'memory-backend-ram', 'id': 'ram1',"
254258
" 'props': {'size': 1048576 } } }");
255259
g_assert_nonnull(resp);
256260
g_assert(qdict_haskey(resp, "return"));
261+
qobject_unref(resp);
257262

258263
/* delete ram1 object */
259264
resp = qtest_qmp(qts, "{'execute': 'object-del', 'arguments':"
260265
" {'id': 'ram1' } }");
261266
g_assert_nonnull(resp);
262267
g_assert(qdict_haskey(resp, "return"));
268+
qobject_unref(resp);
263269

264270
/* attempt to create an object without the id */
265271
resp = qtest_qmp(qts, "{'execute': 'object-add', 'arguments':"
266272
" {'qom-type': 'memory-backend-ram',"
267273
" 'props': {'size': 1048576 } } }");
268274
g_assert_nonnull(resp);
269275
qmp_assert_error_class(resp, "GenericError");
276+
270277
/* now do it right */
271278
resp = qtest_qmp(qts, "{'execute': 'object-add', 'arguments':"
272279
" {'qom-type': 'memory-backend-ram', 'id': 'ram1',"
273280
" 'props': {'size': 1048576 } } }");
274281
g_assert_nonnull(resp);
275282
g_assert(qdict_haskey(resp, "return"));
283+
qobject_unref(resp);
276284

277285
/* delete ram1 object */
278286
resp = qtest_qmp(qts, "{'execute': 'object-del', 'arguments':"
279287
" {'id': 'ram1' } }");
280288
g_assert_nonnull(resp);
281289
g_assert(qdict_haskey(resp, "return"));
290+
qobject_unref(resp);
282291

283292
/* attempt to set a non existing property */
284293
resp = qtest_qmp(qts, "{'execute': 'object-add', 'arguments':"
285294
" {'qom-type': 'memory-backend-ram', 'id': 'ram1',"
286295
" 'props': {'sized': 1048576 } } }");
287296
g_assert_nonnull(resp);
288297
qmp_assert_error_class(resp, "GenericError");
298+
289299
/* now do it right */
290300
resp = qtest_qmp(qts, "{'execute': 'object-add', 'arguments':"
291301
" {'qom-type': 'memory-backend-ram', 'id': 'ram1',"
292302
" 'props': {'size': 1048576 } } }");
293303
g_assert_nonnull(resp);
294304
g_assert(qdict_haskey(resp, "return"));
305+
qobject_unref(resp);
295306

296307
/* delete ram1 object without id */
297308
resp = qtest_qmp(qts, "{'execute': 'object-del', 'arguments':"
298309
" {'ida': 'ram1' } }");
299310
g_assert_nonnull(resp);
311+
qobject_unref(resp);
300312

301313
/* delete ram1 object */
302314
resp = qtest_qmp(qts, "{'execute': 'object-del', 'arguments':"
303315
" {'id': 'ram1' } }");
304316
g_assert_nonnull(resp);
305317
g_assert(qdict_haskey(resp, "return"));
318+
qobject_unref(resp);
306319

307320
/* delete ram1 object that does not exist anymore*/
308321
resp = qtest_qmp(qts, "{'execute': 'object-del', 'arguments':"

0 commit comments

Comments
 (0)