Add regression tests for /bin/test.
authorPeter Avalos <pavalos@dragonflybsd.org>
Sun, 13 Feb 2011 07:32:57 +0000 (21:32 -1000)
committerPeter Avalos <pavalos@dragonflybsd.org>
Sun, 13 Feb 2011 07:32:57 +0000 (21:32 -1000)
Obtained-from: FreeBSD

bin/test/Makefile
bin/test/TEST.README [deleted file]
bin/test/TEST.csh [deleted file]
tools/regression/bin/test/Makefile [new file with mode: 0644]
tools/regression/bin/test/regress.sh [moved from bin/test/TEST.sh with 71% similarity]
tools/regression/bin/test/regress.t [new file with mode: 0644]

index 1d8cfc0..60b0c97 100644 (file)
@@ -1,10 +1,12 @@
 #        @(#)Makefile  8.1 (Berkeley) 5/31/93
 # $FreeBSD: src/bin/test/Makefile,v 1.6.2.1 2001/08/01 05:31:04 obrien Exp $
-# $DragonFly: src/bin/test/Makefile,v 1.4 2005/02/06 06:16:40 okumoto Exp $
 
 PROG=  test
 
 LINKS= ${BINDIR}/test ${BINDIR}/[
 MLINKS=        test.1 '[.1'
 
+regress: test
+       cd ${.CURDIR}/../../tools/regression/bin/test && \
+       ${MAKE} TEST=${.OBJDIR}/test
 .include <bsd.prog.mk>
diff --git a/bin/test/TEST.README b/bin/test/TEST.README
deleted file mode 100644 (file)
index 02aed58..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-# $FreeBSD: src/bin/test/TEST.README,v 1.4 1999/08/27 23:15:47 peter Exp $
-# $DragonFly: src/bin/test/TEST.README,v 1.2 2003/06/17 04:22:50 dillon Exp $
-
-OS/shell                       syntax error    failed
---------------------------------------------------------------------
-bash 1.14.5                    3               0
-pdksh 5.2.5                    7               0
-zsh 2.6-beta17                 6               4
-FreeBSD 2.1 /bin/test          8               0
-IRIX 5.3 ksh                   3               0
-IRIX 5.3 sh                    3               0
-IRIX 5.3 /usr/bin/test         11              3
-SunOS 5.4 ksh                  3               0
-SunOS 5.4 sh                   3               0
-SunOS 5.4 /usr/ucb/test                3               0
-SunOS 5.5 ksh                  0               0
-SunOS 5.5 sh                   3               0
-SunOS 5.5 /usr/ucb/test                3               0
-SunOP 4.1.3_U1 sh              3               0
-SunOP 4.1.3_U1 /usr/bin/test   3               0
-ULTRIX 4.2 /bin/test           9               0
-ULTRIX 4.2 ksh                 1               0
-ULTRIX 4.2 sh5                 4               0
-
-96/06/16
diff --git a/bin/test/TEST.csh b/bin/test/TEST.csh
deleted file mode 100644 (file)
index f590a32..0000000
+++ /dev/null
@@ -1,153 +0,0 @@
-#      @(#)TEST.csh    5.2 (Berkeley) 4/30/93
-# $FreeBSD: src/bin/test/TEST.csh,v 1.6 1999/08/27 23:15:47 peter Exp $
-# $DragonFly: src/bin/test/TEST.csh,v 1.2 2003/06/17 04:22:50 dillon Exp $
-
-#alias t '/usr/src/bin/test/obj/test \!*; echo $status'
-alias t '/bin/test \!*; echo $status'
-
-echo 't -b /dev/ttyp2'
-t -b /dev/ttyp2
-echo 't -b /dev/jb1a'
-t -b /dev/jb1a
-
-echo 't -c test.c'
-t -c test.c
-echo 't -c /dev/tty'
-t -c /dev/tty
-
-echo 't -d test.c'
-t -d test.c
-echo 't -d /etc'
-t -d /etc
-
-echo 't -e noexist'
-t -e noexist
-echo 't -e test.c'
-t -e test.c
-
-echo 't -f noexist'
-t -f noexist
-echo 't -f /dev/tty'
-t -f /dev/tty
-echo 't -f test.c'
-t -f test.c
-
-echo 't -g test.c'
-t -g test.c
-echo 't -g /bin/ps'
-t -g /bin/ps
-
-echo 't -n ""'
-t -n ""
-echo 't -n "hello"'
-t -n "hello"
-
-echo 't -p test.c'
-t -p test.c
-
-echo 't -r noexist'
-t -r noexist
-echo 't -r /etc/master.passwd'
-t -r /etc/master.passwd
-echo 't -r test.c'
-t -r test.c
-
-echo 't -s noexist'
-t -s noexist
-echo 't -s /dev/null'
-t -s /dev/null
-echo 't -s test.c'
-t -s test.c
-
-echo 't -t 20'
-t -t 20
-echo 't -t 0'
-t -t 0
-
-echo 't -u test.c'
-t -u test.c
-echo 't -u /bin/rcp'
-t -u /bin/rcp
-
-echo 't -w noexist'
-t -w noexist
-echo 't -w /etc/master.passwd'
-t -w /etc/master.passwd
-echo 't -w /dev/null'
-t -w /dev/null
-
-echo 't -x noexist'
-t -x noexist
-echo 't -x /bin/ps'
-t -x /bin/ps
-echo 't -x /etc/motd'
-t -x /etc/motd
-
-echo 't -z ""'
-t -z ""
-echo 't -z "foo"'
-t -z "foo"
-
-echo 't "foo"'
-t "foo"
-echo 't ""'
-t ""
-
-echo 't "hello" = "hello"'
-t "hello" = "hello"
-echo 't "hello" = "goodbye"'
-t "hello" = "goodbye"
-
-echo 't "hello" != "hello"'
-t "hello" != "hello"
-echo 't "hello" != "goodbye"'
-t "hello" != "goodbye"
-
-echo 't 200 -eq 200'
-t 200 -eq 200
-echo 't 34 -eq 222'
-t 34 -eq 222
-
-echo 't 200 -ne 200'
-t 200 -ne 200
-echo 't 34 -ne 222'
-t 34 -ne 222
-
-echo 't 200 -gt 200'
-t 200 -gt 200
-echo 't 340 -gt 222'
-t 340 -gt 222
-
-echo 't 200 -ge 200'
-t 200 -ge 200
-echo 't 34 -ge 222'
-t 34 -ge 222
-
-echo 't 200 -lt 200'
-t 200 -lt 200
-echo 't 34 -lt 222'
-t 34 -lt 222
-
-echo 't 200 -le 200'
-t 200 -le 200
-echo 't 340 -le 222'
-t 340 -le 222
-
-echo 't 700 -le 1000 -a -n "1" -a "20" = "20"'
-t 700 -le 1000 -a -n "1" -a "20" = "20"
-echo 't ! \( 700 -le 1000 -a -n "1" -a "20" = "20" \)'
-t ! \( 700 -le 1000 -a -n "1" -a "20" = "20" \)
-
-echo 't -5 -eq 5'
-t -5 -eq 5
-
-
-echo 't foo -a ""'
-t foo -a ""
-echo 't "" -a foo'
-t "" -a foo
-echo 't "" -a ""'
-t "" -a ""
-echo 't "" -o ""'
-t "" -o ""
-
diff --git a/tools/regression/bin/test/Makefile b/tools/regression/bin/test/Makefile
new file mode 100644 (file)
index 0000000..9ae580d
--- /dev/null
@@ -0,0 +1,6 @@
+# $FreeBSD: src/tools/regression/bin/test/Makefile,v 1.1 2010/11/08 23:15:10 jilles Exp $
+
+TEST?= /bin/test
+
+all:
+       env test=${TEST} sh regress.sh
similarity index 71%
rename from bin/test/TEST.sh
rename to tools/regression/bin/test/regress.sh
index 233ed72..bcd6945 100644 (file)
@@ -1,5 +1,6 @@
 #!/bin/sh
-#
+
+#-
 # Copyright (c) June 1996 Wolfram Schneider <wosch@FreeBSD.org>. Berlin.
 # All rights reserved. 
 #
 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 # SUCH DAMAGE.
+
 #
 # TEST.sh - check if test(1) or builtin test works
 #
-# $FreeBSD: src/bin/test/TEST.sh,v 1.6.2.1 2000/07/01 03:13:10 ps Exp $
-# $DragonFly: src/bin/test/TEST.sh,v 1.2 2003/06/17 04:22:50 dillon Exp $
+# $FreeBSD: src/tools/regression/bin/test/regress.sh,v 1.1 2010/11/08 23:15:10 jilles Exp $
 
-# force a specified test program, e.g. `env test=/bin/test sh TEST.sh'
+# force a specified test program, e.g. `env test=/bin/test sh regress.sh'
 : ${test=test}         
 
-ERROR=0 FAILED=0
-
 t ()
 {
        # $1 -> exit code
        # $2 -> $test expression
 
-       echo -n "$1: $test $2 "
-
+       count=$((count+1))
        # check for syntax errors
        syntax="`eval $test $2 2>&1`"
-       if test -z "$syntax"; then
-
-       case $1 in
-               0) if eval $test $2; then echo " OK"; else failed;fi;;
-               1) if eval $test $2; then failed; else echo " OK";fi;;
-       esac
-
+       ret=$?
+       if test -n "$syntax"; then
+               printf "not ok %s - (syntax error)\n" "$count $2"
+       elif [ "$ret" != "$1" ]; then
+               printf "not ok %s - (got $ret, expected $1)\n" "$count $2"
        else
