aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMattias Andrée <maandree@kth.se>2016-03-25 20:49:10 +0100
committerMattias Andrée <maandree@kth.se>2016-03-25 21:18:16 +0100
commitd91a37360c8e30a3645eb379d4804325ff7bd01e (patch)
tree430cfb292521e04879336d7bc62a2c9bcbc89d82
parentderp (diff)
downloadbase-util-tests-d91a37360c8e30a3645eb379d4804325ff7bd01e.tar.gz
base-util-tests-d91a37360c8e30a3645eb379d4804325ff7bd01e.tar.bz2
base-util-tests-d91a37360c8e30a3645eb379d4804325ff7bd01e.tar.xz
add basename and dirname tests
Signed-off-by: Mattias Andrée <maandree@kth.se>
-rwxr-xr-xbasename-test/test125
-rwxr-xr-xdirname-test/test103
-rwxr-xr-xtest-all2
3 files changed, 229 insertions, 1 deletions
diff --git a/basename-test/test b/basename-test/test
new file mode 100755
index 0000000..03a7f98
--- /dev/null
+++ b/basename-test/test
@@ -0,0 +1,125 @@
+#!/bin/bash
+
+cd -- "$(dirname "$0")"
+if test -z "$BASENAME"; then
+ BASENAME=../basename
+fi
+b="$PREFIX $BASENAME"
+
+report ()
+{
+ if test $1 = 0; then
+ printf "\033[1;32mTest %s OK\033[m\n" "$2"
+ else
+ printf "\033[1;31mTest %s FAILED\033[m\n" "$2"
+ fi
+}
+
+
+
+ddash ()
+{
+ test "$($b -- x)" = "x"
+ report $? "ddash"
+ # http://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap12.html#tag_12_02
+}
+
+lf ()
+{
+ test "$($b test | wc -l)" = 1
+ report $? "lf"
+}
+
+step_1 ()
+{
+ test "$($b '' | wc -l)" = 1 &&
+ (test "$($b '')" = '' || test "$($b '')" = .)
+ report $? "step_1"
+}
+
+step_2 ()
+{
+ test "$($b //)" = / || test "$($b //)" = //
+ report $? "step_2"
+}
+
+step_3 ()
+{
+ test "$($b //)" = / &&
+ test "$($b ///)" = /
+ report $? "step_3"
+}
+
+step_4 ()
+{
+ test "$($b x/)" = x &&
+ test "$($b x//)" = x
+ report $? "step_4"
+}
+
+step_5 ()
+{
+ test "$($b a/b/c)" = c &&
+ test "$($b /a)" = a
+ report $? "step_5"
+}
+
+step_4_5 ()
+{
+ test "$($b a/b/c/)" = c &&
+ test "$($b /a/)" = a
+ report $? "step_5"
+}
+
+step_6 ()
+{
+ test "$($b a.b b)" = a. &&
+ report $? "step_6"
+}
+
+step_6_4 ()
+{
+ test "$($b a.b/ b)" = a. &&
+ report $? "step_6.4"
+}
+
+step_6_full ()
+{
+ test "$($b a.b a.b)" = a.b &&
+ report $? "step_6_full"
+}
+
+step_6_mismatch ()
+{
+ test "$($b a.b c)" = a.b &&
+ report $? "step_6_mismatch"
+}
+
+step_6_longer ()
+{
+ test "$($b a.b cccccccccccccccccc)" = a.b &&
+ report $? "step_6_longer"
+}
+
+
+
+if test $# = 0; then
+ set ddash lf step_1 step_2 step_3 step_4 step_5 step_4_5 step_6 step_6_4 \
+ step_6_full step_6_mismatch step_6_longer
+fi
+(
+for f in $@; do
+ $f
+done
+) | tee result
+! grep FAILED < result > /dev/null
+ret=$?
+if test $ret != 0; then
+ if test $(grep FAILED < result | grep -v NON-POSIX | wc -l) = 0; then
+ ret=1
+ else
+ ret=2
+ fi
+fi
+rm result
+exit $ret
diff --git a/dirname-test/test b/dirname-test/test
new file mode 100755
index 0000000..9e1883a
--- /dev/null
+++ b/dirname-test/test
@@ -0,0 +1,103 @@
+#!/bin/bash
+
+cd -- "$(dirname "$0")"
+if test -z "$DIRNAME"; then
+ DIRNAME=../dirname
+fi
+d="$PREFIX $DIRNAME"
+
+report ()
+{
+ if test $1 = 0; then
+ printf "\033[1;32mTest %s OK\033[m\n" "$2"
+ else
+ printf "\033[1;31mTest %s FAILED\033[m\n" "$2"
+ fi
+}
+
+
+
+ddash ()
+{
+ test "$($d -- a/b)" = "a"
+ report $? "ddash"
+ # http://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap12.html#tag_12_02
+}
+
+lf ()
+{
+ test "$($d test | wc -l)" = 1
+ report $? "lf"
+}
+
+step_1 ()
+{
+ test "$($d //)" = / || test "$($d //)" = //
+ report $? "step_1"
+}
+
+step_2 ()
+{
+ test "$($d /)" = / &&
+ test "$($d ///)" = /
+ report $? "step_2"
+}
+
+step_5_3 ()
+{
+ test "$($d a/b/)" = a &&
+ test "$($d a/b//)" = a
+ report $? "step_5_3"
+}
+
+step_4 ()
+{
+ test "$($d a)" = .
+ report $? "step_4"
+}
+
+step_4_3 ()
+{
+ test "$($d a/)" = .
+ report $? "step_4_3"
+}
+
+step_5 ()
+{
+ test "$($d /a/b/c)" = /a/b
+ report $? "step_5"
+}
+
+step_6 ()
+{
+ test "$($d //a)" = // || test "$($d //a)" = /
+ report $? "step_6"
+}
+
+step_5_6 ()
+{
+ test "$($d //a/b/c)" = //a/b
+ report $? "step_5_6"
+}
+
+
+
+if test $# = 0; then
+ set ddash lf step_1 step_2 step_4 step_4_3 step_5 step_5_3 step_6 step_5_6
+fi
+(
+for f in $@; do
+ $f
+done
+) | tee result
+! grep FAILED < result > /dev/null
+ret=$?
+if test $ret != 0; then
+ if test $(grep FAILED < result | grep -v NON-POSIX | wc -l) = 0; then
+ ret=1
+ else
+ ret=2
+ fi
+fi
+rm result
+exit $ret
diff --git a/test-all b/test-all
index 4b4f24a..0e7227e 100755
--- a/test-all
+++ b/test-all
@@ -6,7 +6,7 @@ function all()
{
echo patch md5sum rawshake256sum rawshake512sum sha1sum sha224sum sha256sum sha3-224sum \
sha3-256sum sha3-384sum sha3-512sum sha384sum sha512-224sum sha512-256sum sha512sum \
- shake256sum shake512sum cksum true false echo test
+ shake256sum shake512sum cksum true false echo test basename dirname
}
exec 99>&2