diff options
author | bescoto <bescoto@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109> | 2003-07-22 09:07:43 +0000 |
---|---|---|
committer | bescoto <bescoto@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109> | 2003-07-22 09:07:43 +0000 |
commit | 3617a1f5be2c8c90d2e3c98a642279c58981c3d7 (patch) | |
tree | 021f63aa57009685d9c28b21841f89c6c505cb9d /rdiff-backup/testing/librsynctest.py | |
parent | bd7cbc611212f42202889e33e1672b25852efa24 (diff) | |
download | rdiff-backup-3617a1f5be2c8c90d2e3c98a642279c58981c3d7.tar.gz |
Now choose blocksize based on size of file
git-svn-id: http://svn.savannah.nongnu.org/svn/rdiff-backup/trunk@353 2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109
Diffstat (limited to 'rdiff-backup/testing/librsynctest.py')
-rw-r--r-- | rdiff-backup/testing/librsynctest.py | 52 |
1 files changed, 34 insertions, 18 deletions
diff --git a/rdiff-backup/testing/librsynctest.py b/rdiff-backup/testing/librsynctest.py index 54dc4dd..2c56a8a 100644 --- a/rdiff-backup/testing/librsynctest.py +++ b/rdiff-backup/testing/librsynctest.py @@ -1,16 +1,22 @@ import unittest, random from commontest import * -from rdiff_backup import librsync - -def MakeRandomFile(path): - """Writes a random file of length between 10000 and 100000""" - fp = open(path, "w") - randseq = [] - for i in xrange(random.randrange(5000, 30000)): - randseq.append(chr(random.randrange(256))) - fp.write("".join(randseq)) - fp.close() +from rdiff_backup import librsync, log + +def MakeRandomFile(path, length = None): + """Writes a random file of given length, or random len if unspecified""" + if not length: length = random.randrange(5000, 100000) + fp = open(path, "wb") + fp_random = open('/dev/urandom', 'rb') + # Old slow way, may still be of use on systems without /dev/urandom + #randseq = [] + #for i in xrange(random.randrange(5000, 30000)): + # randseq.append(chr(random.randrange(256))) + #fp.write("".join(randseq)) + fp.write(fp_random.read(length)) + + fp.close() + fp_random.close() class LibrsyncTest(unittest.TestCase): """Test various librsync wrapper functions""" @@ -20,23 +26,33 @@ class LibrsyncTest(unittest.TestCase): sig = RPath(Globals.local_connection, "testfiles/signature") sig2 = RPath(Globals.local_connection, "testfiles/signature2") delta = RPath(Globals.local_connection, "testfiles/delta") - def testSigFile(self): - """Make sure SigFile generates same data as rdiff""" - for i in range(5): - MakeRandomFile(self.basis.path) - self.sig.delete() - assert not os.system("rdiff signature %s %s" % - (self.basis.path, self.sig.path)) + def sig_file_test_helper(self, blocksize, iterations, file_len = None): + """Compare SigFile output to rdiff output at given blocksize""" + for i in range(iterations): + MakeRandomFile(self.basis.path, file_len) + if self.sig.lstat(): self.sig.delete() + assert not os.system("rdiff -b %s signature %s %s" % + (blocksize, self.basis.path, self.sig.path)) fp = self.sig.open("rb") rdiff_sig = fp.read() fp.close() - sf = librsync.SigFile(self.basis.open("rb")) + sf = librsync.SigFile(self.basis.open("rb"), blocksize) librsync_sig = sf.read() sf.close() assert rdiff_sig == librsync_sig, \ (len(rdiff_sig), len(librsync_sig)) + + def testSigFile(self): + """Make sure SigFile generates same data as rdiff, blocksize 512""" + self.sig_file_test_helper(512, 5) + + def testSigFile2(self): + """Test SigFile like above, but try various blocksize""" + self.sig_file_test_helper(2048, 1, 60000) + self.sig_file_test_helper(7168, 1, 6000) + self.sig_file_test_helper(204800, 1, 40*1024*1024) def testSigGenerator(self): """Test SigGenerator, make sure it's same as SigFile""" |