-               error
+               printf "ok %s\n" "$count $2"
        fi
 }
 
-error () 
-{
-       echo ""; echo " $syntax"
-       ERROR=`expr $ERROR + 1`
-}
-
-failed () 
-{
-       echo ""; echo " failed"
-       FAILED=`expr $FAILED + 1`
-}
-
+count=0
+echo "1..94"
 
 t 0 'b = b' 
 t 1 'b != b' 
@@ -132,5 +118,42 @@ t 0 '"a" -a ! ""'
 t 1 '""'
 t 0 '! ""'
 
-echo ""
-echo "Syntax errors: $ERROR Failed: $FAILED"
+t 0 '!'
+t 0 '\('
+t 0 '\)'
+
+t 1 '\( = \)'
+t 0 '\( != \)'
+t 0 '\( ! \)'
+t 0 '\( \( \)'
+t 0 '\( \) \)'
+t 0 '! = !'
+t 1 '! != !'
+t 1 '-n = \)'
+t 0 '! != \)'
+t 1 '! = a'
+t 0 '! != -n'
+t 0 '! -c /etc/passwd'
+
+t 0 '! \( = \)'
+t 1 '! \( != \)'
+t 1 '! = = ='
+t 0 '! = = \)'
+t 0 '! "" -o ""'
+t 1 '! "x" -o ""'
+t 1 '! "" -o "x"'
+t 1 '! "x" -o "x"'
+t 0 '\( -f /etc/passwd \)'
+t 1 '\( ! = \)'
+t 0 '\( ! "" \)'
+t 1 '\( ! -e \)'
+
+t 0 '0 -eq 0 -a -d /'
+t 0 '-s = "" -o "" = ""'
+t 0 '"" = "" -o -s = ""'
+t 1 '-s = "" -o -s = ""'
+t 0 '-z x -o x = "#" -o x = x'
+t 1 '-z y -o y = "#" -o y = x'
+t 0 '0 -ne 0 -o ! -f /'
+t 0 '1 -ne 0 -o ! -f /etc/passwd'
+t 1 '0 -ne 0 -o ! -f /etc/passwd'
diff --git a/tools/regression/bin/test/regress.t b/tools/regression/bin/test/regress.t
new file mode 100644 (file)
index 0000000..c6e981a
--- /dev/null
@@ -0,0 +1,6 @@
+#!/bin/sh
+# $FreeBSD: src/tools/regression/bin/test/regress.t,v 1.1 2010/11/08 23:15:10 jilles Exp $
+
+cd `dirname $0`
+
+sh regress.sh