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. > Signed-off-by: Michael Goldish <mgoldish@xxxxxxxxxx> > --- > .../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@xxxxxxxxxxxxxxx > 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@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html