summaryrefslogtreecommitdiff
path: root/rdiff-backup/testing/FilenameMappingtest.py
diff options
context:
space:
mode:
Diffstat (limited to 'rdiff-backup/testing/FilenameMappingtest.py')
-rw-r--r--rdiff-backup/testing/FilenameMappingtest.py29
1 files changed, 28 insertions, 1 deletions
diff --git a/rdiff-backup/testing/FilenameMappingtest.py b/rdiff-backup/testing/FilenameMappingtest.py
index e364c59..1bc1b6c 100644
--- a/rdiff-backup/testing/FilenameMappingtest.py
+++ b/rdiff-backup/testing/FilenameMappingtest.py
@@ -1,6 +1,6 @@
import unittest
from commontest import *
-from rdiff_backup import FilenameMapping
+from rdiff_backup import FilenameMapping, rpath, Globals
class FilenameMappingTest(unittest.TestCase):
"""Test the FilenameMapping class, for quoting filenames"""
@@ -29,4 +29,31 @@ class FilenameMappingTest(unittest.TestCase):
assert (qrp.index[0] ==
"mirror_metadata.1969-12-31T21:33:20-07:00.data.gz")
+ def testLongFilenames(self):
+ """See if long quoted filenames cause crash"""
+ MakeOutputDir()
+ outrp = rpath.RPath(Globals.local_connection, "testfiles/output")
+ inrp = rpath.RPath(Globals.local_connection, "testfiles/quotetest")
+ re_init_dir(inrp)
+ long_filename = "A"*200 # when quoted should cause overflow
+ longrp = inrp.append(long_filename)
+ longrp.touch()
+ shortrp = inrp.append("B")
+ shortrp.touch()
+
+ rdiff_backup(1, 1, inrp.path, outrp.path, 100000,
+ extra_options = "--override-chars-to-quote A")
+
+ longrp_out = outrp.append(long_filename)
+ assert not longrp_out.lstat()
+ shortrp_out = outrp.append('B')
+ assert shortrp_out.lstat()
+
+ rdiff_backup(1, 1, "testfiles/empty", outrp.path, 200000)
+ shortrp_out.setdata()
+ assert not shortrp_out.lstat()
+ rdiff_backup(1, 1, inrp.path, outrp.path, 300000)
+ shortrp_out.setdata()
+ assert shortrp_out.lstat()
+
if __name__ == "__main__": unittest.main()