2727import random
2828import itertools
2929import hashlib
30+ import struct
3031import sys
3132import os
3233from bmaptools import BmapHelpers , BmapCopy , TransRead
@@ -43,7 +44,7 @@ def _create_random_sparse_file(file_obj, size):
4344
4445 file_obj .truncate (size )
4546 block_size = BmapHelpers .get_block_size (file_obj )
46- blocks_cnt = (size + block_size - 1 ) / block_size
47+ blocks_cnt = (size + block_size - 1 ) // block_size
4748
4849 def process_block (block ):
4950 """
@@ -60,17 +61,16 @@ def process_block(block):
6061 write = random .randint (1 , block_size - seek )
6162 assert seek + write <= block_size
6263 file_obj .seek (block * block_size + seek )
63- file_obj .write (chr (random .getrandbits (8 )) * write )
64-
64+ file_obj .write (struct .pack ("=B" , random .getrandbits (8 )) * write )
6565 return map_the_block
6666
6767 mapped = []
6868 unmapped = []
69- iterator = xrange (0 , blocks_cnt )
69+ iterator = range (0 , blocks_cnt )
7070 for was_mapped , group in itertools .groupby (iterator , process_block ):
7171 # Start of a mapped region or a hole. Find the last element in the
7272 # group.
73- first = group . next ()
73+ first = next (group )
7474 last = first
7575 for last in group :
7676 pass
@@ -98,7 +98,8 @@ def _create_random_file(file_obj, size):
9898 if written + chunk_size > size :
9999 chunk_size = size - written
100100
101- file_obj .write (chr (random .getrandbits (8 )) * chunk_size )
101+ file_obj .write (struct .pack ("=B" , random .getrandbits (8 )) * chunk_size )
102+
102103 written += chunk_size
103104
104105 file_obj .flush ()
@@ -161,13 +162,13 @@ def generate_test_files(max_size=4 * 1024 * 1024, directory=None, delete=True):
161162 file_obj .close ()
162163
163164 # And 10 holes of random size
164- for i in xrange (10 ):
165+ for i in range (10 ):
165166 size = random .randint (1 , max_size )
166167 file_obj = tempfile .NamedTemporaryFile ("wb+" , suffix = ".img" ,
167168 delete = delete , dir = directory ,
168169 prefix = "rand_hole_%d_" % i )
169170 file_obj .truncate (size )
170- blocks_cnt = (size + block_size - 1 ) / block_size
171+ blocks_cnt = (size + block_size - 1 ) // block_size
171172 yield (file_obj , size , [], [(0 , blocks_cnt - 1 )])
172173 file_obj .close ()
173174
@@ -200,7 +201,7 @@ def generate_test_files(max_size=4 * 1024 * 1024, directory=None, delete=True):
200201 file_obj .close ()
201202
202203 # And 10 files of random size
203- for i in xrange (10 ):
204+ for i in range (10 ):
204205 size = random .randint (1 , max_size )
205206 file_obj = tempfile .NamedTemporaryFile ("wb+" , suffix = ".img" ,
206207 delete = delete , dir = directory ,
@@ -246,13 +247,13 @@ def generate_test_files(max_size=4 * 1024 * 1024, directory=None, delete=True):
246247 file_obj .close ()
247248
248249 # And 10 mapped files of random size
249- for i in xrange (10 ):
250+ for i in range (10 ):
250251 size = random .randint (1 , max_size )
251252 file_obj = tempfile .NamedTemporaryFile ("wb+" , suffix = ".img" ,
252253 delete = delete , dir = directory ,
253254 prefix = "rand_mapped_%d_" % i )
254255 _create_random_file (file_obj , size )
255- blocks_cnt = (size + block_size - 1 ) / block_size
256+ blocks_cnt = (size + block_size - 1 ) // block_size
256257 yield (file_obj , size , [(0 , blocks_cnt - 1 )], [])
257258 file_obj .close ()
258259
@@ -282,16 +283,15 @@ def copy_and_verify_image(image, dest, bmap, image_chksum, image_size):
282283 """
283284
284285 f_image = TransRead .TransRead (image )
285- f_dest = open (dest , "w+" )
286+ f_dest = open (dest , "w+b " )
286287 if (bmap ):
287288 f_bmap = open (bmap , "r" )
288289 else :
289290 f_bmap = None
290291
291292 writer = BmapCopy .BmapCopy (f_image , f_dest , f_bmap , image_size )
292293 # Randomly decide whether we want the progress bar or not
293- if bool (random .getrandbits (1 )) and hasattr (sys .stdout , 'fileno' ) and \
294- os .isatty (sys .stdout .fileno ()):
294+ if bool (random .getrandbits (1 )) and sys .stdout .isatty ():
295295 writer .set_progress_indicator (sys .stdout , None )
296296 writer .copy (bool (random .getrandbits (1 )), bool (random .getrandbits (1 )))
297297
0 commit comments