summaryrefslogtreecommitdiff
path: root/rdiff-backup/testing
diff options
context:
space:
mode:
authorben <ben@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109>2002-05-25 18:54:30 +0000
committerben <ben@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109>2002-05-25 18:54:30 +0000
commit7a82871f7b6d25464516dd659f3e98cc56211ff1 (patch)
treef0f6c1d0b040769c759e76eeee355776dd453eb8 /rdiff-backup/testing
parent9b6416eaf5e1691d2e640a5da2a14b4efac38348 (diff)
downloadrdiff-backup-7a82871f7b6d25464516dd659f3e98cc56211ff1.tar.gz
Bugfixed the new statistics stuff
git-svn-id: http://svn.savannah.nongnu.org/svn/rdiff-backup/trunk@108 2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109
Diffstat (limited to 'rdiff-backup/testing')
-rw-r--r--rdiff-backup/testing/commontest.py11
-rw-r--r--rdiff-backup/testing/finaltest.py2
-rw-r--r--rdiff-backup/testing/incrementtest.py37
-rw-r--r--rdiff-backup/testing/regressiontest.py25
-rw-r--r--rdiff-backup/testing/statisticstest.py3
5 files changed, 56 insertions, 22 deletions
diff --git a/rdiff-backup/testing/commontest.py b/rdiff-backup/testing/commontest.py
index 40acc2d..de897bb 100644
--- a/rdiff-backup/testing/commontest.py
+++ b/rdiff-backup/testing/commontest.py
@@ -82,7 +82,7 @@ def InternalBackup(source_local, dest_local, src_dir, dest_dir,
_get_main().cleanup()
def InternalMirror(source_local, dest_local, src_dir, dest_dir,
- checkpointing = None):
+ write_data = None):
"""Mirror src to dest internally, like InternalBackup"""
remote_schema = '%s'
@@ -97,15 +97,18 @@ def InternalMirror(source_local, dest_local, src_dir, dest_dir,
_get_main().misc_setup([rpin, rpout])
_get_main().backup_init_select(rpin, rpout)
if not rpout.lstat(): rpout.mkdir()
- if checkpointing: # use rdiff-backup-data dir to checkpoint
+ if write_data: # use rdiff-backup-data dir to checkpoint
data_dir = rpout.append("rdiff-backup-data")
if not data_dir.lstat(): data_dir.mkdir()
SetConnections.UpdateGlobal('rbdir', data_dir)
else: # just use root directory to hold checkpoints
SetConnections.UpdateGlobal('rbdir', rpout)
SetConnections.BackupInitConnections(rpin.conn, rpout.conn)
- SaveState.init_filenames(None)
- HighLevel.Mirror(rpin, rpout, checkpointing, None, write_finaldata = None)
+
+ if write_data:
+ SaveState.init_filenames()
+ HighLevel.Mirror(rpin, rpout, Globals.rbdir.append("increments"))
+ else: HighLevel.Mirror(rpin, rpout)
_get_main().cleanup()
def InternalRestore(mirror_local, dest_local, mirror_dir, dest_dir, time):
diff --git a/rdiff-backup/testing/finaltest.py b/rdiff-backup/testing/finaltest.py
index add827f..bf293dc 100644
--- a/rdiff-backup/testing/finaltest.py
+++ b/rdiff-backup/testing/finaltest.py
@@ -150,7 +150,7 @@ class PathSetter(unittest.TestCase):
assert len(self.getinc_paths("nochange.",
"testfiles/output/rdiff-backup-data/increments")) == 0
assert len(self.getinc_paths("",
- "testfiles/output/rdiff-backup-data/increments/nochange")) == 0
+ "testfiles/output/rdiff-backup-data/increments/nochange")) == 1
def getinc_paths(self, basename, directory):
"""Return increment.______.dir paths"""
diff --git a/rdiff-backup/testing/incrementtest.py b/rdiff-backup/testing/incrementtest.py
index 5df1749..8c75ff7 100644
--- a/rdiff-backup/testing/incrementtest.py
+++ b/rdiff-backup/testing/incrementtest.py
@@ -164,6 +164,23 @@ class inctest(unittest.TestCase):
class inctest2(unittest.TestCase):
"""Like inctest but contains more elaborate tests"""
+ def stats_check_initial(self, s):
+ """Make sure stats object s compatible with initial mirroring
+
+ A lot of the off by one stuff is because the root directory
+ exists in the below examples.
+
+ """
+ assert s.MirrorFiles == 1 or s.MirrorFiles == 0
+ assert s.MirrorFileSize < 20000
+ assert s.NewFiles <= s.SourceFiles <= s.NewFiles + 1
+ assert s.NewFileSize <= s.SourceFileSize <= s.NewFileSize + 20000
+ assert s.ChangedFiles == 1 or s.ChangedFiles == 0
+ assert s.ChangedSourceSize < 20000
+ assert s.ChangedMirrorSize < 20000
+ assert s.DeletedFiles == s.DeletedFileSize == 0
+ assert s.IncrementFileSize == 0
+
def testStatistics(self):
"""Test the writing of statistics
@@ -181,8 +198,13 @@ class inctest2(unittest.TestCase):
incs = Restore.get_inclist(inc_base.append("subdir").
append("directory_statistics"))
- assert len(incs) == 1
- subdir_stats = StatsObj().read_stats_from_rp(incs[0])
+ assert len(incs) == 2
+ s1 = StatsObj().read_stats_from_rp(incs[0]) # initial mirror stats
+ assert s1.SourceFiles == 2
+ assert 400000 < s1.SourceFileSize < 420000
+ self.stats_check_initial(s1)
+
+ subdir_stats = StatsObj().read_stats_from_rp(incs[1]) # increment stats
assert subdir_stats.SourceFiles == 2
assert 400000 < subdir_stats.SourceFileSize < 420000
assert subdir_stats.MirrorFiles == 2
@@ -195,8 +217,13 @@ class inctest2(unittest.TestCase):
assert 10 < subdir_stats.IncrementFileSize < 20000
incs = Restore.get_inclist(inc_base.append("directory_statistics"))
- assert len(incs) == 1
- root_stats = StatsObj().read_stats_from_rp(incs[0])
+ assert len(incs) == 2
+ s2 = StatsObj().read_stats_from_rp(incs[0])
+ assert s2.SourceFiles == 7
+ assert 700000 < s2.SourceFileSize < 750000
+ self.stats_check_initial(s2)
+
+ root_stats = StatsObj().read_stats_from_rp(incs[1])
assert root_stats.SourceFiles == 7
assert 550000 < root_stats.SourceFileSize < 570000
assert root_stats.MirrorFiles == 7
@@ -208,6 +235,6 @@ class inctest2(unittest.TestCase):
assert 3 <= root_stats.ChangedFiles <= 4, root_stats.ChangedFiles
assert 450000 < root_stats.ChangedSourceSize < 470000
assert 400000 < root_stats.ChangedMirrorSize < 420000
- assert 10 < subdir_stats.IncrementtFileSize < 30000
+ assert 10 < subdir_stats.IncrementFileSize < 30000
if __name__ == '__main__': unittest.main()
diff --git a/rdiff-backup/testing/regressiontest.py b/rdiff-backup/testing/regressiontest.py
index 62f884d..1a486d7 100644
--- a/rdiff-backup/testing/regressiontest.py
+++ b/rdiff-backup/testing/regressiontest.py
@@ -191,7 +191,7 @@ class IncrementTest2(PathSetter):
def runtest(self):
"""After setting connections, etc., run actual test using this"""
Time.setcurtime()
- SaveState.init_filenames(1)
+ SaveState.init_filenames()
_get_main().backup_init_select(Local.inc1rp, Local.rpout)
HighLevel.Mirror(self.inc1rp, self.rpout)
@@ -295,7 +295,7 @@ class MirrorTest(PathSetter):
"Test mirroring a directory that has no permissions"
self.setPathnames(None, None, None, None)
Time.setcurtime()
- SaveState.init_filenames(None)
+ SaveState.init_filenames()
self.Mirror(self.noperms, self.noperms_out, None)
# Can't compare because we don't have the permissions to do it right
#assert CompareRecursive(Local.noperms, Local.noperms_out)
@@ -304,8 +304,8 @@ class MirrorTest(PathSetter):
"No permissions mirroring (remote)"
self.setPathnames('test1', '../', 'test2/tmp', '../../')
Time.setcurtime()
- SaveState.init_filenames(None)
- self.Mirror(self.noperms, self.noperms_out, checkpoint=None)
+ SaveState.init_filenames()
+ self.Mirror(self.noperms, self.noperms_out, None)
#assert CompareRecursive(Local.noperms, Local.noperms_out)
def testPermSkipLocal(self):
@@ -313,8 +313,8 @@ class MirrorTest(PathSetter):
self.setPathnames(None, None, None, None)
Globals.change_source_perms = None
Time.setcurtime()
- SaveState.init_filenames(None)
- self.Mirror(self.one_unreadable, self.one_unreadable_out, checkpoint=None)
+ SaveState.init_filenames()
+ self.Mirror(self.one_unreadable, self.one_unreadable_out)
Globals.change_source_perms = 1
self.Mirror(self.one_unreadable, self.one_unreadable_out)
# Could add test, but for now just make sure it doesn't exit
@@ -324,7 +324,7 @@ class MirrorTest(PathSetter):
self.setPathnames('test1', '../', 'test2/tmp', '../../')
Globals.change_source_perms = None
Time.setcurtime()
- SaveState.init_filenames(None)
+ SaveState.init_filenames()
self.Mirror(self.one_unreadable, self.one_unreadable_out)
Globals.change_source_perms = 1
self.Mirror(self.one_unreadable, self.one_unreadable_out)
@@ -394,7 +394,7 @@ class MirrorTest(PathSetter):
def runtest(self):
Time.setcurtime()
- SaveState.init_filenames(None)
+ SaveState.init_filenames()
assert self.rbdir.lstat()
self.Mirror(self.inc1rp, self.rpout)
assert CompareRecursive(Local.inc1rp, Local.rpout)
@@ -409,7 +409,7 @@ class MirrorTest(PathSetter):
self.reset_rps()
Time.setcurtime()
- SaveState.init_filenames(None)
+ SaveState.init_filenames()
self.Mirror(self.inc1rp, self.rpout)
#RPath.copy_attribs(self.inc1rp, self.rpout)
assert CompareRecursive(Local.inc1rp, Local.rpout)
@@ -417,10 +417,13 @@ class MirrorTest(PathSetter):
self.Mirror(self.inc2rp, self.rpout)
assert CompareRecursive(Local.inc2rp, Local.rpout)
- def Mirror(self, rpin, rpout, checkpoint = 1):
+ def Mirror(self, rpin, rpout, write_increments = 1):
"""Like HighLevel.Mirror, but run misc_setup first"""
_get_main().misc_setup([rpin, rpout])
_get_main().backup_init_select(rpin, rpout)
- HighLevel.Mirror(rpin, rpout, checkpoint)
+ if write_increments:
+ HighLevel.Mirror(rpin, rpout,
+ rpout.append_path("rdiff-backup-data/increments"))
+ else: HighLevel.Mirror(rpin, rpout)
if __name__ == "__main__": unittest.main()
diff --git a/rdiff-backup/testing/statisticstest.py b/rdiff-backup/testing/statisticstest.py
index d32326f..f18832d 100644
--- a/rdiff-backup/testing/statisticstest.py
+++ b/rdiff-backup/testing/statisticstest.py
@@ -50,7 +50,8 @@ DeletedFileSize 6
ChangedFiles 7
ChangedSourceSize 8
ChangedMirrorSize 9
-IncrementFileSize 10""", "'%s'" % stats_string
+IncrementFileSize 10
+""", "'%s'" % stats_string
def test_init_stats(self):
"""Test setting stat object from string"""