Re: [Autotest] [PATCH] KVM-Test: Add kvm userspace unit test

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

 



OK, I approve of your suggestion.

----- "Lucas Meneghel Rodrigues" <lmr@xxxxxxxxxx> 写道:

> I have an update about this test after talking to Naphtali Sprei:
> 
> This patch does the unit testing using the old way of invoking it,
> and
> Avi superseded it with a new -kernel option. Naphtali is working in
> making the new way of doing the test work, so I will wait until we
> can
> merge both ways of doing this test, OK?
> 
> On Thu, Mar 18, 2010 at 12:16 AM, Lucas Meneghel Rodrigues
> <lmr@xxxxxxxxxx> wrote:
> > Hi Shuxi, sorry that it took so long before I could give you return
> on this one.
> >
> > The general idea is just fine, but there is one gotcha that will
> need
> > more thought: This is dependent of having the KVM source code for
> > testing (ie, it depends on the build test *and* the build mode has
> to
> > involve source code, such as git builds, things like koji install
> will
> > also not work). Since by default we are not making the tests
> depending
> > directly on build, so we have to figure out a way to have this
> > integrated without breaking things for users who are not interested
> to
> > run the build test.
> >
> > Today I was reviewing the qemu-img functional test, so it occurred
> to
> > me that all those tests that do not depend on guests and different
> > qemu command line options, we can make them all dependent on the
> build
> > test. This way we'd have the separation that we need, still not
> > breaking anything for users that do not care about build and other
> > types of test.
> >
> > Michael, what do you think? Should we put the config of tests like
> > this one and qemu_img on build.cfg, making them depend on build?
> >
> > Oh Shuxi, on the code below I have some small comments to make:
> >
> > On Fri, Mar 5, 2010 at 3:22 AM, sshang <sshang@xxxxxxxxxx> wrote:
> >>  The test use kvm test harness kvmctl load binary test case file to
> test various function of kvm kernel module.
> >>
> >> Signed-off-by: sshang <sshang@xxxxxxxxxx>
> >> ---
> >>  client/tests/kvm/tests/unit_test.py    |   29
> +++++++++++++++++++++++++++++
> >>  client/tests/kvm/tests_base.cfg.sample |    7 +++++++
> >>  2 files changed, 36 insertions(+), 0 deletions(-)
> >>  create mode 100644 client/tests/kvm/tests/unit_test.py
> >>
> >> diff --git a/client/tests/kvm/tests/unit_test.py
> b/client/tests/kvm/tests/unit_test.py
> >> new file mode 100644
> >> index 0000000..9bc7441
> >> --- /dev/null
> >> +++ b/client/tests/kvm/tests/unit_test.py
> >> @@ -0,0 +1,29 @@
> >> +import os
> >> +from autotest_lib.client.bin import utils
> >> +from autotest_lib.client.common_lib import error
> >> +
> >> +def run_unit_test(test, params, env):
> >> +    """
> >> +    This is kvm userspace unit test, use kvm test harness kvmctl
> load binary
> >> +    test case file to test various function of kvm kernel module.
> >> +    The output of all unit test can be found in the test result
> dir.
> >> +    """
> >> +
> >> +    case_list = params.get("case_list","access apic emulator
> hypercall irq"\
> >> +              " port80 realmode sieve smptest tsc stringio
> vmexit").split()
> >> +    srcdir = params.get("srcdir",test.srcdir)
> >> +    user_dir = os.path.join(srcdir,"kvm_userspace/kvm/user")
> >> +    os.chdir(user_dir)
> >> +    test_fail_list = []
> >> +
> >> +    for i in case_list:
> >> +        result_file = test.outputdir + "/" + i
> >> +        testfile = i + ".flat"
> >> +        results = utils.system("./kvmctl test/x86/bootstrap
> test/x86/" + \
> >> +                     testfile + " > " +
> result_file,ignore_status=True)
> >
> > About the above statement: In general you should not use shell
> > redirection to write the output of your program to the log files.
> > Please take advantage of the fact utils.run allow you to connect
> > stdout and stderr pipes to the result file. Also, utils.run return
> a
> > CmdResult object, hat has a list of useful properties out of it.
> >
> >> +        if results != 0:
> >> +            test_fail_list.append(i)
> >> +
> >> +    if test_fail_list:
> >> +        raise error.TestFail("< " + " ".join(test_fail_list) + \
> >> +                                   " >")
> >
> > In the above, you could just have used
> >
> >        raise error.TestFail("KVM module unit test failed. Test
> cases
> > failed: %s" % test_fail_list)
> >
> > IMHO it's easier to understand.
> >
> >> diff --git a/client/tests/kvm/tests_base.cfg.sample
> b/client/tests/kvm/tests_base.cfg.sample
> >> index 040d0c3..0918c26 100644
> >> --- a/client/tests/kvm/tests_base.cfg.sample
> >> +++ b/client/tests/kvm/tests_base.cfg.sample
> >> @@ -300,6 +300,13 @@ variants:
> >>         shutdown_method = shell
> >>         kill_vm = yes
> >>         kill_vm_gracefully = no
> >> +
> >> +    - unit_test:
> >> +        type = unit_test
> >> +        case_list = access apic emulator hypercall msr port80
> realmode sieve smptest tsc stringio vmexit
> >> +        #srcdir should be same as build.cfg
> >> +        srcdir =
> >> +        vms = ''
> >>     # Do not define test variants below shutdown
> >>
> >>
> >> --
> >> 1.5.5.6
> >>
> >> _______________________________________________
> >> Autotest mailing list
> >> Autotest@xxxxxxxxxxxxxxx
> >> http://test.kernel.org/cgi-bin/mailman/listinfo/autotest
> >>
> >
> >
> >
> > --
> > Lucas
> >
> 
> 
> 
> -- 
> Lucas
--
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