[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC PATCH 06/14] KVM-test: Add basic file transfer test
From: |
Amos Kong |
Subject: |
[Qemu-devel] [RFC PATCH 06/14] KVM-test: Add basic file transfer test |
Date: |
Tue, 20 Jul 2010 09:35:41 +0800 |
User-agent: |
StGit/0.15 |
This test is the basic test of transfering file between host and guest. Try to
transfer a large file from host to guest, and transfer it back to host, then
compare the files by diff command.
The default file size is 4000M, scp timeout is 1000s. It means if the average
speed is less than 4M/s, this test will be fail.
We can extend this test by using another disk later, then we can transfer larger
files without the limit of first disk size.
Signed-off-by: Amos Kong <address@hidden>
---
0 files changed, 0 insertions(+), 0 deletions(-)
diff --git a/client/tests/kvm/tests/file_transfer.py
b/client/tests/kvm/tests/file_transfer.py
new file mode 100644
index 0000000..a20e62e
--- /dev/null
+++ b/client/tests/kvm/tests/file_transfer.py
@@ -0,0 +1,54 @@
+import logging, commands
+from autotest_lib.client.common_lib import error
+import kvm_utils, kvm_test_utils
+
+def run_file_transfer(test, params, env):
+ """
+ Test ethrnet device function by ethtool
+
+ 1) Boot up a virtual machine
+ 2) Create a large file by dd on host
+ 3) Copy this file from host to guest
+ 4) Copy this file from guest to host
+ 5) Check if file transfers good
+
+ @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"))
+ timeout=int(params.get("login_timeout", 360))
+ logging.info("Trying to log into guest '%s' by serial", vm.name)
+ session = kvm_utils.wait_for(lambda: vm.serial_login(),
+ timeout, 0, step=2)
+ if not session:
+ raise error.TestFail("Could not log into guest '%s'" % vm.name)
+
+ dir = test.tmpdir
+ scp_timeout = int(params.get("scp_timeout"))
+ cmd = "dd if=/dev/urandom of=%s/a.out bs=1M count=%d" % (dir, int(
+ params.get("filesize", 4000)))
+ try:
+ logging.info("Create file by dd command on host, cmd: %s" % cmd)
+ s, o = commands.getstatusoutput(cmd)
+ if s != 0:
+ raise error.TestError("Fail to create file, output:%s" % o)
+
+ logging.info("Transfer file from host to guest")
+ if not vm.copy_files_to("%s/a.out" % dir, "/tmp/b.out",
+ timeout=scp_timeout):
+ raise error.TestFail("Fail to transfer file from host to guest")
+
+ logging.info("Transfer file from guest to host")
+ if not vm.copy_files_from("/tmp/b.out", "%s/c.out" % dir,
+ timeout=scp_timeout):
+ raise error.TestFail("Fail to transfer file from guest to host")
+
+ logging.debug(commands.getoutput("ls -l %s/[ac].out" % dir))
+ s, o = commands.getstatusoutput("diff %s/a.out %s/c.out" % (dir, dir))
+ if s != 0:
+ raise error.TestFail("File changed after transfer. Output:%s" % o)
+ finally:
+ session.get_command_status("rm -f /tmp/b.out")
+ commands.getoutput("rm -f %s/[ac].out" % dir)
+ session.close()
diff --git a/client/tests/kvm/tests_base.cfg.sample
b/client/tests/kvm/tests_base.cfg.sample
index 7f7b56a..872674e 100644
--- a/client/tests/kvm/tests_base.cfg.sample
+++ b/client/tests/kvm/tests_base.cfg.sample
@@ -357,6 +357,11 @@ variants:
- jumbo: install setup unattended_install.cdrom
type = jumbo
+ - file_transfer: install setup unattended_install.cdrom
+ type = file_transfer
+ filesize = 4000
+ scp_timeout = 1000
+
- physical_resources_check: install setup unattended_install.cdrom
type = physical_resources_check
catch_uuid_cmd = dmidecode | awk -F: '/UUID/ {print $2}'
@@ -1033,7 +1038,7 @@ variants:
# Windows section
- @Windows:
- no autotest linux_s3 vlan_tag ioquit
unattended_install.(url|nfs|remote_ks) jumbo
+ no autotest linux_s3 vlan_tag ioquit
unattended_install.(url|nfs|remote_ks) jumbo file_transfer
shutdown_command = shutdown /s /f /t 0
reboot_command = shutdown /r /f /t 0
status_test_command = echo %errorlevel%
- Re: [Qemu-devel] [RFC PATCH 02/14] KVM Test: Add a function get_interface_name() to kvm_net_utils.py, (continued)
- [Qemu-devel] [RFC PATCH 04/14] KVM-test: Add a new subtest ping, Amos Kong, 2010/07/19
- [Qemu-devel] [RFC PATCH 05/14] KVM-test: Add a subtest jumbo, Amos Kong, 2010/07/19
- [Qemu-devel] [RFC PATCH 06/14] KVM-test: Add basic file transfer test,
Amos Kong <=
- [Qemu-devel] [RFC PATCH 07/14] KVM-test: Add a subtest of load/unload nic driver, Amos Kong, 2010/07/19
- [Qemu-devel] [RFC PATCH 08/14] KVM-test: Add a subtest of nic promisc, Amos Kong, 2010/07/19
- [Qemu-devel] [RFC PATCH 09/14] KVM-test: Add a subtest of multicast, Amos Kong, 2010/07/19
- [Qemu-devel] [RFC PATCH 10/14] KVM-test: Add a subtest of pxe, Amos Kong, 2010/07/19
- [Qemu-devel] [RFC PATCH 11/14] KVM-test: Add a subtest of changing mac address, Amos Kong, 2010/07/19