]> Zhao Yanbai Git Server - minix.git/commitdiff
Shell tests now complain more loudly. 44/144/2
authorLionel Sambuc <lionel@minix3.org>
Mon, 10 Dec 2012 14:49:24 +0000 (15:49 +0100)
committerLionel Sambuc <lionel@minix3.org>
Tue, 11 Dec 2012 15:59:54 +0000 (16:59 +0100)
Adding the bomb function which takes as a parameter a string
to be printed, print it, cleans up and exits with an error
code. It also means they will exit after the first error, unlike
previous behaviour.

Change-Id: Id0ffdf3938da43586c9dae7c566ee130533c5577

test/testsh1.sh
test/testsh2.sh

index 0a9e20ff9e6737133ffdb1c2388e9715e66fbf35..5e43f8954661f3ed99f10cfc43d7abbe828815f3 100755 (executable)
@@ -2,15 +2,30 @@
 
 # Shell script used to test MINIX.
 
+# Helper function
+bomb() {
+       echo $*
+       cd ..
+       rm -rf $TESTDIR
+       exit 1
+}
+
+
 PATH=:/bin:/usr/bin
 export PATH
 
+TESTDIR=DIR_SH1
+export TESTDIR
+
+OLDPWD=`pwd`
+export OLDPWD
+
 echo -n "Shell test  1 "
-rm -rf DIR_SH1
-mkdir DIR_SH1
-cd DIR_SH1
+rm -rf $TESTDIR
+mkdir $TESTDIR
+cd $TESTDIR
 
-f=../test1.c
+f=$OLDPWD/test1.c
 if test -r $f; then : ; else echo sh1 cannot read $f; exit 1; fi
 
 #Initial setup
@@ -27,24 +42,24 @@ cat tmp tmp tmp >f1
 #Test cp
 mkdir foo
 cp /etc/rc /etc/passwd foo
-if cmp -s foo/rc /etc/rc ; then : ; else echo Error on cp test 1; fi
-if cmp -s foo/passwd /etc/passwd ; then : ; else echo Error on cp test 2; fi
+if cmp -s foo/rc /etc/rc ; then : ; else bomb "Error on cp test 1"; fi
+if cmp -s foo/passwd /etc/passwd ; then : ; else bomb "Error on cp test 2"; fi
 rm -rf foo
 
 #Test cat
 cat num num num num num >y
 wc -c y >x1
 echo "     55 y" >x2
-if cmp -s x1 x2; then : ; else echo Error on cat test 1; fi
+if cmp -s x1 x2; then : ; else bomb "Error on cat test 1"; fi
 cat <y >z
-if cmp -s y z; then : ; else echo Error on cat test 2; fi
+if cmp -s y z; then : ; else bomb "Error on cat test 2"; fi
 
 #Test basename
 if test `basename /usr/ast/foo.c .c` != 'foo'
-   then echo Error on basename test 1
+   then bomb "Error on basename test 1"
 fi
 
-if test `basename a/b/c/d` != 'd'; then Error on basename test 2; fi
+if test `basename a/b/c/d` != 'd'; then bomb "Error on basename test 2"; fi
 
 #Test cdiff, sed, and patch
 cp $f x.c                      # x.c is a copy $f
@@ -52,7 +67,7 @@ echo "/a/s//#####/g" >s               # create sed script
 sed -f s <x.c >y.c             # y.c is new version of x.c
 diff -c x.c y.c >y             # y is cdiff listing
 patch x.c y  2>/dev/null       # z should be y.c
-if cmp -s x.c y.c; then : ; else echo Error in cdiff test; fi
+if cmp -s x.c y.c; then : ; else bomb "Error in cdiff test"; fi
 rm x.c* y.c s y
 
 #Test comm, grep -v
@@ -60,16 +75,16 @@ ls /etc >x                  # x = list of /etc
 grep -v "passwd" x >y          # y = x except for /etc/passwd
 comm -3 x y >z                 # should only be 1 line, /etc/passwd
 echo "passwd" >w
-if cmp -s w z; then : else echo Error on comm test 1; fi
+if cmp -s w z; then : else bomb "Error on comm test 1"; fi
 
 comm -13 x y >z                        # should be empty
-if test -s z; then echo Error on comm test 2; fi
+if test -s z; then bomb "Error on comm test 2"; fi
 rm -rf w x y z
 
 #Test compress
 compress -fc $f >x.c.Z         # compress the test file
 compress -cd x.c.Z >y          # uncompress it
