diff options
author | ben <ben@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109> | 2002-05-11 21:33:34 +0000 |
---|---|---|
committer | ben <ben@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109> | 2002-05-11 21:33:34 +0000 |
commit | 73d24ff28e1561fb000edce42965b439bc04f53b (patch) | |
tree | 929454750af7ae2a48a80fac592afe12b3b39b25 /rdiff-backup/testing/incrementtest.py | |
parent | f6e83fa5b76594ab9dff64ee450087883c16b897 (diff) | |
download | rdiff-backup-73d24ff28e1561fb000edce42965b439bc04f53b.tar.gz |
Various final bug fixes for 0.7.4
git-svn-id: http://svn.savannah.nongnu.org/svn/rdiff-backup/trunk@79 2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109
Diffstat (limited to 'rdiff-backup/testing/incrementtest.py')
-rw-r--r-- | rdiff-backup/testing/incrementtest.py | 74 |
1 files changed, 72 insertions, 2 deletions
diff --git a/rdiff-backup/testing/incrementtest.py b/rdiff-backup/testing/incrementtest.py index e53e532..96d7811 100644 --- a/rdiff-backup/testing/incrementtest.py +++ b/rdiff-backup/testing/incrementtest.py @@ -1,12 +1,12 @@ import unittest, os execfile("commontest.py") -rbexec("increment.py") +rbexec("main.py") lc = Globals.local_connection Globals.change_source_perms = 1 -Log.setverbosity(7) +Log.setverbosity(4) def getrp(ending): return RPath(lc, "testfiles/various_file_types/" + ending) @@ -162,4 +162,74 @@ class inctest(unittest.TestCase): out2.delete() out_gz.delete() +class inctest2(unittest.TestCase): + """Like inctest but contains more elaborate tests""" + def testStatistics(self): + """Test the writing of statistics + + The file sizes are approximate because the size of directories + could change with different file systems... + + """ + Globals.compression = 1 + Myrm("testfiles/output") + InternalBackup(1, 1, "testfiles/stattest1", "testfiles/output") + InternalBackup(1, 1, "testfiles/stattest2", "testfiles/output") + + inc_base = RPath(Globals.local_connection, + "testfiles/output/rdiff-backup-data/increments") + + incs = Restore.get_inclist(inc_base.append("subdir"). + append("directory_statistics")) + assert len(incs) == 1 + subdir_stats = self.parse_statistics(incs[0]) + assert subdir_stats.total_files == 2, subdir_stats.total_files + assert 350000 < subdir_stats.total_file_size < 450000, \ + subdir_stats.total_file_size + assert subdir_stats.changed_files == 2, subdir_stats.changed_files + assert 350000 < subdir_stats.changed_file_size < 450000, \ + subdir_stats.changed_file_size + assert 10 < subdir_stats.increment_file_size < 20000, \ + subdir_stats.increment_file_size + + incs = Restore.get_inclist(inc_base.append("directory_statistics")) + assert len(incs) == 1 + root_stats = self.parse_statistics(incs[0]) + assert root_stats.total_files == 6, root_stats.total_files + assert 650000 < root_stats.total_file_size < 750000, \ + root_stats.total_file_size + assert root_stats.changed_files == 4, root_stats.changed_files + assert 550000 < root_stats.changed_file_size < 650000, \ + root_stats.changed_file_size + assert 10 < root_stats.increment_file_size < 20000, \ + root_stats.increment_file_size + + def parse_statistics(self, statrp): + """Return StatObj from given statrp""" + assert statrp.isincfile() and statrp.getinctype() == "data" + s = StatObj() + fp = statrp.open("r") + for line in fp: + lsplit = line.split() + assert len(lsplit) == 2 + field, num = lsplit[0], long(lsplit[1]) + if field == "TotalFiles": s.total_files = num + elif field == "TotalFileSize": s.total_file_size = num + elif field == "ChangedFiles": s.changed_files = num + elif field == "ChangedFileSize": s.changed_file_size = num + elif field == "IncrementFileSize": s.increment_file_size = num + else: assert None, "Unrecognized field %s" % (field,) + assert not fp.close() + return s + + +class StatObj: + """Just hold various statistics""" + total_files = 0 + total_file_size = 0 + changed_files = 0 + changed_file_size = 0 + increment_file_size = 0 + + if __name__ == '__main__': unittest.main() |