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