-if cmp -s $f y; then : else echo Error in compress test 1; fi
+if cmp -s $f y; then : else bomb "Error in compress test 1"; fi
 rm -rf x.c.Z y
 
 #Test ed
@@ -90,56 +105,56 @@ w
 q
 END
 ed 2>/dev/null x <y >/dev/null
-if cmp -s x $f; then : ; else echo Error in ed test 1; fi
+if cmp -s x $f; then : ; else bomb "Error in ed test 1"; fi
 rm x y
 
 #Test expr
-if test `expr 1 + 1` != 2; then echo Error on expr test 1; fi
-if test `expr 10000 - 1` != 9999; then echo Error on expr test 2; fi
-if test `expr 100 '*' 50` != 5000; then echo Error on expr test 3; fi
-if test `expr 120 / 5` != 24; then echo Error on expr test 4; fi
-if test `expr 143 % 7` != 3; then echo Error on expr test 5; fi
+if test `expr 1 + 1` != 2; then bomb "Error on expr test 1"; fi
+if test `expr 10000 - 1` != 9999; then bomb "Error on expr test 2"; fi
+if test `expr 100 '*' 50` != 5000; then bomb "Error on expr test 3"; fi
+if test `expr 120 / 5` != 24; then bomb "Error on expr test 4"; fi
+if test `expr 143 % 7` != 3; then bomb "Error on expr test 5"; fi
 a=100
 a=`expr $a + 1`
-if test $a != '101'; then echo Error on expr test 6; fi
+if test $a != '101'; then bomb "Error on expr test 6"; fi
 
 #Test fgrep
 fgrep "abc" alpha >z
-if cmp -s alpha z ; then : else echo Error on fgrep test 1; fi
+if cmp -s alpha z ; then : else bomb "Error on fgrep test 1"; fi
 fgrep "abc" num >z
-if test -s z; then echo Error on fgrep test 2; fi
+if test -s z; then bomb "Error on fgrep test 2"; fi
 cat alpha num >z
 fgrep "012" z >w
-if cmp -s w num; then : ; else echo Error fgrep test 3; fi
+if cmp -s w num; then : ; else bomb "Error fgrep test 3"; fi
 
 
 #Test find
 date >Rabbit
 echo "Rabbit" >y
 find . -name Rabbit -print >z
-if cmp -s y z; then : else echo Error on find test 1; fi
+if cmp -s y z; then : else bomb "Error on find test 1"; fi
 find . -name Bunny -print >z
-if test -s z; then echo Error on find test 2; fi
+if test -s z; then bomb "Error on find test 2"; fi
 rm Rabbit y z
 
 #Test grep
 grep "a" alpha >x
-if cmp -s x alpha; then : ; else echo Error on grep test 1; fi
+if cmp -s x alpha; then : ; else bomb "Error on grep test 1"; fi
 grep "a" ALPHA >x
-if test -s x; then echo Error on grep test 2; fi
+if test -s x; then bomb "Error on grep test 2"; fi
 grep -v "0" alpha >x
-if cmp -s x alpha; then : ; else echo Error on grep test 3; fi
+if cmp -s x alpha; then : ; else bomb "Error on grep test 3"; fi
 grep -s "a" XXX_nonexistent_file_XXX >x
 if test -s x; then echo "Error on grep test 4"; fi
-if grep -s "a" alpha >x; then : else echo Error on grep test 5; fi
-if grep -s "a" ALPHA >x; then echo Error on grep test 6; fi
+if grep -s "a" alpha >x; then : else bomb "Error on grep test 5"; fi
+if grep -s "a" ALPHA >x; then bomb "Error on grep test 6"; fi
 
 #Test head
 head -1 f1 >x
-if cmp -s x alpha; then : else echo Error on head test 1; fi
+if cmp -s x alpha; then : else bomb "Error on head test 1"; fi
 head -2 f1 >x
 cat alpha ALPHA >y
-if cmp -s x y; then : else echo Error on head test 2; fi
+if cmp -s x y; then : else bomb "Error on head test 2"; fi
 
 #Test ls
 mkdir FOO
@@ -154,37 +169,37 @@ x
 y
 z
 END
-if cmp -s w w1; then : ; else echo Error on ls test 1; fi
+if cmp -s w w1; then : ; else bomb "Error on ls test 1"; fi
 rm *
 cd ..
 rmdir FOO
 
 #Test mkdir/rmdir
 mkdir Foo Bar
