From: Michael Roth <mdroth@linux.vnet.ibm.com>
To: Eduardo Habkost <ehabkost@redhat.com>
Cc: Peter Maydell <peter.maydell@linaro.org>,
Anthony Liguori <aliguori@amazon.com>,
qemu-devel@nongnu.org, Don Slutz <dslutz@verizon.com>,
"Michael S. Tsirkin" <mst@redhat.com>
Subject: Re: [Qemu-devel] [PULL 03/12] test-qdev-global-props: Run tests on subprocess
Date: Thu, 18 Sep 2014 12:44:06 -0500 [thread overview]
Message-ID: <20140918174406.19243.70771@loki> (raw)
In-Reply-To: <20140918172712.GA32084@thinpad.lan.raisama.net>
Quoting Eduardo Habkost (2014-09-18 12:27:12)
> On Thu, Sep 18, 2014 at 11:29:47AM -0500, Michael Roth wrote:
> > Quoting Michael S. Tsirkin (2014-09-14 13:41:23)
> > > From: Eduardo Habkost <ehabkost@redhat.com>
> > >
> > > There are multiple reasons for running the global property tests on a
> > > subprocess:
> > >
> > > * We need the global_props lists to be empty for each test case, so
> > > global properties from the previous test won't affect the next one;
> > > * We don't want the qdev_prop_check_global() warnings to pollute test
> > > output;
> > > * With a subprocess, we can ensure qdev_prop_check_global() is printing
> > > the warning messages it should.
> > >
> > > Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
> > > Acked-by: Michael S. Tsirkin <mst@redhat.com>
> > > Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> > > ---
> > > tests/test-qdev-global-props.c | 49 ++++++++++++++++++++++++++++++++++++------
> > > 1 file changed, 43 insertions(+), 6 deletions(-)
> > >
> > > diff --git a/tests/test-qdev-global-props.c b/tests/test-qdev-global-props.c
> > > index e1a1317..34223a7 100644
> > > --- a/tests/test-qdev-global-props.c
> > > +++ b/tests/test-qdev-global-props.c
> > > @@ -65,7 +65,7 @@ static const TypeInfo static_prop_type = {
> > > };
> > >
> > > /* Test simple static property setting to default value */
> > > -static void test_static_prop(void)
> > > +static void test_static_prop_subprocess(void)
> > > {
> > > MyType *mt;
> > >
> > > @@ -75,8 +75,16 @@ static void test_static_prop(void)
> > > g_assert_cmpuint(mt->prop1, ==, PROP_DEFAULT);
> > > }
> > >
> > > +static void test_static_prop(void)
> > > +{
> > > + g_test_trap_subprocess("/qdev/properties/static/default/subprocess", 0, 0);
> > > + g_test_trap_assert_passed();
> > > + g_test_trap_assert_stderr("");
> > > + g_test_trap_assert_stdout("");
> > > +}
> >
> > <snip>
> >
> > > int main(int argc, char **argv)
> > > {
> > > g_test_init(&argc, &argv, NULL);
> > > @@ -174,9 +200,20 @@ int main(int argc, char **argv)
> > > type_register_static(&static_prop_type);
> > > type_register_static(&dynamic_prop_type);
> > >
> > > - g_test_add_func("/qdev/properties/static/default", test_static_prop);
> > > - g_test_add_func("/qdev/properties/static/global", test_static_globalprop);
> > > - g_test_add_func("/qdev/properties/dynamic/global", test_dynamic_globalprop);
> > > + g_test_add_func("/qdev/properties/static/default/subprocess",
> > > + test_static_prop_subprocess);
> > > + g_test_add_func("/qdev/properties/static/default",
> > > + test_static_prop);
> >
> > Since in the code above test_static_prop is actually the test that re-runs
> > /qdev/properties/static/default/subprocess under g_test_trap_subprocess, aren't
> > the tests (or test function implementations) backwards?
>
> Your description is correct: ./static/default is test_static_prop(),
> which runs ./static/default/subprocess (test_static_prop_subprocess())
> in a subprocess. But I don't understand what's backwards. Are you
> talking about the function names, test path strings, or about the
> ordering of the g_test_add_func() calls?
I was under the false impression that this was adding a "subprocess" variant of
each existing test, where the subprocess variants were supposed to have "subprocess"
after them in the test paths to differentiate them, and the original cases would
retain the same paths. In that context the tests seemed reverse.
Sorry for the confusion, reading the glib documentation would've made this
fairly clear (though still a bit surprising, imo)
>
> Note that the test case that will be run in a subprocess must contain
> the "subprocess" component in its path, otherwise g_test_run() will try
> to run it as a normal test case. So for the test path, we don't have a
> choice. For the function names, I am just following the same convention
> used for the test path.
>
> --
> Eduardo
next prev parent reply other threads:[~2014-09-18 17:44 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-14 18:41 [Qemu-devel] [PULL 00/12] pci, pc, virtio, misc bugfixes Michael S. Tsirkin
2014-09-14 18:41 ` [Qemu-devel] [PULL 01/12] hw/machine: Free old values of string properties Michael S. Tsirkin
2014-09-14 18:41 ` [Qemu-devel] [PULL 02/12] test-qdev-global-props: Trivial comment fix Michael S. Tsirkin
2014-09-14 18:41 ` [Qemu-devel] [PULL 03/12] test-qdev-global-props: Run tests on subprocess Michael S. Tsirkin
2014-09-18 16:29 ` Michael Roth
2014-09-18 17:06 ` Paolo Bonzini
2014-09-18 17:38 ` Michael S. Tsirkin
2014-09-18 17:27 ` Eduardo Habkost
2014-09-18 17:44 ` Michael Roth [this message]
2014-09-14 18:41 ` [Qemu-devel] [PULL 04/12] test-qdev-global-props: Initialize not_used=true for all props Michael S. Tsirkin
2014-09-14 18:41 ` [Qemu-devel] [PULL 05/12] test-qdev-global-props: Test handling of hotpluggable and non-device types Michael S. Tsirkin
2014-09-14 18:41 ` [Qemu-devel] [PULL 06/12] qdev: Rename qdev_prop_check_global() to qdev_prop_check_globals() Michael S. Tsirkin
2014-09-14 18:41 ` [Qemu-devel] [PULL 07/12] qdev: Move global validation to a single function Michael S. Tsirkin
2014-09-14 18:41 ` [Qemu-devel] [PULL 08/12] Revert "rng-egd: remove redundant free" Michael S. Tsirkin
2014-09-14 18:41 ` [Qemu-devel] [PULL 09/12] virtio-net: drop assert on vm stop Michael S. Tsirkin
2014-09-14 18:41 ` [Qemu-devel] [PULL 10/12] Revert "virtio: don't call device on !vm_running" Michael S. Tsirkin
2014-09-14 18:41 ` [Qemu-devel] [PULL 11/12] virtio-pci: enable bus master for old guests Michael S. Tsirkin
2014-09-14 18:41 ` [Qemu-devel] [PULL 12/12] vhost-user: fix VIRTIO_NET_F_MRG_RXBUF negotiation Michael S. Tsirkin
2014-09-16 7:06 ` Linhaifeng
2014-09-16 15:57 ` Michael S. Tsirkin
2014-09-15 20:30 ` [Qemu-devel] [PULL 00/12] pci, pc, virtio, misc bugfixes Peter Maydell
2014-09-16 14:43 ` Michael S. Tsirkin
2014-09-16 14:07 ` Paolo Bonzini
2014-09-16 14:52 ` Michael S. Tsirkin
2014-09-18 16:37 ` Michael Roth
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=20140918174406.19243.70771@loki \
--to=mdroth@linux.vnet.ibm.com \
--cc=aliguori@amazon.com \
--cc=dslutz@verizon.com \
--cc=ehabkost@redhat.com \
--cc=mst@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
/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).