From: Michael Goldish <mgoldish@redhat.com>
To: Jason Wang <jasowang@redhat.com>
Cc: autotest@test.kernel.org, kvm@vger.kernel.org
Subject: Re: [KVM-AUTOTEST PATCH v2] KVM test: migration_with_file_transfer: verify transfer correctness
Date: Tue, 28 Dec 2010 16:08:07 +0200 [thread overview]
Message-ID: <4D19EF47.6090504@redhat.com> (raw)
In-Reply-To: <19737.59083.928209.704387@gargle.gargle.HOWL>
On 12/28/2010 03:31 PM, Jason Wang wrote:
> Michael Goldish writes:
> > On 12/28/2010 02:38 PM, Jason Wang wrote:
> > > Michael Goldish writes:
> > > > After the transfer, copy the file back from the guest to the host and make sure
> > > > the returned file is identical to the one sent to the guest.
> > > >
> > > > Changes from v1:
> > > > - hash_file() is in autotest_lib.client.bin.utils, so import that as
> > > > client_utils.
> > > > - Pass host_path_returned (not host_path) to copy_files_from().
> > > >
> > >
> > > Looks good to me.
> >
> > BTW, not sure if you've ever noticed, but this test fails consistently
> > on a very recent qemu-kvm: the returned file's MD5 hash always differs
> > from the original one. Either I'm doing something wrong or there's a
> > bug in qemu-kvm.
> >
>
> Not notice yet and I would have a look at this, which kind of model did you use?
rtl8139 on Fedora 12 64. I haven't tried virtio or Windows yet.
> > > > Signed-off-by: Michael Goldish <mgoldish@redhat.com>
> > > > ---
> > > > .../kvm/tests/migration_with_file_transfer.py | 37 +++++++++++++++++---
> > > > 1 files changed, 32 insertions(+), 5 deletions(-)
> > > >
> > > > diff --git a/client/tests/kvm/tests/migration_with_file_transfer.py b/client/tests/kvm/tests/migration_with_file_transfer.py
> > > > index 73e70b9..d311350 100644
> > > > --- a/client/tests/kvm/tests/migration_with_file_transfer.py
> > > > +++ b/client/tests/kvm/tests/migration_with_file_transfer.py
> > > > @@ -1,5 +1,6 @@
> > > > import logging, time, os
> > > > from autotest_lib.client.common_lib import utils, error
> > > > +from autotest_lib.client.bin import utils as client_utils
> > > > import kvm_subprocess, kvm_test_utils, kvm_utils
> > > >
> > > >
> > > > @@ -35,15 +36,16 @@ def run_migration_with_file_transfer(test, params, env):
> > > > (vm.name, address,
> > > > kvm_utils.generate_random_string(4)))
> > > > host_path = "/tmp/file-%s" % kvm_utils.generate_random_string(6)
> > > > + host_path_returned = "%s-returned" % host_path
> > > > guest_path = params.get("guest_path", "/tmp/file")
> > > > - file_size = params.get("file_size", "1000")
> > > > + file_size = params.get("file_size", "500")
> > > > transfer_timeout = int(params.get("transfer_timeout", "240"))
> > > >
> > > > try:
> > > > - utils.run("dd if=/dev/zero of=%s bs=1M count=%s" % (host_path,
> > > > - file_size))
> > > > + utils.run("dd if=/dev/urandom of=%s bs=1M count=%s" % (host_path,
> > > > + file_size))
> > > >
> > > > - # Transfer file from host to guest in the backgroud
> > > > + logging.info("Transferring file from host to guest")
> > > > bg = kvm_utils.Thread(kvm_utils.copy_files_to,
> > > > (address, client, username, password, port,
> > > > host_path, guest_path, log_filename,
> > > > @@ -57,9 +59,34 @@ def run_migration_with_file_transfer(test, params, env):
> > > > finally:
> > > > # bg.join() returns the value returned by copy_files_to()
> > > > if not bg.join():
> > > > - raise error.TestFail("File transfer failed")
> > > > + raise error.TestFail("File transfer from host to guest failed")
> > > > +
> > > > + logging.info("Transferring file back from guest to host")
> > > > + bg = kvm_utils.Thread(kvm_utils.copy_files_from,
> > > > + (address, client, username, password, port,
> > > > + host_path_returned, guest_path, log_filename,
> > > > + transfer_timeout))
> > > > + bg.start()
> > > > + try:
> > > > + while bg.is_alive():
> > > > + logging.info("File transfer not ended, starting a round of "
> > > > + "migration...")
> > > > + vm = kvm_test_utils.migrate(vm, env, mig_timeout, mig_protocol)
> > > > + finally:
> > > > + if not bg.join():
> > > > + raise error.TestFail("File transfer from guest to host failed")
> > > > +
> > > > + # Make sure the returned file is indentical to the original one
> > > > + orig_hash = client_utils.hash_file(host_path)
> > > > + returned_hash = client_utils.hash_file(host_path_returned)
> > > > + if orig_hash != returned_hash:
> > > > + raise error.TestFail("Returned file hash (%s) differs from "
> > > > + "original one (%s)" % (returned_hash,
> > > > + orig_hash))
> > > >
> > > > finally:
> > > > session.close()
> > > > if os.path.isfile(host_path):
> > > > os.remove(host_path)
> > > > + if os.path.isfile(host_path_returned):
> > > > + os.remove(host_path_returned)
> > > > --
> > > > 1.7.3.4
> > > >
> > > > _______________________________________________
> > > > Autotest mailing list
> > > > Autotest@test.kernel.org
> > > > http://test.kernel.org/cgi-bin/mailman/listinfo/autotest
> >
> --
> To unsubscribe from this list: send the line "unsubscribe kvm" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
prev parent reply other threads:[~2010-12-28 14:08 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-12-27 22:54 [KVM-AUTOTEST PATCH v2] KVM test: migration_with_file_transfer: verify transfer correctness Michael Goldish
2010-12-28 12:38 ` [Autotest] " Jason Wang
2010-12-28 12:55 ` Michael Goldish
2010-12-28 13:31 ` Jason Wang
2010-12-28 14:08 ` Michael Goldish [this message]
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=4D19EF47.6090504@redhat.com \
--to=mgoldish@redhat.com \
--cc=autotest@test.kernel.org \
--cc=jasowang@redhat.com \
--cc=kvm@vger.kernel.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