-if test -d Foo; then : ; else echo Error on mkdir test 1; fi
-if test -d Bar; then : ; else echo Error on mkdir test 2; fi
+if test -d Foo; then : ; else bomb "Error on mkdir test 1"; fi
+if test -d Bar; then : ; else bomb "Error on mkdir test 2"; fi
 rmdir Foo Bar
-if test -d Foo; then echo Error on mkdir test 3; fi
-if test -d Foo; then echo Error on rmdir test 4; fi
+if test -d Foo; then bomb "Error on mkdir test 3"; fi
+if test -d Foo; then bomb "Error on rmdir test 4"; fi
 
 #Test mv
 mkdir MVDIR
 cp $f x
 mv x y
 mv y z
-if cmp -s $f z; then : ; else echo Error on mv test 1; fi
+if cmp -s $f z; then : ; else bomb "Error on mv test 1"; fi
 cp $f x
 mv x MVDIR/y
-if cmp -s $f MVDIR/y; then : ; else echo Error on mv test 2; fi
+if cmp -s $f MVDIR/y; then : ; else bomb "Error on mv test 2"; fi
 
 #Test rev
 rev <f1 | head -1 >ahpla
 echo "zyxwvutsrqponmlkjihgfedcba" >x
-if cmp -s x ahpla; then : ; else echo Error on rev test 1; fi
+if cmp -s x ahpla; then : ; else bomb "Error on rev test 1"; fi
 rev <$f >x
 rev <x >y
-if cmp -s $f x; then echo Error on rev test 2; fi
-if cmp -s $f y; then : ; else echo error on rev test 3; fi
+if cmp -s $f x; then bomb "Error on rev test 2"; fi
+if cmp -s $f y; then : ; else bomb "Error on rev test 3"; fi
 
 #Test shar
 cp $f w
@@ -194,16 +209,16 @@ cp num z
 shar w x y z >x1
 rm w x y z
 sh <x1 >/dev/null
-if cmp -s w $f; then : ; else echo Error on shar test 1; fi
-if cmp -s x alpha; then : ; else echo Error on shar test 2; fi
-if cmp -s y ALPHA; then : ; else echo Error on shar test 3; fi
-if cmp -s z num; then : ; else echo Error on shar test 4; fi
+if cmp -s w $f; then : ; else bomb "Error on shar test 1"; fi
+if cmp -s x alpha; then : ; else bomb "Error on shar test 2"; fi
+if cmp -s y ALPHA; then : ; else bomb "Error on shar test 3"; fi
+if cmp -s z num; then : ; else bomb "Error on shar test 4"; fi
 
 #Test sort
 sort <$f >x
 wc <$f >x1
 wc <x >x2
-if cmp -s x1 x2; then : ; else echo Error on sort test 1; fi
+if cmp -s x1 x2; then : ; else bomb "Error on sort test 1"; fi
 cat >x <<END
 demit 10
 epitonic 40
@@ -226,16 +241,16 @@ bibelot 3
 apoop 20
 END
 sort <x >x1
-if cmp -s y x1; then : ; else echo Error on sort test 2; fi
+if cmp -s y x1; then : ; else bomb "Error on sort test 2"; fi
 sort -r <x1 >x2
-if cmp -s x2 z; then : ; else echo Error on sort test 3; fi
+if cmp -s x2 z; then : ; else bomb "Error on sort test 3"; fi
 sort -k 2n <x |head -1 >y
 echo "bibelot 3" >z
-if cmp -s y z; then : ; else echo Error on sort test 4; fi
+if cmp -s y z; then : ; else bomb "Error on sort test 4"; fi
 
 #Test tail
 tail -1 f1 >x
-if cmp -s x special; then : ; else echo Error on tail test 1; fi
+if cmp -s x special; then : ; else bomb "Error on tail test 1"; fi
 
 #Test tsort
 cat >x <<END
@@ -265,24 +280,24 @@ p
 z
 END
 tsort <x >y
-if cmp -s y answer; then : ; else echo Error on tsort test 1; fi
+if cmp -s y answer; then : ; else bomb "Error on tsort test 1"; fi
 
 #Test uue/uud
 cp $f x
 uue x
-if test -s x.uue; then : ; else echo Error on uue/uud test 1; fi
+if test -s x.uue; then : ; else bomb "Error on uue/uud test 1"; fi
 rm x
 uud x.uue
