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

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

 



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