+# Tests for lib.sh.
. ../lib.sh
-# Tests for installed().
-installed which && echo which installed
+# Tests for installed() with hopefully proper exit codes (1 if the program was
+# not found).
+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
+ 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.
+installed ls && echo ls installed
+installed doesnt-exist && echo doesnt-exist installed
+
+# Tests for m4().
+echo "Simple test file for m4.
+IF(TEST,m4)
+ m4
+FI
+IF(TEST,n4)
+ n4
+FI" > tmp/test.m4
+m4 tmp/test -DTEST=m4
+# Remove the line with the current date as it changes every time.
+cat tmp/test | grep -v "It was generated from tmp/test.m4"
+# Test multiple arguments to m4().
+echo "Test with multiple arguments passed to m4.
+first: FIRST
+second: SECOND
+" > tmp/test-multiple.m4
+m4 tmp/test-multiple -DFIRST=first -DSECOND=second
+# Remove the line with the current date as it changes every time.
+cat tmp/test-multiple | grep -v "It was generated from tmp/test-multiple.m4"
+
+# vim: ft=sh