]> ruderich.org/simon Gitweb - config/dotfiles.git/blobdiff - tests/lib.sh.test
*: License under GPL v3+.
[config/dotfiles.git] / tests / lib.sh.test
index 32bbd70c3d38f32c15bcfb4b693c1dfcbcaf4f4c..5db26dcf3eae59f4b47ce217a9c19b2e02ae427e 100644 (file)
@@ -1,23 +1,70 @@
 # Tests for lib.sh.
 
+# Copyright (C) 2009-2013  Simon Ruderich
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
 
 . ../lib.sh
 
-# Tests for installed() with hopefully proper exit codes (1 if the program was
-# not found).
+# which with proper exit codes and output to stdout.
+which() {
+    if [ $1 = ls ]; then
+        echo /bin/ls
+    else
+        echo no doesnt-exist in /usr/bin /bin /usr/sbin /sbin
+        return 1
+    fi
+}
+echo stdout which
 installed ls && echo ls installed
 installed doesnt-exist && echo doesnt-exist installed
 
-# Simulate BSD `which` like on Mac OS X which doesn't use exit codes.
-function which() {
-    echo Mac OS X which for $1 >&2
+# which with proper exit codes and output to stderr in case of an error.
+which() {
+    if [ $1 = ls ]; then
+        echo /bin/ls
+    else
+        echo no doesnt-exist in /usr/bin /bin /usr/sbin /sbin >&2
+        return 1
+    fi
+}
+echo stderr which
+installed ls && echo ls installed
+installed doesnt-exist && echo doesnt-exist installed
+
+# which with no proper exit codes and output to stdout in case of an error.
+which() {
     if [ $1 = ls ]; then
         echo /bin/ls
     else
         echo no doesnt-exist in /usr/bin /bin /usr/sbin /sbin
     fi
 }
-# Tests for installed() without exit codes.
+echo stupid which
+installed ls && echo ls installed
+installed doesnt-exist && echo doesnt-exist installed
+
+# which with proper exit codes and no output in case of an error.
+which() {
+    if [ $1 = ls ]; then
+        echo /bin/ls
+    else
+        return 1
+    fi
+}
+echo different which
 installed ls && echo ls installed
 installed doesnt-exist && echo doesnt-exist installed