-if cmp -s x $f; then : ; else echo Error on uue/uud test 2; fi
+if cmp -s x $f; then : ; else bomb "Error on uue/uud test 2"; fi
 
 compress -fc x >x.Z 2>/dev/null
 uue x.Z
 rm x x.Z
 uud x.uue
 compress -cd x.Z >x
-if cmp -s x $f; then : ; else echo Error on uue/uud test 3; fi
+if cmp -s x $f; then : ; else bomb "Error on uue/uud test 3"; fi
 
 cd ..
-rm -rf DIR_SH1
+rm -rf $TESTDIR
 
 echo ok
index d55af2a3fb0b42f3b50448af599fb81f70e992f3..0a30b420f64630cd87a576ca6b1f924332c61719 100755 (executable)
@@ -2,18 +2,32 @@
 
 # Shell script #2 used to test MINIX.
 
+# Helper function
+bomb() {
+    echo $*
+    cd ..
+    rm -rf $TESTDIR
+    exit 1
+}
+
 PATH=:/bin:/usr/bin:/usr/pkg/bin
 export PATH
 
+TESTDIR=DIR_SH2
+export TESTDIR
+
+OLDPWD=`pwd`
+export OLDPWD
+
 # CC="exec cc -wo -F"          # nonstandard flags for ACK :-(
 CC=clang
 
 ARCH=`arch`
 
-echo -n "Shell test  2 "
-rm -rf DIR_SH2
-mkdir DIR_SH2                  # all files are created here
-cd DIR_SH2
+echo -n  "Shell test  2 "
+rm -rf $TESTDIR
+mkdir $TESTDIR                 # all files are created here
+cd $TESTDIR
 
 cat >file <<END
 The time has come the walrus said to talk of many things
@@ -43,18 +57,18 @@ cat >answer <<END           # C program should produce these results
 END
 
 make
-if test -f a.out; then : ; else echo Compilation failed; fi
+if test -f a.out; then : ; else bomb "Compilation failed"; fi
 a.out >x
-if test -f x; then : ; else echo No compiler output; fi
-if cmp -s x answer; then : ; else echo Error in cc test 1; fi
+if test -f x; then : ; else bomb "No compiler output"; fi
+if cmp -s x answer; then : ; else bomb "Error in cc test 1"; fi
 
 #Test chmod
-echo Hi there folks >x
-if test -r x; then : ; else echo Error on chmod test 1; fi
+echo "Hi there folks" >x
+if test -r x; then : ; else bomb "Error on chmod test 1"; fi
 chmod 377 x
-if test -r x; then test -w / || echo Error on chmod test 2; fi
+if test -r x; then test -w / || bomb "Error on chmod test 2"; fi
 chmod 700 x
-if test -r x; then : ; else echo Error on chmod test 3; fi
+if test -r x; then : ; else bomb "Error on chmod test 3"; fi
 
 #Test cut
 cat >x <<END                   # x is a test file with 3 columns
@@ -72,24 +86,24 @@ black
 END
 
 cut -c 3-7 x >y                        # extract columns 3-7
-if cmp -s y answer; then : ; else echo Error in cut test 1; fi
+if cmp -s y answer; then : ; else bomb "Error in cut test 1"; fi
 
 #Test dd
 dd if=$f of=x bs=12 count=1 2>/dev/null                # x = bytes 0-11
 dd if=$f of=y bs=6 count=4 skip=2 2>/dev/null  # y = bytes 11-35
 cat x y >z                                     # z = bytes 0-35
 dd if=$f of=answer bs=9 count=4 2>/dev/null    # answer = bytes 0-35
-if cmp -s z answer; then : ; else echo Error in dd test 1; fi
+if cmp -s z answer; then : ; else bomb "Error in dd test 1"; fi
 
 #Test df                       # hard to make a sensible Test here
 rm ?
 df >x
-if test -r x; then : ; else echo Error in df Test 1; fi
+if test -r x; then : ; else bomb "Error in df Test 1"; fi
 
 #Test du                       # see df
 rm ?
 du >x
-if test -r x; then : ; else echo Error in du Test 1; fi
+if test -r x; then : ; else bomb "Error in du Test 1"; fi
 
 #Test od                       
 head -1 $f |od >x              # see if od converts ascii to octal ok
@@ -112,7 +126,7 @@ cat >answer <<END
 END
 fi
 
