Re: [Autotest] [PATCH V3] KVM Test: Add ioquit test case

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

 



On Mon, 2010-05-24 at 15:37 +0800, Feng Yang wrote:
> Emulate the powercut under IO workload(dd so far) using kill -9.
> Then check image in post command.
> This case want to make sure powercut under IO workload will not
> break qcow2 image.
> 
> Now it only work on linux.

Applied, thanks!

http://autotest.kernel.org/changeset/4563

> Signed-off-by: Feng Yang <fyang@xxxxxxxxxx>
> ---
>  client/tests/kvm/tests/ioquit.py       |   38 ++++++++++++++++++++++++++++++++
>  client/tests/kvm/tests_base.cfg.sample |   12 ++++++++++
>  2 files changed, 50 insertions(+), 0 deletions(-)
>  create mode 100644 client/tests/kvm/tests/ioquit.py
> 
> diff --git a/client/tests/kvm/tests/ioquit.py b/client/tests/kvm/tests/ioquit.py
> new file mode 100644
> index 0000000..389a867
> --- /dev/null
> +++ b/client/tests/kvm/tests/ioquit.py
> @@ -0,0 +1,38 @@
> +import logging, time, random
> +from autotest_lib.client.common_lib import error
> +import kvm_test_utils
> +
> +
> +def run_ioquit(test, params, env):
> +    """
> +    Emulate the poweroff under IO workload(dd so far) using kill -9.
> +
> +    @param test: Kvm test object
> +    @param params: Dictionary with the test parameters.
> +    @param env: Dictionary with test environment.
> +    """
> +
> +    vm = kvm_test_utils.get_living_vm(env, params.get("main_vm"))
> +    session = kvm_test_utils.wait_for_login(vm,
> +                  timeout=int(params.get("login_timeout", 360)))
> +    session2 = kvm_test_utils.wait_for_login(vm,
> +                  timeout=int(params.get("login_timeout", 360)))
> +    try:
> +        bg_cmd = params.get("background_cmd")
> +        logging.info("Add IO workload for guest OS.")
> +        (s, o) = session.get_command_status_output(bg_cmd, timeout=60)
> +        check_cmd = params.get("check_cmd")
> +        (s, o) = session2.get_command_status_output(check_cmd, timeout=60)
> +        if int(o) <= 0:
> +            raise error.TestError("Fail to add IO workload for Guest OS")
> +
> +        logging.info("Sleep for a while")
> +        time.sleep(random.randrange(30,100))
> +        (s, o) = session2.get_command_status_output(check_cmd, timeout=300)
> +        if int(o) <= 0:
> +            logging.info("IO workload finished before the VM was killed")
> +        logging.info("Kill the virtual machine")
> +        vm.process.close()
> +    finally:
> +        session.close()
> +        session2.close()
> diff --git a/client/tests/kvm/tests_base.cfg.sample b/client/tests/kvm/tests_base.cfg.sample
> index be96dc1..e0e1ba7 100644
> --- a/client/tests/kvm/tests_base.cfg.sample
> +++ b/client/tests/kvm/tests_base.cfg.sample
> @@ -348,6 +348,12 @@ variants:
>              - vmexit:
>                  case = vmexit
>  
> +    - ioquit:
> +        type = ioquit
> +        background_cmd = "for i in 1 2 3 4; do (nohup dd if=/dev/urandom of=/tmp/file bs=102400 count=10000000 &) done"
> +        check_cmd = ps -a |grep dd |wc -l
> +        login_timeout = 360
> +
>      - qemu_img:
>          type = qemu_img
>          vms = ''
> @@ -1359,6 +1365,12 @@ variants:
>          extra_params += " -mem-path /mnt/kvm_hugepage"
>  
> 
> +ioquit:
> +    post_command_noncritical = no
> +    only qcow2
> +    only Linux
> +
> +
>  variants:
>      - @no_pci_assignable:
>          pci_assignable = no


--
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