From: Christian Herdtweck Date: Thu, 9 Jun 2016 09:09:41 +0000 (+0200) Subject: adjust file-size-estimation unittest; add an actual test to unittest X-Git-Tag: v2.2~35^2~31 X-Git-Url: http://developer.intra2net.com/git/?a=commitdiff_plain;h=127bad90c5cc8e90103a9ce60faa750375bcb484;p=python-delta-tar adjust file-size-estimation unittest; add an actual test to unittest --- diff --git a/testing/test_multivol.py b/testing/test_multivol.py index de7eaed..9896295 100644 --- a/testing/test_multivol.py +++ b/testing/test_multivol.py @@ -174,7 +174,7 @@ class MultivolGnuFormatTest(BaseTest): # create test files of different sizes size_factor = 4 - n_sizes = 14 # 1,4,16,64...,1 MiB=2**20=4**10, 4MiB, 16MiB, 64MiB + n_sizes = 14 # 1,4,16,64,256,1KiB=4**5 ... 1MiB=4**10 ... 1GiB=4**15 next_size = 1 sizes = [] file_names = [] @@ -191,22 +191,23 @@ class MultivolGnuFormatTest(BaseTest): for mode in 'w|gz', 'w|bz2', 'w|xz', 'w#gz', 'w#gz.aes128', \ 'w#gz.aes256', 'w#aes128': tar_file_name = "size_test.tar." + mode[2:] - for size_number in range(1,n_sizes): - for order in 1,-1: + for size_number in range(4,n_sizes): + for order in 1,-1: # small files first or big files first tarobj = TarFile.open(tar_file_name, mode=mode, format=self.tarfile_format, password='test') for file_name in file_names[:size_number][::order]: tarobj.add(file_name) - estimate = tarobj.fileobj.get_file_size() + estimate = tarobj.fileobj.estim_file_size() tarobj.close() - estimate_post = tarobj.fileobj.get_file_size() + estimate_post = tarobj.fileobj.estim_file_size() actual_size = os.stat(tar_file_name).st_size err = abs(actual_size - estimate) - print('mode {}, {} files: estim={}, true={}, post={}, err={}' - .format(mode, size_number, estimate, actual_size, - estimate_post, err)) + print('mode {:>11s}, {:2} files (up to size {:9}): ' + 'estim={:9}, true={:9}, post={:9}, err={:5}' + .format(mode, size_number, sizes[size_number], + estimate, actual_size, estimate_post, err)) os.unlink(tar_file_name) if err > max_err: max_err = err @@ -215,6 +216,8 @@ class MultivolGnuFormatTest(BaseTest): max_err_post = err print('max err is {}, post={}'.format(max_err, max_err_post)) + assert max_err < 13*1024 + assert max_err_post == 0 def test_multivol_compress(self): ''' check creation of multiple volume when compression is on '''