summaryrefslogtreecommitdiff
path: root/rdiff-backup/testing/comparetest.py
diff options
context:
space:
mode:
Diffstat (limited to 'rdiff-backup/testing/comparetest.py')
-rw-r--r--rdiff-backup/testing/comparetest.py102
1 files changed, 102 insertions, 0 deletions
diff --git a/rdiff-backup/testing/comparetest.py b/rdiff-backup/testing/comparetest.py
new file mode 100644
index 0000000..1d0b67d
--- /dev/null
+++ b/rdiff-backup/testing/comparetest.py
@@ -0,0 +1,102 @@
+import unittest
+from commontest import *
+from rdiff_backup import compare
+
+"""Test the compare.py module and overall compare functionality"""
+
+class CompareTest(unittest.TestCase):
+ def setUp(self):
+ Myrm("testfiles/output")
+ rdiff_backup(1, 1, 'testfiles/increment2', 'testfiles/output',
+ current_time = 10000)
+ rdiff_backup(1, 1, 'testfiles/increment3', 'testfiles/output',
+ current_time = 20000)
+
+ def generic_test(self, local, compare_option):
+ """Used for 6 tests below"""
+ rdiff_backup(local, local, 'testfiles/increment3', 'testfiles/output',
+ extra_options = compare_option)
+ ret_val = rdiff_backup(local, local, 'testfiles/increment2',
+ 'testfiles/output', extra_options = compare_option,
+ check_return_val = 0)
+ assert ret_val, ret_val
+ rdiff_backup(local, local, 'testfiles/increment2', 'testfiles/output',
+ extra_options = compare_option + "-at-time 10000")
+ ret_val = rdiff_backup(local, local, 'testfiles/increment3',
+ 'testfiles/output',
+ extra_options = compare_option + "-at-time 10000",
+ check_return_val = 0)
+ assert ret_val, ret_val
+
+ def testBasicLocal(self):
+ """Test basic --compare and --compare-at-time modes"""
+ self.generic_test(1, "--compare")
+
+ def testBasicRemote(self):
+ """Test basic --compare and --compare-at-time modes, both remote"""
+ self.generic_test(0, "--compare")
+
+ def testHashLocal(self):
+ """Test --compare-hash and --compare-hash-at-time modes local"""
+ self.generic_test(1, "--compare-hash")
+
+ def testHashRemote(self):
+ """Test --compare-hash and -at-time remotely"""
+ self.generic_test(0, "--compare-hash")
+
+ def testFullLocal(self):
+ """Test --compare-full and --compare-full-at-time"""
+ self.generic_test(1, "--compare-full")
+
+ def testFullRemote(self):
+ """Test full file compare remotely"""
+ self.generic_test(0, "--compare-full")
+
+ def generic_selective_test(self, local, compare_option):
+ """Used for selective tests--just compare part of a backup"""
+ rdiff_backup(local, local, 'testfiles/increment3/various_file_types',
+ 'testfiles/output/various_file_types',
+ extra_options = compare_option)
+ ret_val = rdiff_backup(local, local,
+ 'testfiles/increment2/increment1',
+ 'testfiles/output/increment1',
+ extra_options = compare_option,
+ check_return_val = 0)
+ assert ret_val, ret_val
+
+ rdiff_backup(local, local, 'testfiles/increment2/newdir',
+ 'testfiles/output/newdir',
+ extra_options = compare_option + "-at-time 10000")
+ ret_val = rdiff_backup(local, local,
+ 'testfiles/increment3/newdir',
+ 'testfiles/output/newdir',
+ extra_options = compare_option + "-at-time 10000",
+ check_return_val = 0)
+ assert ret_val, ret_val
+
+ def testSelLocal(self):
+ """Test basic local compare of single subdirectory"""
+ self.generic_selective_test(1, "--compare")
+
+ def testSelRemote(self):
+ """Test --compare of single directory, remote"""
+ self.generic_selective_test(0, "--compare")
+
+ def testSelHashLocal(self):
+ """Test --compare-hash of subdirectory, local"""
+ self.generic_selective_test(1, "--compare-hash")
+
+ def testSelHashRemote(self):
+ """Test --compare-hash of subdirectory, remote"""
+ self.generic_selective_test(0, "--compare-hash")
+
+ def testSelFullLocal(self):
+ """Test --compare-full of subdirectory, local"""
+ self.generic_selective_test(1, "--compare-full")
+
+ def testSelFullRemote(self):
+ """Test --compare-full of subdirectory, remote"""
+ self.generic_selective_test(0, "--compare-full")
+
+if __name__ == "__main__": unittest.main()
+