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

2010-03-21 Thread Shuxi Shang
OK, I approve of your suggestion.

- Lucas Meneghel Rodrigues l...@redhat.com 写道:

 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
 l...@redhat.com 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 ssh...@redhat.com 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 ssh...@redhat.com
  ---
   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 000..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
  autot...@test.kernel.org
  http://test.kernel.org/cgi-bin/mailman/listinfo/autotest
 
 
 
 
  --
  Lucas
 
 
 
 
 -- 
 Lucas
--
To unsubscribe from this list: send 

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

2010-03-20 Thread Lucas Meneghel Rodrigues
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
l...@redhat.com 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 ssh...@redhat.com 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 ssh...@redhat.com
 ---
  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 000..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
 autot...@test.kernel.org
 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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html