2217f0763615489ea395da2f47441d6ceee5ce22
[rsync/rsync.git] / testsuite / unsafe-byname.test
1 #! /bin/sh
2
3 # Copyright (C) 2002 by Martin Pool
4
5 # Call directly into unsafe_symlink and test its handling of various filenames
6
7 . $srcdir/testsuite/rsync.fns
8
9 test_unsafe() {
10     result=`"$TOOLDIR/t_unsafe" "$1" "$2"` || test_fail "Failed to check $1 $2"
11     if [ "$result" != "$3" ]
12     then
13         test_fail "t_unsafe $1 $2 returned \"$result\", expected \"$3\""
14     fi
15 }
16
17 test_unsafe file                from                    safe
18 test_unsafe dir/file            from                    safe
19 test_unsafe dir/./file          from                    safe
20 test_unsafe dir/.               from safe
21 test_unsafe dir/                from safe
22
23 test_unsafe /etc/passwd         from unsafe
24 test_unsafe //../etc/passwd     from unsafe
25 test_unsafe //./etc/passwd      from unsafe
26
27 test_unsafe ./foo               from safe
28 test_unsafe ../foo              from unsafe
29 test_unsafe ../dest             from/dir safe
30
31 # Based on tests from unsafe-links by VladimĂ­r Michl
32 test_unsafe ../../unsafe/unsafefile    from/safe        unsafe
33 test_unsafe ../files/file1             from/safe        safe
34
35 test_unsafe ../../unsafe/unsafefile    safe     unsafe
36 test_unsafe ../files/file1             safe     unsafe
37
38 test_unsafe ../../unsafe/unsafefile    `pwd`/from/safe  safe
39 test_unsafe ../files/file1             `pwd`/from/safe  safe
40
41 # I think these are correct, but I don't really understand the code.
42 # Waiting for an answer from dwd
43 test_skipped "correct behaviour is unclear"
44
45 # Test suspicious handling of '..' in srcdir
46 test_unsafe ../../unsafe/unsafefile    from/safe/../safe        unsafe
47 test_unsafe ../files/file1             from/safe/../safe        safe
48