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()' """
#
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
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
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
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
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()
#
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
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
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
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()
#
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
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
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
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
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()
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.
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)