diff options
author | Lars Wirzenius <liw@liw.fi> | 2011-01-02 13:03:46 +0000 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2011-01-02 13:03:46 +0000 |
commit | bb4089be305a86216b63c11f508445b129a57716 (patch) | |
tree | c96840296d68d5d2805dea6bf4b5fff6070e2271 /blackboxtest | |
parent | 7e626a7c7a4387577b39e13d1fdeb2688e0d27ab (diff) | |
download | genbackupdata-bb4089be305a86216b63c11f508445b129a57716.tar.gz |
Remove code.
It is going to get rewritten. It does not pass even simple black box
testing at the moment.
Diffstat (limited to 'blackboxtest')
-rwxr-xr-x | blackboxtest | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/blackboxtest b/blackboxtest index b1d3ccd..e54519e 100755 --- a/blackboxtest +++ b/blackboxtest @@ -20,6 +20,7 @@ '''Run some black box tests for genbackupdata.''' +import hashlib import logging import os import random @@ -166,6 +167,33 @@ class GenbackupdataTestCase(unittest.TestCase): size += st.st_size return size + def checksum(self, pathname): + '''Return MD5 checksum for contents of a file.''' + s = hashlib.new('md5') + f = open(pathname, 'rb') + while True: + data = f.read(64*1024) + if not data: + break + s.update(data) + f.close() + return s.hexdigest() + + def checksums(self, root): + '''Return sorted list of (pathname, checksum) pairs for reg. files.''' + result = [] + prefix = self.path(root) + os.sep + for dirname, subdirs, filenames in os.walk(self.path(root)): + for filename in filenames: + pathname = self.path(dirname, filename) + st = os.lstat(pathname) + if stat.S_ISREG(st.st_mode): + assert pathname.startswith(prefix) + relative = pathname[len(prefix):] + result.append((relative, self.checksum(pathname))) + result.sort() + return result + def assert_equal_stat_fields(self, filename, stat1, stat2, fieldname): field1 = getattr(stat1, fieldname) field2 = getattr(stat2, fieldname) @@ -241,6 +269,15 @@ class GenbackupdataTests(GenbackupdataTestCase): self.genbackupdata([self.path('data'), '--create=%d' % bytes]) self.assertEqual(self.apparent_size('data'), bytes) + def test_creates_same_data_every_time(self): + size = '10m' # big enough to allow both ample text and binary data + self.genbackupdata([self.path('data1'), '--create', size]) + self.genbackupdata([self.path('data2'), '--create', size]) + sums1 = self.checksums('data1') + sums2 = self.checksums('data2') + self.assertEqual(len(sums1), len(sums2)) + for n in range(1, len(sums1)): + self.assertEqual(sums1[:n], sums2[:n]) if __name__ == '__main__': logging.basicConfig(filename='blackboxtest.log', |