| Rob Landley | b4ed762 | 2007-12-15 22:05:42 -0600 | [diff] [blame] | 1 | #!/bin/bash | 
 | 2 |  | 
 | 3 | [ -f testing.sh ] && . testing.sh | 
 | 4 |  | 
 | 5 | #testing "name" "command" "result" "infile" "stdin" | 
 | 6 |  | 
 | 7 | testing "readlink missing" "readlink notfound || echo yes" "yes\n" "" "" | 
 | 8 |  | 
| Rob Landley | e25e8b5 | 2007-12-16 18:02:44 -0600 | [diff] [blame^] | 9 | # simple tests on a file | 
 | 10 |  | 
| Rob Landley | b4ed762 | 2007-12-15 22:05:42 -0600 | [diff] [blame] | 11 | touch file | 
 | 12 | testing "readlink file" "readlink file || echo yes" "yes\n" "" "" | 
 | 13 | testing "readlink -f dir" "readlink -f ." "$(pwd)\n" "" "" | 
 | 14 | testing "readlink -f missing" "readlink -f notfound" "$(pwd)/notfound\n" "" "" | 
 | 15 |  | 
| Rob Landley | e25e8b5 | 2007-12-16 18:02:44 -0600 | [diff] [blame^] | 16 | # Test a link that points to nonexistent file | 
| Rob Landley | b4ed762 | 2007-12-15 22:05:42 -0600 | [diff] [blame] | 17 | ln -s notfound link | 
 | 18 | testing "readlink link" "readlink link" "notfound\n" "" "" | 
 | 19 | testing "readlink link->missing" "readlink -f link" "$(pwd)/notfound\n" "" "" | 
 | 20 | ln -sf file link | 
 | 21 | testing "readlink -f link->file" "readlink -f link" "$(pwd)/file\n" "" "" | 
 | 22 | ln -sf . link | 
 | 23 | testing "readlink -f link->dir" "readlink -f link" "$(pwd)\n" "" "" | 
 | 24 | ln -snf link link | 
 | 25 | testing "readlink link->link (recursive)" "readlink link" "link\n" "" "" | 
 | 26 | testing "readlink -f link->link (recursive)" "readlink -f link || echo yes" \ | 
 | 27 | 	"yes\n" "" "" | 
 | 28 | rm file link | 
 | 29 |  | 
| Rob Landley | e25e8b5 | 2007-12-16 18:02:44 -0600 | [diff] [blame^] | 30 | # Make sure circular links don't run away. | 
 | 31 |  | 
| Rob Landley | b4ed762 | 2007-12-15 22:05:42 -0600 | [diff] [blame] | 32 | ln -s link1 link2 | 
 | 33 | ln -s link2 link1 | 
 | 34 | testing "readlink follow recursive2" "readlink -f link1 || echo yes" \ | 
 | 35 | 	"yes\n" "" "" | 
 | 36 | rm link1 link2 | 
| Rob Landley | e25e8b5 | 2007-12-16 18:02:44 -0600 | [diff] [blame^] | 37 |  | 
 | 38 | # Fun with relative paths | 
 | 39 |  | 
 | 40 | ln -s /usr/include/sys/../sys newsys | 
 | 41 | ln -s newsys newsys2 | 
 | 42 | testing "readlink maintains relative paths" "readlink newsys" \ | 
 | 43 | 	"/usr/include/sys/../sys\n" "" "" | 
 | 44 | testing "readlink -f resolves relative path" "readlink -f newsys2/../stdio.h" \ | 
 | 45 | 	"/usr/include/stdio.h\n" "" "" | 
 | 46 | rm newsys newsys2 |