From: Lucas Meneghel Rodrigues <lmr@redhat.com>
To: Amos Kong <akong@redhat.com>
Cc: autotest@test.kernel.org, qemu-devel@nongnu.org, kvm@vger.kernel.org
Subject: Re: [Qemu-devel] [RFC PATCH 06/14] KVM-test: Add basic file transfer test
Date: Tue, 27 Jul 2010 11:36:07 -0300 [thread overview]
Message-ID: <1280241367.2637.85.camel@freedom> (raw)
In-Reply-To: <20100720013541.2212.76461.stgit@z>
On Tue, 2010-07-20 at 09:35 +0800, Amos Kong wrote:
> 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.
^ About this average 4MB/s throughput, is there some sort of
agreement/standard I'm not aware of?
> 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 <akong@redhat.com>
> ---
> 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)
^ I assume the serial session is being used here to avoid interfering
with the bandwidth required for the test to complete as little as
possible, right?
> + 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)
^ I've seen this throughout the patchseries, the use of functions
present on commands rather than utils.system, or utils.run. The former
are preferable on autotest tests, that's important to have in mind.
Would you consider changing those calls to the autotest API functions?
> + 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)
^ It seems faster to use md5 or sha1 to verify the integrity of the
files rather than diff. Unless there's a good reason to use diff, I'd
like you to change it to one of the programs mentioned above.
> + 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%
>
>
next prev parent reply other threads:[~2010-07-27 14:36 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-07-20 1:34 [Qemu-devel] [Autotest][RFC PATCH 00/14] Patchset of network related subtests Amos Kong
2010-07-20 1:34 ` [Qemu-devel] [RFC PATCH 01/14] KVM-test: Add a new macaddress pool algorithm Amos Kong
2010-07-20 10:19 ` Michael Goldish
2010-07-20 13:44 ` Amos Kong
2010-07-20 15:53 ` Michael Goldish
2010-08-03 1:34 ` Amos Kong
2010-07-27 1:48 ` [Qemu-devel] " Lucas Meneghel Rodrigues
2010-07-20 1:35 ` [Qemu-devel] [RFC PATCH 02/14] KVM Test: Add a function get_interface_name() to kvm_net_utils.py Amos Kong
2010-07-27 2:08 ` Lucas Meneghel Rodrigues
2010-07-28 10:29 ` Michael Goldish
2010-08-03 1:39 ` Amos Kong
2010-07-20 1:35 ` [Qemu-devel] [RFC PATCH 03/14] KVM Test: Add a common ping module for network related tests Amos Kong
2010-07-27 13:01 ` Lucas Meneghel Rodrigues
2010-07-28 11:50 ` Michael Goldish
2010-07-28 13:56 ` Michael Goldish
2010-07-20 1:35 ` [Qemu-devel] [RFC PATCH 04/14] KVM-test: Add a new subtest ping Amos Kong
2010-07-27 13:15 ` [Qemu-devel] " Lucas Meneghel Rodrigues
2010-08-03 1:54 ` Amos Kong
2010-07-20 1:35 ` [Qemu-devel] [RFC PATCH 05/14] KVM-test: Add a subtest jumbo Amos Kong
2010-07-27 14:13 ` [Qemu-devel] " Lucas Meneghel Rodrigues
2010-08-10 7:18 ` [Qemu-devel] Re: [Autotest] " Amos Kong
2010-07-20 1:35 ` [Qemu-devel] [RFC PATCH 06/14] KVM-test: Add basic file transfer test Amos Kong
2010-07-27 14:36 ` Lucas Meneghel Rodrigues [this message]
2010-08-10 9:29 ` [Autotest] " Amos Kong
2010-07-20 1:35 ` [Qemu-devel] [RFC PATCH 07/14] KVM-test: Add a subtest of load/unload nic driver Amos Kong
2010-07-28 18:12 ` Lucas Meneghel Rodrigues
2010-07-20 1:35 ` [Qemu-devel] [RFC PATCH 08/14] KVM-test: Add a subtest of nic promisc Amos Kong
2010-07-28 21:35 ` [Qemu-devel] " Lucas Meneghel Rodrigues
2010-08-11 1:34 ` [Qemu-devel] Re: [Autotest] " Amos Kong
2010-07-20 1:36 ` [Qemu-devel] [RFC PATCH 09/14] KVM-test: Add a subtest of multicast Amos Kong
2010-07-28 21:55 ` Lucas Meneghel Rodrigues
2010-07-20 1:36 ` [Qemu-devel] [RFC PATCH 10/14] KVM-test: Add a subtest of pxe Amos Kong
2010-07-28 22:07 ` Lucas Meneghel Rodrigues
2010-08-10 6:11 ` Amos Kong
2010-07-20 1:36 ` [Qemu-devel] [RFC PATCH 11/14] KVM-test: Add a subtest of changing mac address Amos Kong
2010-07-28 22:30 ` Lucas Meneghel Rodrigues
2010-07-20 1:36 ` [Qemu-devel] [RFC PATCH 12/14] KVM-test: Add a subtest of netperf Amos Kong
2010-07-30 16:32 ` Lucas Meneghel Rodrigues
2010-07-20 1:36 ` [Qemu-devel] [RFC PATCH 13/14] KVM-test: Improve vlan subtest Amos Kong
2010-07-20 1:36 ` [Qemu-devel] [RFC PATCH 14/14] KVM-test: Add subtest of testing offload by ethtool Amos Kong
2010-08-02 19:10 ` [Qemu-devel] " Lucas Meneghel Rodrigues
2010-08-10 7:07 ` [Qemu-devel] Re: [Autotest] " Amos Kong
2010-07-20 12:12 ` [Qemu-devel] Re: [Autotest][RFC PATCH 00/14] Patchset of network related subtests Lucas Meneghel Rodrigues
2010-08-02 20:58 ` Lucas Meneghel Rodrigues
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1280241367.2637.85.camel@freedom \
--to=lmr@redhat.com \
--cc=akong@redhat.com \
--cc=autotest@test.kernel.org \
--cc=kvm@vger.kernel.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).