qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PULL 03/12] test-qdev-global-props: Run tests on subpr


From: Eduardo Habkost
Subject: Re: [Qemu-devel] [PULL 03/12] test-qdev-global-props: Run tests on subprocess
Date: Thu, 18 Sep 2014 14:27:12 -0300
User-agent: Mutt/1.5.23 (2014-03-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 <address@hidden>
> > 
> > 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 <address@hidden>
> > Acked-by: Michael S. Tsirkin <address@hidden>
> > Signed-off-by: Michael S. Tsirkin <address@hidden>
> > ---
> >  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?

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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]