legacy_test.sh revision 16491
116491Swosch#!/bin/sh
216491Swosch# (c) Wolfram Schneider, Berlin. June 1996. Public domain.
316491Swosch#
416491Swosch# TEST.sh - check if test(1) or builtin test works
516491Swosch#
616491Swosch# $Id: $
716491Swosch
816491Swosch# force a specified test program, e.g. `env test=/bin/test sh TEST.sh'
916491Swosch: ${test=test}		
1016491Swosch
1116491SwoschERROR=0 FAILED=0
1216491Swosch
1316491Swoscht ()
1416491Swosch{
1516491Swosch	# $1 -> exit code
1616491Swosch	# $2 -> $test expression
1716491Swosch
1816491Swosch	echo -n "$test $2 "
1916491Swosch
2016491Swosch	# check for syntax errors
2116491Swosch	syntax="`eval $test $2 2>&1`"
2216491Swosch	if test -z "$syntax"; then
2316491Swosch
2416491Swosch	case $1 in
2516491Swosch		0) if eval $test $2; then echo " OK"; else failed;fi;;
2616491Swosch		1) if eval $test $2; then failed; else echo " OK";fi;;
2716491Swosch	esac
2816491Swosch
2916491Swosch	else
3016491Swosch		error
3116491Swosch	fi
3216491Swosch}
3316491Swosch
3416491Swoscherror () 
3516491Swosch{
3616491Swosch	echo ""; echo "	$syntax"
3716491Swosch	ERROR=`expr $ERROR + 1`
3816491Swosch}
3916491Swosch
4016491Swoschfailed () 
4116491Swosch{
4216491Swosch	echo ""; echo "	failed"
4316491Swosch	FAILED=`expr $FAILED + 1`
4416491Swosch}
4516491Swosch
4616491Swosch
4716491Swoscht 0 'b = b' 
4816491Swoscht 1 'b != b' 
4916491Swoscht 0 '\( b = b \)' 
5016491Swoscht 1 '! \( b = b \)' 
5116491Swoscht 1 '! -f /etc/passwd'
5216491Swosch
5316491Swoscht 0 '-h = -h'
5416491Swoscht 0 '-o = -o'
5516491Swosch
5616491Swoscht 1 '-f = h'
5716491Swoscht 1 '-h = f'
5816491Swoscht 1 '-o = f'
5916491Swoscht 1 'f = -o'
6016491Swoscht 0 '\( -h = -h \)'
6116491Swoscht 1 '\( a = -h \)'
6216491Swoscht 1 '\( -f = h \)'
6316491Swosch
6416491Swosch
6516491Swoscht 1 '\( -f = h \)'
6616491Swosch
6716491Swoscht 0 '-h = -h -o a'
6816491Swoscht 0 '\( -h = -h \) -o 1'
6916491Swosch
7016491Swoscht 0 '-h = -h -o -h = -h'
7116491Swoscht 0 '\( -h = -h \) -o \( -h = -h \)'
7216491Swosch
7316491Swoscht 0 '-d /'
7416491Swoscht 0 '-d / -a a != b'
7516491Swoscht 1 '-z "-z"'
7616491Swoscht 0 '-n -n'
7716491Swoscht 0 '0 -eq 0'
7816491Swoscht 0 '\( 0 -eq 0 \)'
7916491Swoscht 1 '1 -eq 0 -o a = a -a 1 -eq 0 -o a = aa'
8016491Swosch
8116491Swoscht 0 '0'
8216491Swoscht 0 '\( 0 \)'
8316491Swoscht 0 '-E'
8416491Swoscht 0 '-X -a -X'
8516491Swoscht 0 '-XXX'
8616491Swoscht 0 '\( -E \)'
8716491Swoscht 0 'true -o X'
8816491Swoscht 0 'true -o -X'
8916491Swoscht 0 '\( \( \( a = a \) -o 1 \) -a 1 \) -a true'
9016491Swoscht 1 '-h /'
9116491Swoscht 0 '-r /'
9216491Swoscht 1 '-w /'
9316491Swoscht 0 '-x /bin/sh'
9416491Swoscht 0 '-c /dev/null'
9516491Swoscht 0 '-b /dev/fd0a -o -b /dev/rfd0a -o true'
9616491Swoscht 0 '-f /etc/passwd'
9716491Swoscht 0 '-s /etc/passwd'
9816491Swoscht 1 '! \( 700 -le 1000 -a -n "1" -a "20" = "20" \)'
9916491Swoscht 0 '100 -eq 100'
10016491Swoscht 0 '100 -lt 200'
10116491Swoscht 1 '1000 -lt 200'
10216491Swoscht 0 '1000 -gt 200'
10316491Swoscht 0 '1000 -ge 200'
10416491Swoscht 0 '1000 -ge 1000'
10516491Swoscht 1 '2 -ne 2'
10616491Swosch
10716491Swoschecho ""
10816491Swoschecho "Syntax errors: $ERROR Failed: $FAILED"
10916491Swosch
110