update README for gitorious move
[lnf] / test / test
index c2bdb6a95bb612573967deba3f82f8ae00f05b81..d3a5eac00b8976fc42db94d7c0c2729a46f5cb78 100755 (executable)
--- a/test/test
+++ b/test/test
@@ -1,71 +1,80 @@
 #!/bin/bash
 # some basic sanity / verification
-# assumes we have trash-put in path
+
 # I don't recommend actually running this unless you have a reason to,
 # since it creates & deletes files, and being a test, it is not as thoroughly
 # inspected for bugs
 
-err() {
-    echo error
-}
-# target linkname
+# assumes we have trash-put in path, and that lnf-function is in .. to this files location
+
+
+# 2 arguments, test that a file in the link location is removed and replaed with a link
 case1() {
     touch b
-    lnf a b
-    [[ -L b ]] || err
+    lnf -T a b
+    [[ -L b ]]
 }
 
-# target directory
+# 2 arguments, test that directory in link location is removed and replaced with a link
 case2() {
     mkdir b
-    lnf a b
-    [[ -L b/a ]] || err
+    lnf -T a b
+    [[ -L b ]]
 }
 
-# target
+# single argument, test that an existing non-empty directory is removed and replaced by a link
 case3() {
     mkdir a
     touch a/b
     lnf ../a
-    [[ -L a ]] || err
+    [[ -L a ]]
 }
 
-# target target directory
+# 4 arguments, 2 of the link locations already contain files.
+# test that they got removed and replaced by links
 case4() {
     mkdir a
     touch a/b
     touch a/c
     lnf b c d a
-    [[ -L a/b && -L a/c && -L a/d ]] || err
+    [[ -L a/b && -L a/c && -L a/d ]]
+}
+
+# 2 arguments, test that link is made correctly
+case5() {
+    mkdir b
+    lnf a b
+    [[ -L b/a ]]
 }
 
+
+
 cleanup() {
     rm -rf *
 }
 
 
 docases() {
-    case1
-    cleanup
-    case2
-    cleanup
-    case3
-    cleanup
-    case4
-    cleanup
+    for x in {1..5}; do
+        case$x
+        cleanup
+    done
 }
 
 source ${0%/*}/../lnf-function
 # might want to undo this if things go wrong
 # set -x
-set -eE;
+
+# trap errors, and output a simple bash stack trace
+set -E;
 trap 'echo "${BASH_COMMAND:+BASH_COMMAND=\"$BASH_COMMAND\" }
 ${FUNCNAME:+FUNCNAME=\"$FUNCNAME\" }${LINENO:+LINENO=\"$LINENO\"  }\$?=$?"' ERR
 cd $(mktemp -d)
 docases
-trash-put() {
-    rm -rf "$@"
-}
+# test again, using rm -rf in place of trash-put.
+# assumes that rm is in /bin and trash-put is in /usr/bin
+PATH="${PATH//:\/usr\/bin}"
+PATH="${PATH//\/usr\/bin:}"
 docases
 
-echo success
+echo tests concluded