diff options
author | ben <ben@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109> | 2002-05-31 08:24:43 +0000 |
---|---|---|
committer | ben <ben@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109> | 2002-05-31 08:24:43 +0000 |
commit | 00283590c392d1322a08f84d333c5bec8d51e545 (patch) | |
tree | 1227e762790331371d486dbc9b3df63112d81a47 /rdiff-backup/testing/commontest.py | |
parent | 38f302883e8e08457f9e4fd93d4ecdb6dff77de2 (diff) | |
download | rdiff-backup-00283590c392d1322a08f84d333c5bec8d51e545.tar.gz |
Added resuming bug fixes, kill testing for better robustness testing
git-svn-id: http://svn.savannah.nongnu.org/svn/rdiff-backup/trunk@115 2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109
Diffstat (limited to 'rdiff-backup/testing/commontest.py')
-rw-r--r-- | rdiff-backup/testing/commontest.py | 44 |
1 files changed, 40 insertions, 4 deletions
diff --git a/rdiff-backup/testing/commontest.py b/rdiff-backup/testing/commontest.py index de897bb..6221866 100644 --- a/rdiff-backup/testing/commontest.py +++ b/rdiff-backup/testing/commontest.py @@ -163,7 +163,7 @@ def _get_main(): return Globals.Main def CompareRecursive(src_rp, dest_rp, compare_hardlinks = 1, - equality_func = None): + equality_func = None, exclude_rbdir = 1): """Compare src_rp and dest_rp, which can be directories This only compares file attributes, not the actual data. This @@ -179,8 +179,22 @@ def CompareRecursive(src_rp, dest_rp, compare_hardlinks = 1, compare_hardlinks), 3) src_select = Select(DSRPath(1, src_rp)) dest_select = Select(DSRPath(None, dest_rp)) - src_select.parse_rbdir_exclude() - dest_select.parse_rbdir_exclude() + if exclude_rbdir: + src_select.parse_rbdir_exclude() + dest_select.parse_rbdir_exclude() + else: + # include rdiff-backup-data/increments + src_select.add_selection_func(src_select.glob_get_tuple_sf( + ('rdiff-backup-data', 'increments'), 1)) + dest_select.add_selection_func(src_select.glob_get_tuple_sf( + ('rdiff-backup-data', 'increments'), 1)) + + # but exclude rdiff-backup-data + src_select.add_selection_func(src_select.glob_get_tuple_sf( + ('rdiff-backup-data',), 0)) + dest_select.add_selection_func(src_select.glob_get_tuple_sf( + ('rdiff-backup-data',), 0)) + src_select.set_iter() dest_select.set_iter() dsiter1, dsiter2 = src_select.iterate_with_finalizer(), \ @@ -194,10 +208,32 @@ def CompareRecursive(src_rp, dest_rp, compare_hardlinks = 1, Hardlink.get_indicies(dest_rorp, None)), 3) return None + def rbdir_equal(src_rorp, dest_rorp): + """Like hardlink_equal, but make allowances for data directories""" + if not src_rorp.index and not dest_rorp.index: return 1 + if (src_rorp.index and src_rorp.index[0] == 'rdiff-backup-data' and + src_rorp.index == dest_rorp.index): + # Don't compare dirs - they don't carry significant info + if dest_rorp.isdir() and src_rorp.isdir(): return 1 + if dest_rorp.isreg() and src_rorp.isreg(): + # Don't compare gzipped files because it is apparently + # non-deterministic. + if dest_rorp.index[-1].endswith('gz'): return 1 + # Don't compare .missing increments because they don't matter + if dest_rorp.index[-1].endswith('.missing'): return 1 + if src_rorp != dest_rorp: return None + if Hardlink.rorp_eq(src_rorp, dest_rorp): return 1 + Log("%s: %s" % (src_rorp.index, Hardlink.get_indicies(src_rorp, 1)), 3) + Log("%s: %s" % (dest_rorp.index, + Hardlink.get_indicies(dest_rorp, None)), 3) + return None + if compare_hardlinks: dsiter1 = Hardlink.add_rorp_iter(dsiter1, 1) dsiter2 = Hardlink.add_rorp_iter(dsiter2, None) - result = Iter.equal(dsiter1, dsiter2, 1, hardlink_equal) + if exclude_rbdir: + result = Iter.equal(dsiter1, dsiter2, 1, hardlink_equal) + else: result = Iter.equal(dsiter1, dsiter2, 1, rbdir_equal) elif equality_func: result = Iter.equal(dsiter1, dsiter2, 1, equality_func) else: result = Iter.equal(dsiter1, dsiter2, 1) |