From d91a37360c8e30a3645eb379d4804325ff7bd01e Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Fri, 25 Mar 2016 20:49:10 +0100 Subject: add basename and dirname tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- basename-test/test | 125 +++++++++++++++++++++++++++++++++++++++++++++++++++++ dirname-test/test | 103 +++++++++++++++++++++++++++++++++++++++++++ test-all | 2 +- 3 files changed, 229 insertions(+), 1 deletion(-) create mode 100755 basename-test/test create mode 100755 dirname-test/test 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 -- cgit v1.2.3-70-g09d2