tests: helpers: change generate_test_files's interface a bit
authorArtem Bityutskiy <artem.bityutskiy@intel.com>
Fri, 14 Dec 2012 08:24:34 +0000 (10:24 +0200)
committerArtem Bityutskiy <artem.bityutskiy@intel.com>
Fri, 14 Dec 2012 08:55:28 +0000 (10:55 +0200)
Improve the API of the 'generate_test_files()' helper and teach it to return
file size. This allow testing the 'BmapCopy' module a bit better in the next
patch.

Also propagate the size to the 'do_test()' method of the 'test_api_base' test.

Change-Id: Ib20f57bc6120d770d59dec5705f6f5ffae4300ca
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@intel.com>
tests/helpers.py
tests/test_api_base.py
tests/test_fiemap.py

index 3fbe947..80692bb 100644 (file)
@@ -91,8 +91,9 @@ def generate_test_files(max_size = 4 * 1024 * 1024, directory = None,
 
     The generator yields tuples consisting of the following elements:
       1. the test file object
-      2. a list of mapped block ranges, same as 'Fiemap.get_mapped_ranges()'
-      3. a list of unmapped block ranges (holes), same as
+      2. file size in bytes
+      3. a list of mapped block ranges, same as 'Fiemap.get_mapped_ranges()'
+      4. a list of unmapped block ranges (holes), same as
          'Fiemap.get_unmapped_ranges()' """
 
     #
@@ -105,7 +106,7 @@ def generate_test_files(max_size = 4 * 1024 * 1024, directory = None,
                                            suffix = ".img")
     block_size = BmapHelpers.get_block_size(file_obj)
     file_obj.truncate(block_size)
-    yield (file_obj, [], [(0, 0)])
+    yield (file_obj, block_size, [], [(0, 0)])
     file_obj.close()
 
     # A block size + 1 byte hole
@@ -113,7 +114,7 @@ def generate_test_files(max_size = 4 * 1024 * 1024, directory = None,
                                            delete = delete, dir = directory,
                                            suffix = ".img")
     file_obj.truncate(block_size + 1)
-    yield (file_obj, [], [(0, 1)])
+    yield (file_obj, block_size + 1, [], [(0, 1)])
     file_obj.close()
 
     # A block size - 1 byte hole
@@ -121,7 +122,7 @@ def generate_test_files(max_size = 4 * 1024 * 1024, directory = None,
                                            delete = delete, dir = directory,
                                            suffix = ".img")
     file_obj.truncate(block_size - 1)
-    yield (file_obj, [], [(0, 0)])
+    yield (file_obj, block_size - 1, [], [(0, 0)])
     file_obj.close()
 
     # A 1-byte hole
@@ -129,7 +130,7 @@ def generate_test_files(max_size = 4 * 1024 * 1024, directory = None,
                                            delete = delete, dir = directory,
                                            suffix = ".img")
     file_obj.truncate(1)
-    yield (file_obj, [], [(0, 0)])
+    yield (file_obj, 1, [], [(0, 0)])
     file_obj.close()
 
     # And 10 holes of random size
@@ -140,7 +141,7 @@ def generate_test_files(max_size = 4 * 1024 * 1024, directory = None,
                                                prefix = "rand_hole_%d_" % i)
         file_obj.truncate(size)
         blocks_cnt = (size + block_size - 1) / block_size
-        yield (file_obj, [], [(0, blocks_cnt - 1)])
+        yield (file_obj, size, [], [(0, blocks_cnt - 1)])
         file_obj.close()
 
     #
@@ -152,7 +153,7 @@ def generate_test_files(max_size = 4 * 1024 * 1024, directory = None,
                                            delete = delete, dir = directory,
                                            suffix = ".img")
     mapped, unmapped = _create_random_sparse_file(file_obj, max_size)
-    yield (file_obj, mapped, unmapped)
+    yield (file_obj, max_size, mapped, unmapped)
     file_obj.close()
 
     # The maximum size + 1 byte
@@ -160,7 +161,7 @@ def generate_test_files(max_size = 4 * 1024 * 1024, directory = None,
                                            delete = delete, dir = directory,
                                            suffix = ".img")
     mapped, unmapped = _create_random_sparse_file(file_obj, max_size + 1)
-    yield (file_obj, mapped, unmapped)
+    yield (file_obj, max_size + 1, mapped, unmapped)
     file_obj.close()
 
     # The maximum size - 1 byte
@@ -168,7 +169,7 @@ def generate_test_files(max_size = 4 * 1024 * 1024, directory = None,
                                            delete = delete, dir = directory,
                                            suffix = ".img")
     mapped, unmapped = _create_random_sparse_file(file_obj, max_size - 1)
-    yield (file_obj, mapped, unmapped)
+    yield (file_obj, max_size - 1, mapped, unmapped)
     file_obj.close()
 
     # And 10 files of random size
@@ -178,7 +179,7 @@ def generate_test_files(max_size = 4 * 1024 * 1024, directory = None,
                                                delete = delete, dir = directory,
                                                prefix = "sparse_%d_" % i)
         mapped, unmapped = _create_random_sparse_file(file_obj, size)
-        yield (file_obj, mapped, unmapped)
+        yield (file_obj, size, mapped, unmapped)
         file_obj.close()
 
     #
@@ -190,7 +191,7 @@ def generate_test_files(max_size = 4 * 1024 * 1024, directory = None,
                                            delete = delete, dir = directory,
                                            suffix = ".img")
     _create_random_file(file_obj, block_size)
-    yield (file_obj, [(0, 0)], [])
+    yield (file_obj, block_size, [(0, 0)], [])
     file_obj.close()
 
     # A block size + 1 byte file
@@ -198,7 +199,7 @@ def generate_test_files(max_size = 4 * 1024 * 1024, directory = None,
                                            delete = delete, dir = directory,
                                            suffix = ".img")
     _create_random_file(file_obj, block_size + 1)
-    yield (file_obj, [(0, 1)], [])
+    yield (file_obj, block_size + 1, [(0, 1)], [])
     file_obj.close()
 
     # A block size - 1 byte file
@@ -206,7 +207,7 @@ def generate_test_files(max_size = 4 * 1024 * 1024, directory = None,
                                            delete = delete, dir = directory,
                                            suffix = ".img")
     _create_random_file(file_obj, block_size - 1)
-    yield (file_obj, [(0, 0)], [])
+    yield (file_obj, block_size - 1, [(0, 0)], [])
     file_obj.close()
 
     # A 1-byte file
@@ -214,7 +215,7 @@ def generate_test_files(max_size = 4 * 1024 * 1024, directory = None,
                                            delete = delete, dir = directory,
                                            suffix = ".img")
     _create_random_file(file_obj, 1)
-    yield (file_obj, [(0, 0)], [])
+    yield (file_obj, 1, [(0, 0)], [])
     file_obj.close()
 
     # And 10 mapped files of random size
@@ -226,5 +227,5 @@ def generate_test_files(max_size = 4 * 1024 * 1024, directory = None,
         file_obj.truncate(size)
         _create_random_file(file_obj, size)
         blocks_cnt = (size + block_size - 1) / block_size
-        yield (file_obj, [(0, blocks_cnt - 1)], [])
+        yield (file_obj, size, [(0, blocks_cnt - 1)], [])
         file_obj.close()
index 8ff603c..3201f1e 100644 (file)
@@ -117,14 +117,15 @@ def _calculate_sha1(file_obj):
 
     return hash_obj.hexdigest()
 
-def _do_test(f_image, delete = True):
+def _do_test(f_image, image_size, delete = True):
     """" A basic test for the bmap creation and copying functionality. It first
     generates a bmap for file object 'f_image', and then copies the sparse file
     to a different file, and then checks that the original file and the copy
     are identical.
 
-    The 'delete' argument specifies whether the temporary files that this
-    function creates have to be automatically deleted. """
+    The 'image_size' argument is size of the image in bytes. The 'delete'
+    argument specifies whether the temporary files that this function creates
+    have to be automatically deleted. """
 
     # Make sure the temporary files start with the same name as 'f_image' in
     # order to simplify debugging.
@@ -255,5 +256,5 @@ class TestCreateCopy(unittest.TestCase):
 
         iterator = tests.helpers.generate_test_files(delete = delete,
                                                      directory = directory)
-        for f_image, _, _ in iterator:
-            _do_test(f_image, delete = delete)
+        for f_image, size, _, _ in iterator:
+            _do_test(f_image, size, delete = delete)
index 0f27b19..eb013f9 100644 (file)
@@ -112,7 +112,7 @@ class TestCreateCopy(unittest.TestCase):
 
         iterator = tests.helpers.generate_test_files(max_size, directory,
                                                      delete)
-        for f_image, mapped, unmapped in iterator:
+        for f_image, _, mapped, unmapped in iterator:
             _do_test(f_image, mapped, unmapped)
             _do_test(f_image, mapped, unmapped, Fiemap.MIN_BUFFER_SIZE)
             _do_test(f_image, mapped, unmapped, Fiemap.MIN_BUFFER_SIZE * 2)