diff options
Diffstat (limited to '')
-rw-r--r-- | testsuite/unsafe-links.test | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/testsuite/unsafe-links.test b/testsuite/unsafe-links.test new file mode 100644 index 0000000..2d209eb --- /dev/null +++ b/testsuite/unsafe-links.test @@ -0,0 +1,65 @@ +#!/bin/sh + +# Originally by VladimĂr Michl <Vladimir.Michl@hlubocky.del.cz> + +. "$suitedir/rsync.fns" + +test_symlink() { + is_a_link "$1" || test_fail "File $1 is not a symlink" +} + +test_regular() { + if [ ! -f "$1" ]; then + test_fail "File $1 is not regular file or not exists" + fi +} + +cd "$tmpdir" + +mkdir from + +mkdir "from/safe" +mkdir "from/unsafe" + +mkdir "from/safe/files" +mkdir "from/safe/links" + +touch "from/safe/files/file1" +touch "from/safe/files/file2" +touch "from/unsafe/unsafefile" + +ln -s ../files/file1 "from/safe/links/" +ln -s ../files/file2 "from/safe/links/" +ln -s ../../unsafe/unsafefile "from/safe/links/" + +echo "rsync with relative path and just -a" +$RSYNC -avv from/safe/ to +test_symlink to/links/file1 +test_symlink to/links/file2 +test_symlink to/links/unsafefile + +echo "rsync with relative path and -a --copy-links" +$RSYNC -avv --copy-links from/safe/ to +test_regular to/links/file1 +test_regular to/links/file2 +test_regular to/links/unsafefile + +echo "rsync with relative path and --copy-unsafe-links" +$RSYNC -avv --copy-unsafe-links from/safe/ to +test_symlink to/links/file1 +test_symlink to/links/file2 +test_regular to/links/unsafefile + +rm -rf to +echo "rsync with relative2 path" +(cd from; $RSYNC -avv --copy-unsafe-links safe/ ../to) +test_symlink to/links/file1 +test_symlink to/links/file2 +test_regular to/links/unsafefile + +rm -rf to +echo "rsync with absolute path" +$RSYNC -avv --copy-unsafe-links `pwd`/from/safe/ to +test_symlink to/links/file1 +test_symlink to/links/file2 +test_regular to/links/unsafefile |