311 lines
		
	
	
		
			6.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			311 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 /bin/cp
 | 
						|
ar r x.a /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 /bin/cp; then : ; else Error on ar test 5; fi
 | 
						|
if cmp -s cat /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
 |