From: Thomas Huth <thuth@redhat.com>
To: David Hildenbrand <david@redhat.com>,
qemu-devel@nongnu.org, Cornelia Huck <cohuck@redhat.com>,
Christian Borntraeger <borntraeger@de.ibm.com>
Cc: Claudio Imbrenda <imbrenda@linux.vnet.ibm.com>,
Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com>,
Eric Farman <farman@linux.vnet.ibm.com>,
Farhan Ali <alifm@linux.vnet.ibm.com>,
Fei Li <sherrylf@linux.vnet.ibm.com>,
Halil Pasic <pasic@linux.vnet.ibm.com>,
Janosch Frank <frankja@linux.vnet.ibm.com>,
Jason J Herne <jjherne@linux.vnet.ibm.com>,
Jing Liu <liujbjl@linux.vnet.ibm.com>,
Pierre Morel <pmorel@linux.vnet.ibm.com>,
QingFeng Hao <haoqf@linux.vnet.ibm.com>,
Xiao Feng Ren <renxiaof@linux.vnet.ibm.com>,
Yang Chen <bjcyang@linux.vnet.ibm.com>,
Yi Min Zhao <zyimin@linux.vnet.ibm.com>,
Cleber Rosa <crosa@redhat.com>,
Michael S Tsirkin <mst@redhat.com>
Subject: Re: [Qemu-devel] [PATCH 4/6] tests: Introduce generic device hot-plug/hot-unplug functions
Date: Thu, 17 Aug 2017 12:57:27 +0200 [thread overview]
Message-ID: <9d10d055-0256-cf39-f68e-175b56da5bb2@redhat.com> (raw)
In-Reply-To: <6454a1a2-e9eb-272f-1380-f514a07c5a20@redhat.com>
On 17.08.2017 11:53, David Hildenbrand wrote:
> On 17.08.2017 08:25, Thomas Huth wrote:
>> A lot of tests provide code for adding and removing a device via the
>> device_add and device_del QMP commands. Maintaining this code in so
>> many places is cumbersome and error-prone (some of the code parts
>> check the responses in an incorrect way, for example), so let's
>> provide some proper generic qtest functions for adding and removing a
>> device instead.
>>
>> Signed-off-by: Thomas Huth <thuth@redhat.com>
>> ---
[...]
>> diff --git a/tests/libqos/pci.c b/tests/libqos/pci.c
>> index 2dcdead..aada753 100644
>> --- a/tests/libqos/pci.c
>> +++ b/tests/libqos/pci.c
>> @@ -394,21 +394,6 @@ QPCIBar qpci_legacy_iomap(QPCIDevice *dev, uint16_t addr)
>> void qpci_plug_device_test(const char *driver, const char *id,
>> uint8_t slot, const char *opts)
>> {
>> - QDict *response;
>> - char *cmd;
>> -
>> - cmd = g_strdup_printf("{'execute': 'device_add',"
>> - " 'arguments': {"
>> - " 'driver': '%s',"
>> - " 'addr': '%d',"
>> - " %s%s"
>> - " 'id': '%s'"
>> - "}}", driver, slot,
>> - opts ? opts : "", opts ? "," : "",
>> - id);
>> - response = qmp(cmd);
>> - g_free(cmd);
>> - g_assert(response);
>> - g_assert(!qdict_haskey(response, "error"));
>> - QDECREF(response);
>> + qtest_hot_plug_device(driver, id, "'addr': '%d'%s%s", slot,
>> + opts ? ", " : "", opts ? opts : "");
While PCI uses 'addr' as additional parameter here...
[...]
>> + qtest_hot_plug_device("usb-tablet", id, "'port': '%d', 'bus': '%s.0'",
>> + port, hcd_id);
... USB uses 'port' and 'bus' ...
[...]
>
> Not sure if it would be better to avoid the fmt and provide more
> parameters instead. Specifying a parameter as NULL will ifgnore it.
>
> void qtest_hot_plug_device(const char *driver, const char *id,
> const char *drive, const char *port,
> const char *bus)
>
> that should cover all cases and callers don't have to build strings in a
> special format.
... so I'm afraid, but no, this does not work. The additional parameters
are specific to the device type, so there is no way to get around the
format string if we want to stay flexible here.
Thomas
next prev parent reply other threads:[~2017-08-17 10:57 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-08-17 6:25 [Qemu-devel] [PATCH for-2.11 0/6] Enable more qtests for s390x Thomas Huth
2017-08-17 6:25 ` [Qemu-devel] [PATCH 1/6] tests: Run filter-redirector and -mirror test only on POSIX systems Thomas Huth
2017-08-17 8:25 ` Cornelia Huck
2017-08-17 9:41 ` David Hildenbrand
2017-08-17 10:09 ` Zhang Chen
2017-08-30 19:35 ` Cleber Rosa
2017-08-17 6:25 ` [Qemu-devel] [PATCH 2/6] tests: Add network filter tests to the check-qtest-s390x list Thomas Huth
2017-08-17 8:41 ` Cornelia Huck
2017-08-17 14:02 ` Thomas Huth
2017-08-18 1:49 ` Zhang Chen
2017-08-18 7:54 ` Cornelia Huck
2017-08-18 8:47 ` Thomas Huth
2017-08-30 20:05 ` Cleber Rosa
2017-08-30 20:03 ` Cleber Rosa
2017-08-17 6:25 ` [Qemu-devel] [PATCH 3/6] tests: Enable the drive_del test also on s390x Thomas Huth
2017-08-17 8:53 ` Cornelia Huck
2017-08-17 9:46 ` David Hildenbrand
2017-08-17 13:54 ` Thomas Huth
2017-08-17 14:01 ` Cornelia Huck
2017-08-30 21:41 ` Cleber Rosa
2017-09-04 13:49 ` Cornelia Huck
2017-08-17 6:25 ` [Qemu-devel] [PATCH 4/6] tests: Introduce generic device hot-plug/hot-unplug functions Thomas Huth
2017-08-17 9:00 ` Cornelia Huck
2017-08-17 9:53 ` David Hildenbrand
2017-08-17 10:57 ` Thomas Huth [this message]
2017-08-17 11:16 ` David Hildenbrand
2017-08-17 6:25 ` [Qemu-devel] [PATCH 5/6] tests: Add qvirtio_(un)plug_device_test wrapper functions Thomas Huth
2017-08-17 9:04 ` Cornelia Huck
2017-08-17 6:25 ` [Qemu-devel] [PATCH 6/6] tests: Enable the simple virtio tests on s390x, too Thomas Huth
2017-08-17 9:07 ` Cornelia Huck
2017-08-17 9:11 ` [Qemu-devel] [PATCH for-2.11 0/6] Enable more qtests for s390x Cornelia Huck
2017-08-18 13:40 ` Cornelia Huck
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=9d10d055-0256-cf39-f68e-175b56da5bb2@redhat.com \
--to=thuth@redhat.com \
--cc=alifm@linux.vnet.ibm.com \
--cc=bjcyang@linux.vnet.ibm.com \
--cc=bjsdjshi@linux.vnet.ibm.com \
--cc=borntraeger@de.ibm.com \
--cc=cohuck@redhat.com \
--cc=crosa@redhat.com \
--cc=david@redhat.com \
--cc=farman@linux.vnet.ibm.com \
--cc=frankja@linux.vnet.ibm.com \
--cc=haoqf@linux.vnet.ibm.com \
--cc=imbrenda@linux.vnet.ibm.com \
--cc=jjherne@linux.vnet.ibm.com \
--cc=liujbjl@linux.vnet.ibm.com \
--cc=mst@redhat.com \
--cc=pasic@linux.vnet.ibm.com \
--cc=pmorel@linux.vnet.ibm.com \
--cc=qemu-devel@nongnu.org \
--cc=renxiaof@linux.vnet.ibm.com \
--cc=sherrylf@linux.vnet.ibm.com \
--cc=zyimin@linux.vnet.ibm.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).