From: Markus Armbruster <armbru@redhat.com>
To: Thomas Huth <thuth@redhat.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 04/20] libqtest: Clean up how we read the QMP greeting
Date: Mon, 16 Jul 2018 08:16:50 +0200 [thread overview]
Message-ID: <87601fk8ml.fsf@dusky.pond.sub.org> (raw)
In-Reply-To: <cb32f9bb-3725-22ab-1462-0abac3f76f4f@redhat.com> (Thomas Huth's message of "Thu, 12 Jul 2018 18:26:56 +0200")
Thomas Huth <thuth@redhat.com> writes:
> On 12.07.2018 13:12, Markus Armbruster wrote:
>> qtest_init() still uses the qtest_qmp_discard_response(s, "") hack to
>> receive the greeting, even though we have qtest_qmp_receive() since
>> commit 66e0c7b187e. Put it to use.
>>
>> Bonus: gets rid of an empty format string. A step towards
>> compile-time format string checking without triggering
>> -Wformat-zero-length.
>>
>> Signed-off-by: Markus Armbruster <armbru@redhat.com>
>> ---
>> tests/libqtest.c | 4 +++-
>> 1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/tests/libqtest.c b/tests/libqtest.c
>> index 071d7eb7b1..c2c08a890c 100644
>> --- a/tests/libqtest.c
>> +++ b/tests/libqtest.c
>> @@ -249,9 +249,11 @@ QTestState *qtest_init_without_qmp_handshake(bool use_oob,
>> QTestState *qtest_init(const char *extra_args)
>> {
>> QTestState *s = qtest_init_without_qmp_handshake(false, extra_args);
>> + QDict *greeting;
>>
>> /* Read the QMP greeting and then do the handshake */
>> - qtest_qmp_discard_response(s, "");
>> + greeting = qtest_qmp_receive(s);
>> + qobject_unref(greeting);
>> qtest_qmp_discard_response(s, "{ 'execute': 'qmp_capabilities' }");
>>
>> return s;
>
> I wonder whether we should actually check the greeting for some expected
> information? Anyway, that's something for later, and not related to your
> patch.
This kind of sloppy testing is quite common.
Checking test results manually in code maximizes flexibility. It also
maximizes temptation to cut corners, because doing a complete job is so
tedious. One reason I prefer "normalize and diff against expected
results". The closest we got to support for that way of testing is
qlit_equal_qobject().
Digression: QOM also maximizes flexibility by doing stuff in code rather
than data. The two go back to the same stratum of QEMU development.
Hardly coincidence, in my opinion. We've since extended QOM to support
doing more in data, but there's still plenty of old code doing it in
code, and plenty of new code following that old code's lead. Recovering
from such damage is hard work.
> Reviewed-by: Thomas Huth <thuth@redhat.com>
Thanks!
next prev parent reply other threads:[~2018-07-16 6:16 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-07-12 11:12 [Qemu-devel] [PATCH 00/20] tests: Compile-time format string checking for libqtest.h Markus Armbruster
2018-07-12 11:12 ` [Qemu-devel] [PATCH 01/20] libqtest: Document calling conventions Markus Armbruster
2018-07-12 11:12 ` [Qemu-devel] [PATCH 02/20] libqtest: Rename functions to send QMP messages Markus Armbruster
2018-07-12 14:21 ` Philippe Mathieu-Daudé
2018-07-12 11:12 ` [Qemu-devel] [PATCH 03/20] libqtest: Clean up how we read device_del messages Markus Armbruster
2018-07-12 14:22 ` Philippe Mathieu-Daudé
2018-07-12 16:24 ` Thomas Huth
2018-07-12 11:12 ` [Qemu-devel] [PATCH 04/20] libqtest: Clean up how we read the QMP greeting Markus Armbruster
2018-07-12 16:26 ` Thomas Huth
2018-07-16 6:16 ` Markus Armbruster [this message]
2018-07-12 11:12 ` [Qemu-devel] [PATCH 05/20] qobject: Replace qobject_from_jsonf() by qobject_from_jsonf_nofail() Markus Armbruster
2018-07-12 18:17 ` Thomas Huth
2018-07-16 6:17 ` Markus Armbruster
2018-07-12 11:12 ` [Qemu-devel] [PATCH 06/20] qobject: New qobject_from_vjsonf_nofail(), qdict_from_vjsonf_nofail() Markus Armbruster
2018-07-12 14:06 ` Philippe Mathieu-Daudé
2018-07-12 11:12 ` [Qemu-devel] [PATCH 07/20] libqtest: Simplify qmp_fd_vsend() a bit Markus Armbruster
2018-07-12 14:07 ` Philippe Mathieu-Daudé
2018-07-12 11:12 ` [Qemu-devel] [PATCH 08/20] test-qobject-input-visitor: Avoid format string ambiguity Markus Armbruster
2018-07-12 11:12 ` [Qemu-devel] [PATCH 09/20] qobject: qobject_from_jsonv() is dangerous, hide it away Markus Armbruster
2018-07-12 14:09 ` Philippe Mathieu-Daudé
2018-07-12 11:12 ` [Qemu-devel] [PATCH 10/20] tests: Pass literal format strings directly to qmp_FOO() Markus Armbruster
2018-07-12 14:03 ` Philippe Mathieu-Daudé
2018-07-12 11:12 ` [Qemu-devel] [PATCH 11/20] tests: Clean up string interpolation into QMP input (simple cases) Markus Armbruster
2018-07-12 14:30 ` Philippe Mathieu-Daudé
2018-07-16 6:27 ` Markus Armbruster
2018-07-12 11:12 ` [Qemu-devel] [PATCH 12/20] cpu-plug-test: Don't pass integers as strings to device_add Markus Armbruster
2018-07-12 14:31 ` Philippe Mathieu-Daudé
2018-07-12 15:38 ` Thomas Huth
2018-07-12 11:12 ` [Qemu-devel] [PATCH 13/20] tests: Clean up string interpolation around qtest_qmp_device_add() Markus Armbruster
2018-07-12 11:12 ` [Qemu-devel] [PATCH 14/20] migration-test: Make wait_command() return the "return" member Markus Armbruster
2018-07-12 11:21 ` Juan Quintela
2018-07-12 11:12 ` [Qemu-devel] [PATCH 15/20] tests: New helper qtest_qmp_receive_success() Markus Armbruster
2018-07-12 11:22 ` Juan Quintela
2018-07-13 1:35 ` Stefan Berger
2018-07-12 11:12 ` [Qemu-devel] [PATCH 16/20] migration-test: Make wait_command() cope with '%' Markus Armbruster
2018-07-12 11:23 ` Juan Quintela
2018-07-12 11:12 ` [Qemu-devel] [PATCH 17/20] migration-test: Clean up string interpolation into QMP, part 1 Markus Armbruster
2018-07-12 11:25 ` Juan Quintela
2018-07-16 6:37 ` Markus Armbruster
2018-07-12 11:12 ` [Qemu-devel] [PATCH 18/20] migration-test: Clean up string interpolation into QMP, part 2 Markus Armbruster
2018-07-12 11:27 ` Juan Quintela
2018-07-12 11:12 ` [Qemu-devel] [PATCH 19/20] migration-test: Clean up string interpolation into QMP, part 3 Markus Armbruster
2018-07-12 11:31 ` Juan Quintela
2018-07-12 11:12 ` [Qemu-devel] [PATCH 20/20] libqtest: Enable compile-time format string checking Markus Armbruster
2018-07-12 14:16 ` Philippe Mathieu-Daudé
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87601fk8ml.fsf@dusky.pond.sub.org \
--to=armbru@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=thuth@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.