-if cmp -s x answer; then : ; else echo Error in od test 1; fi
+if cmp -s x answer; then : ; else bomb "Error in od test 1"; fi
 
 head -1 $f |od -d >x           # see if od converts ascii to decimal ok
 if [ $ARCH = i86 -o $ARCH = i386 ]
@@ -134,7 +148,7 @@ cat >answer <<END
 END
 fi
 
-if cmp -s x answer; then : ; else echo Error in od test 2; fi
+if cmp -s x answer; then : ; else bomb "Error in od test 2"; fi
 
 #Test paste
 cat >x <<END
@@ -155,14 +169,14 @@ blue      blauw
 END
 
 paste x y >z
-if cmp -s z answer; then : ; else echo Error in paste test 1; fi
+if cmp -s z answer; then : ; else bomb "Error in paste test 1"; fi
 
 #Test prep
-echo >x <<END
+prep >x <<END
 "Hi," said Carol, laughing, "How's life?"
 END
 
-echo >answer <<END
+cat >answer <<END
 hi
 said
 carol
@@ -171,21 +185,21 @@ how's
 life
 END
 
-if cmp -s x answer; then : ; else echo Error in prep test 1; fi
+if cmp -s x answer; then : ; else bomb "Error in prep test 1"; fi
 
 #Test printenv
 printenv >x
-if grep HOME  x >/dev/null; then : ; else echo Error in printenv test 1; fi
-if grep PATH  x >/dev/null; then : ; else echo Error in printenv test 2; fi
-if grep SHELL x >/dev/null; then : ; else echo Error in printenv test 3; fi
-if grep USER  x >/dev/null; then : ; else echo Error in printenv test 4; fi
+if grep HOME  x >/dev/null; then : ; else bomb "Error in printenv test 1"; fi
+if grep PATH  x >/dev/null; then : ; else bomb "Error in printenv test 2"; fi
+if grep SHELL x >/dev/null; then : ; else bomb "Error in printenv test 3"; fi
+if grep USER  x >/dev/null; then : ; else bomb "Error in printenv test 4"; fi
 
 #Test pwd
 pwd >Pwd_file
 cd `pwd`
 pwd >x
-if test -s Pwd_file;  then : ; else echo Error in pwd test 1; fi
-if cmp -s Pwd_file x; then : ; else echo Error in pwd test 2; fi
+if test -s Pwd_file;  then : ; else bomb "Error in pwd test 1"; fi
+if cmp -s Pwd_file x; then : ; else bomb "Error in pwd test 2"; fi
 
 #Test strings
 strings a.out | grep "MS-DOS" >x
@@ -193,7 +207,7 @@ cat >answer <<END
 MS-DOS: Just say no
 END
 
-if cmp -s x answer; then : ; else echo Error in strings test 1; fi
+if cmp -s x answer; then : ; else bomb "Error in strings test 1"; fi
 
 #Test sum
 sum $f >x
@@ -201,14 +215,14 @@ cat >answer <<END
 29904 1 $f
 END
 
-if cmp -s x answer; then : ; else echo Error in sum test 1; fi
+if cmp -s x answer; then : ; else bomb "Error in sum test 1"; fi
 
 #Test tee
 cat $f | tee x >/dev/null
-if cmp -s x $f; then : ; else echo Error in tee test 1; fi
+if cmp -s x $f; then : ; else bomb "Error in tee test 1"; fi
 
 #Test true
-if true ; then : ; else echo Error in true test 1; fi
+if true ; then : ; else bomb "Error in true test 1"; fi
 
 #Test uniq
 cat >x <<END
@@ -225,7 +239,7 @@ cat >answer <<END
 END
 
 uniq <x >y
-if cmp -s y answer; then : ; else echo Error in uniq test 1; fi
+if cmp -s y answer; then : ; else bomb "Error in uniq test 1"; fi
 
 #Test pipelines
 cat >x <<END
@@ -248,13 +262,13 @@ END
 
 prep x | sort | uniq -c >y1
 sort <y1 >y
-if cmp -s y answer; then : ; else echo Error in pipeline test 1; fi
+if cmp -s y answer; then : ; else bomb "Error in pipeline test 1"; fi
 
 cat $f $f $f | sort | uniq >x
 sort <$f >y
-if cmp -s x y; then : ; else echo Error in pipeline test 2; fi
+if cmp -s x y; then : ; else bomb "Error in pipeline test 2"; fi
 
 cd ..
-rm -rf DIR_SH2
+rm -rf $TESTDIR
 
 echo ok