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