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

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

 



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.

>                 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
--
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