[Autotest] [KVM-AUTOTEST PATCH v2] KVM test: migration_with_file_transfer: verify transfer correctness

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux