Re: [Autotest] [PATCH] KVM test: Change the way subtests are loaded

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

 



----- "sudhir kumar" <smalikphy@xxxxxxxxx> wrote:

> On Sat, Oct 31, 2009 at 3:37 AM, Lucas Meneghel Rodrigues
> <lmr@xxxxxxxxxx> wrote:
> > Recently autoserv changed its default behavior of rsyncing
> > the whole client directory to the test machine, now it
> > will copy only the needed tests to the client machine.
> >
> > Also, the way the tests are loaded when running from the
> > server has changed, breaking the KVM test when ran from
> > autoserv.
> >
> > So change the mechanism to load KVM subtests, in order to
> > cope with the recent autoserv changes.
> >
> > Thanks to Ryan Harper for having noticed this issue.
> >
> > Signed-off-by: Lucas Meneghel Rodrigues <lmr@xxxxxxxxxx>
> > ---
> >  client/tests/kvm/kvm.py |    9 +++++----
> >  1 files changed, 5 insertions(+), 4 deletions(-)
> >
> > diff --git a/client/tests/kvm/kvm.py b/client/tests/kvm/kvm.py
> > index 204164d..06ef9f5 100644
> > --- a/client/tests/kvm/kvm.py
> > +++ b/client/tests/kvm/kvm.py
> > @@ -22,9 +22,9 @@ class kvm(test.test):
> >     """
> >     version = 1
> >     def initialize(self):
> > -        # Make it possible to import modules from the test's
> bindir
> > -        sys.path.append(self.bindir)
> > +        # Make it possible to import modules from the subtest dir
> >         self.subtest_dir = os.path.join(self.bindir, 'tests')
> > +        sys.path.append(self.subtest_dir)
> >
> >
> >     def run_once(self, params):
> > @@ -51,7 +51,7 @@ class kvm(test.test):
> >                     raise error.TestError("No %s.py test file found"
> % type)
> >                 # Load the tests directory (which was turned into a
> py module)
> >                 try:
> > -                    test_module = __import__("tests.%s" % type)
> > +                    test_module = __import__(type)
> 
> This seems to have broken the execution of autotest under kvm guests.
> I see the following error
>  'module' object has no attribute 'run_autotest'
>                   Traceback (most recent call last):
>                     File
> "/scratch/images/sudhir/devel/autotest/client/common_lib/test.py",
> line 570, in _call_test_function
>                       return func(*args, **dargs)
>                     File
> "/scratch/images/sudhir/devel/autotest/client/common_lib/test.py",
> line 279, in execute
>                       postprocess_profiled_run, args, dargs)
>                     File
> "/scratch/images/sudhir/devel/autotest/client/common_lib/test.py",
> line 201, in _call_run_once
>                       self.run_once(*args, **dargs)
>                     File
> "/scratch/images/sudhir/devel/autotest/client/tests/kvm/kvm.py", line
> 63, in run_once
>                       run_func = getattr(test_module, "run_%s" %
> type)
>                   AttributeError: 'module' object has no attribute
> 'run_autotest'
> 
> A little more debugging prints out that the module 'autotest' has
> been
> imported from a wrong place.
>  <module 'autotest' from
> '/scratch/images/sudhir/devel/autotest/client/tests/kvm/autotest/__init__.pyc'>
> So may be either we need to force to import from specific path or
> change the name autotest.
> 
> I had the test variant as below
>         only autotest.hackbench
> I am unable to run any of the tests under autotest.

I've encountered the same problem.
I suggest we use the builtin imp module and import by filename.
I'll try it and post a patch if it works.

> >                 except ImportError, e:
> >                     raise error.TestError("Failed to import test %s:
> %s" %
> >                                           (type, e))
> > @@ -60,7 +60,8 @@ class kvm(test.test):
> >                 kvm_preprocessing.preprocess(self, params, env)
> >                 kvm_utils.dump_env(env, env_filename)
> >                 # Run the test function
> > -                eval("test_module.%s.run_%s(self, params, env)" %
> (type, type))
> > +                run_func = getattr(test_module, "run_%s" % type)
> > +                run_func(self, params, env)
> >                 kvm_utils.dump_env(env, env_filename)
> >
> >             except Exception, e:
> > --
> > 1.6.2.5
> >
> > _______________________________________________
> > Autotest mailing list
> > Autotest@xxxxxxxxxxxxxxx
> > http://test.kernel.org/cgi-bin/mailman/listinfo/autotest
> >
> 
> 
> 
> -- 
> Sudhir Kumar
> _______________________________________________
> Autotest mailing list
> Autotest@xxxxxxxxxxxxxxx
> http://test.kernel.org/cgi-bin/mailman/listinfo/autotest
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux