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. Signed-off-by: Michael Goldish <mgoldish@xxxxxxxxxx> --- .../kvm/tests/migration_with_file_transfer.py | 34 +++++++++++++++++--- 1 files changed, 29 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..6a2ab06 100644 --- a/client/tests/kvm/tests/migration_with_file_transfer.py +++ b/client/tests/kvm/tests/migration_with_file_transfer.py @@ -35,15 +35,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 +58,32 @@ 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, 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 = utils.hash_file(host_path) + returned_hash = utils.hash_file(host_path_returned) + if orig_hash != returned_hash: + raise error.TestFail("Returned file differs from original one") 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.3 -- 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