From: Peter Xu <peterx@redhat.com>
To: Stefan Hajnoczi <stefanha@redhat.com>
Cc: qemu-devel@nongnu.org, Stefan Hajnoczi <shajnocz@redhat.com>,
"Daniel P . Berrange" <berrange@redhat.com>,
Paolo Bonzini <pbonzini@redhat.com>, Fam Zheng <famz@redhat.com>,
Jiri Denemark <jdenemar@redhat.com>,
Juan Quintela <quintela@redhat.com>,
mdroth@linux.vnet.ibm.com, Eric Blake <eblake@redhat.com>,
Laurent Vivier <lvivier@redhat.com>,
marcandre.lureau@redhat.com,
Markus Armbruster <armbru@redhat.com>,
"Dr . David Alan Gilbert" <dgilbert@redhat.com>
Subject: Re: [Qemu-devel] [RFC v3 27/27] tests: qmp-test: add oob test
Date: Thu, 16 Nov 2017 16:02:56 +0800 [thread overview]
Message-ID: <20171116080256.GA24928@xz-mi> (raw)
In-Reply-To: <20171115102116.GD8130@stefanha-x1.localdomain>
On Wed, Nov 15, 2017 at 10:21:16AM +0000, Stefan Hajnoczi wrote:
> On Mon, Nov 06, 2017 at 05:46:43PM +0800, Peter Xu wrote:
> > + /*
> > + * Try a time-consuming command, following by a OOB command, make
> > + * sure we get OOB command before the time-consuming one (which is
> > + * run in the parser).
> > + *
> > + * When writting up this test script, the only command that
> > + * support OOB is migrate-incoming. It's not the best command to
> > + * test OOB but we don't really have a choice here. We will check
> > + * arriving order but not command errors, which does not really
> > + * matter to us.
> > + */
> > + qmp_async("{ 'execute': 'dump-guest-memory',"
> > + " 'arguments': { 'paging': true, "
> > + " 'protocol': 'file:/dev/null' }, "
> > + " 'id': 'time-consuming-cmd'}");
> > + qmp_async("{ 'execute': 'migrate-incoming', "
> > + " 'control': { 'run-oob': true }, "
> > + " 'id': 'oob-cmd' }");
> > +
> > + /* Ignore all events. Wait for 2 acks */
> > + while (acks < 2) {
> > + resp = qmp_receive();
> > + if (qdict_haskey(resp, "event")) {
> > + /* Skip possible events */
> > + continue;
> > + }
> > + cmd_id = qdict_get_str(resp, "id");
> > + if (acks == 0) {
> > + /* Need to receive OOB response first */
> > + g_assert_cmpstr(cmd_id, ==, "oob-cmd");
> > + } else if (acks == 1) {
> > + g_assert_cmpstr(cmd_id, ==, "time-consuming-cmd");
> > + }
> > + acks++;
> > + }
>
> This test is non-deterministic. The dump-guest-memory command could
> complete first on a fast machine.
>
> On a slow machine this test might take a long time...
>
> Please introduce a test command that is deterministic. For example,
> when 'x-oob-test' is invoked without 'run-oob': true it waits until
> invoked again, this time with 'run-oob': true.
Yes this sounds good.
>
> We have similar interfaces in the block layer for controlling the order
> in which parallel I/O requests are processed. This allows test cases to
> deterministically take specific code paths.
It's great to know that I can create a command to test it. That
should be much easier. Thanks,
--
Peter Xu
next prev parent reply other threads:[~2017-11-16 8:04 UTC|newest]
Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-06 9:46 [Qemu-devel] [RFC v3 00/27] QMP: out-of-band (OOB) execution support Peter Xu
2017-11-06 9:46 ` [Qemu-devel] [RFC v3 01/27] char-io: fix possible race on IOWatchPoll Peter Xu
2017-11-07 6:43 ` Fam Zheng
2017-11-13 16:52 ` Stefan Hajnoczi
2017-11-14 6:09 ` Peter Xu
2017-11-14 10:32 ` Stefan Hajnoczi
2017-11-14 11:31 ` Peter Xu
2017-11-15 9:37 ` Stefan Hajnoczi
2017-11-15 9:48 ` Peter Xu
2017-11-06 9:46 ` [Qemu-devel] [RFC v3 02/27] qobject: introduce qstring_get_try_str() Peter Xu
2017-11-07 6:47 ` Fam Zheng
2017-11-06 9:46 ` [Qemu-devel] [RFC v3 03/27] qobject: introduce qobject_get_try_str() Peter Xu
2017-11-07 6:48 ` Fam Zheng
2017-11-06 9:46 ` [Qemu-devel] [RFC v3 04/27] qobject: let object_property_get_str() use new API Peter Xu
2017-11-07 6:50 ` Fam Zheng
2017-11-06 9:46 ` [Qemu-devel] [RFC v3 05/27] monitor: move skip_flush into monitor_data_init Peter Xu
2017-11-07 6:51 ` Fam Zheng
2017-11-06 9:46 ` [Qemu-devel] [RFC v3 06/27] qjson: add "opaque" field to JSONMessageParser Peter Xu
2017-11-07 6:54 ` Fam Zheng
2017-11-06 9:46 ` [Qemu-devel] [RFC v3 07/27] monitor: move the cur_mon hack deeper for QMP Peter Xu
2017-11-07 6:58 ` Fam Zheng
2017-11-06 9:46 ` [Qemu-devel] [RFC v3 08/27] monitor: unify global init Peter Xu
2017-11-07 7:03 ` Fam Zheng
2017-11-06 9:46 ` [Qemu-devel] [RFC v3 09/27] monitor: let mon_list be tail queue Peter Xu
2017-11-07 7:05 ` Fam Zheng
2017-11-06 9:46 ` [Qemu-devel] [RFC v3 10/27] monitor: create monitor dedicate iothread Peter Xu
2017-11-07 7:11 ` Fam Zheng
2017-11-08 7:25 ` Peter Xu
2017-11-08 11:18 ` Fam Zheng
2017-11-08 11:35 ` Peter Xu
2017-11-06 9:46 ` [Qemu-devel] [RFC v3 11/27] monitor: allow to use IO thread for parsing Peter Xu
2017-11-07 7:17 ` Fam Zheng
2017-11-06 9:46 ` [Qemu-devel] [RFC v3 12/27] qmp: introduce QMPCapability Peter Xu
2017-11-06 9:46 ` [Qemu-devel] [RFC v3 13/27] qmp: negociate QMP capabilities Peter Xu
2017-11-06 9:46 ` [Qemu-devel] [RFC v3 14/27] qmp: introduce some capability helpers Peter Xu
2017-11-06 9:46 ` [Qemu-devel] [RFC v3 15/27] monitor: introduce monitor_qmp_respond() Peter Xu
2017-11-07 7:24 ` Fam Zheng
2017-11-06 9:46 ` [Qemu-devel] [RFC v3 16/27] monitor: let monitor_{suspend|resume} thread safe Peter Xu
2017-11-07 7:26 ` Fam Zheng
2017-11-06 9:46 ` [Qemu-devel] [RFC v3 17/27] monitor: separate QMP parser and dispatcher Peter Xu
2017-11-06 9:46 ` [Qemu-devel] [RFC v3 18/27] qmp: add new event "request-dropped" Peter Xu
2017-11-15 10:50 ` Stefan Hajnoczi
2017-11-16 5:56 ` Peter Xu
2017-11-16 6:29 ` Peter Xu
2017-11-16 6:49 ` Peter Xu
2017-11-06 9:46 ` [Qemu-devel] [RFC v3 19/27] monitor: send event when request queue full Peter Xu
2017-11-06 9:46 ` [Qemu-devel] [RFC v3 20/27] qapi: introduce new cmd option "allow-oob" Peter Xu
2017-11-06 9:46 ` [Qemu-devel] [RFC v3 21/27] qmp: support out-of-band (oob) execution Peter Xu
2017-11-06 9:46 ` [Qemu-devel] [RFC v3 22/27] qmp: let migrate-incoming allow out-of-band Peter Xu
2017-11-06 9:46 ` [Qemu-devel] [RFC v3 23/27] qmp: isolate responses into io thread Peter Xu
2017-11-07 7:57 ` Fam Zheng
2017-11-08 7:31 ` Peter Xu
2017-11-08 11:16 ` Fam Zheng
2017-11-06 9:46 ` [Qemu-devel] [RFC v3 24/27] monitor: enable IO thread for (qmp & !mux) typed Peter Xu
2017-11-06 9:46 ` [Qemu-devel] [RFC v3 25/27] docs: update QMP documents for OOB commands Peter Xu
2017-11-06 9:46 ` [Qemu-devel] [RFC v3 26/27] tests: qmp-test: verify command batching Peter Xu
2017-11-06 9:46 ` [Qemu-devel] [RFC v3 27/27] tests: qmp-test: add oob test Peter Xu
2017-11-15 10:21 ` Stefan Hajnoczi
2017-11-16 8:02 ` Peter Xu [this message]
2017-11-06 10:12 ` [Qemu-devel] [RFC v3 00/27] QMP: out-of-band (OOB) execution support no-reply
2017-11-06 13:08 ` Peter Xu
2017-11-15 9:42 ` Stefan Hajnoczi
2017-11-16 5:32 ` Peter Xu
2017-11-16 5:39 ` Fam Zheng
2017-11-16 6:36 ` Peter Xu
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=20171116080256.GA24928@xz-mi \
--to=peterx@redhat.com \
--cc=armbru@redhat.com \
--cc=berrange@redhat.com \
--cc=dgilbert@redhat.com \
--cc=eblake@redhat.com \
--cc=famz@redhat.com \
--cc=jdenemar@redhat.com \
--cc=lvivier@redhat.com \
--cc=marcandre.lureau@redhat.com \
--cc=mdroth@linux.vnet.ibm.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=quintela@redhat.com \
--cc=shajnocz@redhat.com \
--cc=stefanha@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).