Use random generated file name in order to be called in parallel. Also simply
some codes.

Signed-off-by: Jason Wang <jasow...@redhat.com>
---
 client/tests/kvm/tests/file_transfer.py |   39 +++++++++++++------------------
 1 files changed, 16 insertions(+), 23 deletions(-)

diff --git a/client/tests/kvm/tests/file_transfer.py 
b/client/tests/kvm/tests/file_transfer.py
index fe70b37..6a5bfeb 100644
--- a/client/tests/kvm/tests/file_transfer.py
+++ b/client/tests/kvm/tests/file_transfer.py
@@ -1,7 +1,7 @@
 import logging, time, os
 from autotest_lib.client.common_lib import error
 from autotest_lib.client.bin import utils
-
+import kvm_utils
 
 def run_file_transfer(test, params, env):
     """
@@ -30,11 +30,14 @@ def run_file_transfer(test, params, env):
     clean_cmd = params.get("clean_cmd", "rm -f")
     filesize = int(params.get("filesize", 4000))
     count = int(filesize / 10)
-    if count == 0:
-        count = 1
-    cmd = "dd if=/dev/zero of=%s/a.out bs=10M count=%d" % (dir_name,
-                                                           count)
-    guest_path = tmp_dir + "b.out"
+    if count == 0: count = 1
+
+    host_path = os.path.join(dir_name, "tmp-%s" %
+                             kvm_utils.generate_random_string(8))
+    host_path2 = host_path + ".2"
+    cmd = "dd if=/dev/zero of=%s bs=10M count=%d" % (host_path, count)
+    guest_path = tmp_dir + "file_transfer-%s" % \
+        kvm_utils.generate_random_string(8)
 
     try:
         logging.info("Creating %dMB file on host", filesize)
@@ -44,8 +47,7 @@ def run_file_transfer(test, params, env):
             logging.info("Transfering file host -> guest, timeout: %ss",
                          transfer_timeout)
             t_begin = time.time()
-            vm.copy_files_to("%s/a.out" % dir_name, guest_path,
-                             timeout=transfer_timeout)
+            vm.copy_files_to(host_path, guest_path, timeout=transfer_timeout)
             t_end = time.time()
             throughput = filesize / (t_end - t_begin)
             logging.info("File transfer host -> guest succeed, "
@@ -54,8 +56,7 @@ def run_file_transfer(test, params, env):
             logging.info("Transfering file guest -> host, timeout: %ss",
                          transfer_timeout)
             t_begin = time.time()
-            vm.copy_files_from(guest_path, "%s/c.out" % dir_name,
-                               timeout=transfer_timeout)
+            vm.copy_files_from(guest_path, host_path2, 
timeout=transfer_timeout)
             t_end = time.time()
             throughput = filesize / (t_end - t_begin)
             logging.info("File transfer guest -> host succeed, "
@@ -64,26 +65,18 @@ def run_file_transfer(test, params, env):
             raise error.TestError("Unknown test file transfer mode %s" %
                                   transfer_type)
 
-        for f in ['a.out', 'c.out']:
-            p = os.path.join(dir_name, f)
-            size = os.path.getsize(p)
-            logging.debug('Size of %s: %sB', f, size)
-
-        md5_orig = utils.hash_file("%s/a.out" % dir_name, method="md5")
-        md5_new = utils.hash_file("%s/c.out" % dir_name, method="md5")
-
-        if md5_orig != md5_new:
+        if utils.hash_file(host_path, method="md5") != \
+                utils.hash_file(host_path2, method="md5"):
             raise error.TestFail("File changed after transfer host -> guest "
                                  "and guest -> host")
 
     finally:
         logging.info('Cleaning temp file on guest')
-        clean_cmd += " %s" % guest_path
-        session.cmd(clean_cmd)
+        session.cmd("rm -rf %s" % guest_path)
         logging.info('Cleaning temp files on host')
         try:
-            os.remove('%s/a.out' % dir_name)
-            os.remove('%s/c.out' % dir_name)
+            os.remove(host_path)
+            os.remove(host_path2)
         except OSError:
             pass
         session.close()

_______________________________________________
Autotest mailing list
Autotest@test.kernel.org
http://test.kernel.org/cgi-bin/mailman/listinfo/autotest

Reply via email to