1569a60360
. renamed sh*.sh to testsh*.sh . invoked shell tests from run script like the other test commands (that was the point of renaming)
310 lines
6.6 KiB
Bash
Executable file
310 lines
6.6 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
# Shell script used to test MINIX.
|
|
|
|
PATH=:/bin:/usr/bin
|
|
export PATH
|
|
|
|
echo -n "Shell test 1 "
|
|
rm -rf DIR_SH1
|
|
mkdir DIR_SH1
|
|
cd DIR_SH1
|
|
|
|
f=../test1.c
|
|
if test -r $f; then : ; else echo sh1 cannot read $f; exit 1; fi
|
|
|
|
#Initial setup
|
|
echo "abcdefghijklmnopqrstuvwxyz" >alpha
|
|
echo "ABCDEFGHIJKLMNOPQRSTUVWXYZ" >ALPHA
|
|
echo "0123456789" >num
|
|
echo "!@#$%^&*()_+=-{}[]:;<>?/.," >special
|
|
cp /etc/rc rc
|
|
cp /etc/passwd passwd
|
|
cat alpha ALPHA num rc passwd special >tmp
|
|
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
|
|
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
|
|
cat <y >z
|
|
if cmp -s y z; then : ; else echo Error on cat test 2; fi
|
|
|
|
#Test ar
|
|
cat passwd >p
|
|
cp passwd q
|
|
if cmp -s p q; then : ; else echo Error on ar test 1; fi
|
|
date >r
|
|
ar r x.a p q r 2>/dev/null
|
|
ar r x.a /usr/bin/cp
|
|
ar r x.a /usr/bin/cat
|
|
rm p q
|
|
mv r R
|
|
ar x x.a
|
|
if cmp -s p /etc/passwd; then : ; else Error on ar test 2; fi
|
|
if cmp -s q /etc/passwd; then : ; else Error on ar test 3; fi
|
|
if cmp -s r R; then : ; else Error on ar test 4; fi
|
|
if cmp -s cp /usr/bin/cp; then : ; else Error on ar test 5; fi
|
|
if cmp -s cat /usr/bin/cat; then : ; else Error on ar test 6; fi
|
|
rm cp cat p q r
|
|
ar d x.a r >/dev/null
|
|
ar x x.a
|
|
if test -r r; then echo Error on ar test 7; fi
|
|
rm -rf p q r R
|
|
|
|
#Test basename
|
|
if test `basename /usr/ast/foo.c .c` != 'foo'
|
|
then echo Error on basename test 1
|
|
fi
|
|
|
|
if test `basename a/b/c/d` != 'd'; then Error on basename test 2; fi
|
|
|
|
#Test cdiff, sed, and patch
|
|
cp $f x.c # x.c is a copy $f
|
|
echo "/a/s//#####/g" >s # create sed script
|
|
sed -f s <x.c >y.c # y.c is new version of x.c
|
|
cdiff 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
|
|
rm x.c* y.c s y
|
|
|
|
#Test comm, grep -v
|
|
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
|
|
|
|
comm -13 x y >z # should be empty
|
|
if test -s z; then echo 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
|
|
rm -rf x.c.Z y
|
|
|
|
#Test ed
|
|
cp $f x # copy $f to x
|
|
cat >y <<END
|
|
g/a/s//#####/g
|
|
g/b/s//@@@@@/g
|
|
g/c/s//!!!!!/g
|
|
w
|
|
q
|
|
END
|
|
ed x <y >/dev/null
|
|
cat >y <<END
|
|
g/#####/s//a/g
|
|
g/@@@@@/s//b/g
|
|
g/!!!!!/s//c/g
|
|
w
|
|
q
|
|
END
|
|
ed x <y >/dev/null
|
|
if cmp -s x $f; then : ; else echo 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
|
|
a=100
|
|
a=`expr $a + 1`
|
|
if test $a != '101'; then echo 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
|
|
fgrep "abc" num >z
|
|
if test -s z; then echo 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
|
|
|
|
|
|
#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
|
|
find . -name Bunny -print >z
|
|
if test -s z; then echo 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
|
|
grep "a" ALPHA >x
|
|
if test -s x; then echo 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
|
|
grep -s "a" alpha >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
|
|
|
|
#Test head
|
|
head -1 f1 >x
|
|
if cmp -s x alpha; then : else echo 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
|
|
|
|
#Test ls
|
|
mkdir FOO
|
|
cp passwd FOO/z
|
|
cp alpha FOO/x
|
|
cp ALPHA FOO/y
|
|
cd FOO
|
|
ls >w
|
|
cat >w1 <<END
|
|
w
|
|
x
|
|
y
|
|
z
|
|
END
|
|
if cmp -s w w1; then : ; else echo 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
|
|
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
|
|
|
|
#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
|
|
cp $f x
|
|
mv x MVDIR/y
|
|
if cmp -s $f MVDIR/y; then : ; else echo 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
|
|
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
|
|
|
|
#Test shar
|
|
cp $f w
|
|
cp alpha x
|
|
cp ALPHA y
|
|
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
|
|
|
|
#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
|
|
cat >x <<END
|
|
demit 10
|
|
epitonic 40
|
|
apoop 20
|
|
bibelot 3
|
|
comate 4
|
|
END
|
|
cat >y <<END
|
|
apoop 20
|
|
bibelot 3
|
|
comate 4
|
|
demit 10
|
|
epitonic 40
|
|
END
|
|
cat >z <<END
|
|
epitonic 40
|
|
demit 10
|
|
comate 4
|
|
bibelot 3
|
|
apoop 20
|
|
END
|
|
sort <x >x1
|
|
if cmp -s y x1; then : ; else echo Error on sort test 2; fi
|
|
sort -r <x1 >x2
|
|
if cmp -s x2 z; then : ; else echo Error on sort test 3; fi
|
|
sort +1 -n <x |head -1 >y
|
|
echo "bibelot 3" >z
|
|
if cmp -s y z; then : ; else echo 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
|
|
|
|
#Test tsort
|
|
cat >x <<END
|
|
a d
|
|
b e
|
|
c f
|
|
a c
|
|
p z
|
|
k p
|
|
a k
|
|
a b
|
|
b c
|
|
c d
|
|
d e
|
|
e f
|
|
f k
|
|
END
|
|
cat >answer <<END
|
|
a
|
|
b
|
|
c
|
|
d
|
|
e
|
|
f
|
|
k
|
|
p
|
|
z
|
|
END
|
|
tsort <x >y
|
|
if cmp -s y answer; then : ; else echo 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
|
|
rm x
|
|
uud x.uue
|
|
if cmp -s x $f; then : ; else echo 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
|
|
|
|
cd ..
|
|
rm -rf DIR_SH1
|
|
|
|
echo ok
|