. lets test work in 'pure DESTDIR' environment Change-Id: If7d45f01f20bc6369455d706b5ad47d36946fce3
		
			
				
	
	
		
			281 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			281 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/sh
 | 
						|
 | 
						|
# 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 :-(
 | 
						|
if which clang 2>/dev/null
 | 
						|
then	CC=clang
 | 
						|
elif which gcc 2>/dev/null
 | 
						|
then	CC=gcc
 | 
						|
else	echo "Can't find a compiler, skipping test"
 | 
						|
	exit 0
 | 
						|
fi
 | 
						|
 | 
						|
ARCH=`arch`
 | 
						|
 | 
						|
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
 | 
						|
Of shoes and ships and sealing wax of cabbages and kings
 | 
						|
Of why the sea is boiling hot and whether pigs have wings
 | 
						|
END
 | 
						|
f=file				# scratch file
 | 
						|
 | 
						|
cat >makefile <<END		# create a makefile
 | 
						|
all:	x.c
 | 
						|
	@$CC x.c >/dev/null 2>&1
 | 
						|
END
 | 
						|
cat >x.c <<END			# create a C program
 | 
						|
#include <stdio.h>
 | 
						|
char s[] = {"MS-DOS: Just say no"};	/* used by strings later */
 | 
						|
main() 
 | 
						|
{
 | 
						|
  int i; 
 | 
						|
  for (i = 15; i < 18; i++) printf("%d\\n",i*i);
 | 
						|
}
 | 
						|
END
 | 
						|
 | 
						|
cat >answer <<END		# C program should produce these results
 | 
						|
225
 | 
						|
256
 | 
						|
289
 | 
						|
END
 | 
						|
 | 
						|
make
 | 
						|
if test -f a.out; then : ; else bomb "Compilation failed"; fi
 | 
						|
a.out >x
 | 
						|
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 bomb "Error on chmod test 1"; fi
 | 
						|
chmod 377 x
 | 
						|
if test -r x; then test -w / || bomb "Error on chmod test 2"; fi
 | 
						|
chmod 700 x
 | 
						|
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
 | 
						|
1 white bunny
 | 
						|
2 gray  rabbits
 | 
						|
3 brown hares
 | 
						|
4 black conies
 | 
						|
END
 | 
						|
 | 
						|
cat >answer <<END		# after cutting out cols 3-7, we get this
 | 
						|
white
 | 
						|
gray 
 | 
						|
brown
 | 
						|
black
 | 
						|
END
 | 
						|
 | 
						|
cut -c 3-7 x >y			# extract columns 3-7
 | 
						|
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 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 bomb "Error in df Test 1"; fi
 | 
						|
 | 
						|
#Test du			# see df
 | 
						|
rm ?
 | 
						|
du >x
 | 
						|
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
 | 
						|
if [ $ARCH = i86 -o $ARCH = i386 ]
 | 
						|
then
 | 
						|
cat >answer <<END
 | 
						|
0000000 064124 020145 064564 062555 064040 071541 061440 066557
 | 
						|
0000020 020145 064164 020145 060567 071154 071565 071440 064541
 | 
						|
0000040 020144 067564 072040 066141 020153 063157 066440 067141
 | 
						|
0000060 020171 064164 067151 071547 000012
 | 
						|
0000071
 | 
						|
END
 | 
						|
else
 | 
						|
cat >answer <<END
 | 
						|
0000000 052150 062440 072151 066545 020150 060563 020143 067555
 | 
						|
0000020 062440 072150 062440 073541 066162 072563 020163 060551
 | 
						|
0000040 062040 072157 020164 060554 065440 067546 020155 060556
 | 
						|
0000060 074440 072150 064556 063563 005000
 | 
						|
0000071
 | 
						|
END
 | 
						|
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 ]
 | 
						|
then
 | 
						|
cat >answer <<END
 | 
						|
0000000 26708 08293 26996 25965 26656 29537 25376 28015
 | 
						|
0000020 08293 26740 08293 24951 29292 29557 29472 26977
 | 
						|
0000040 08292 28532 29728 27745 08299 26223 27936 28257
 | 
						|
0000060 08313 26740 28265 29543 00010
 | 
						|
0000071
 | 
						|
END
 | 
						|
else
 | 
						|
cat >answer <<END
 | 
						|
0000000 21608 25888 29801 28005 08296 24947 08291 28525
 | 
						|
0000020 25888 29800 25888 30561 27762 30067 08307 24937
 | 
						|
0000040 25632 29807 08308 24940 27424 28518 08301 24942
 | 
						|
0000060 31008 29800 26990 26483 02560
 | 
						|
0000071
 | 
						|
END
 | 
						|
fi
 | 
						|
 | 
						|
if cmp -s x answer; then : ; else bomb "Error in od test 2"; fi
 | 
						|
 | 
						|
#Test paste
 | 
						|
cat >x <<END
 | 
						|
red
 | 
						|
green
 | 
						|
blue
 | 
						|
END
 | 
						|
 | 
						|
cat >y <<END
 | 
						|
rood
 | 
						|
groen
 | 
						|
blauw
 | 
						|
END
 | 
						|
cat >answer <<END
 | 
						|
red	rood
 | 
						|
green	groen
 | 
						|
blue	blauw
 | 
						|
END
 | 
						|
 | 
						|
paste x y >z
 | 
						|
if cmp -s z answer; then : ; else bomb "Error in paste test 1"; fi
 | 
						|
 | 
						|
#Test prep
 | 
						|
prep >x <<END
 | 
						|
"Hi," said Carol, laughing, "How's life?"
 | 
						|
END
 | 
						|
 | 
						|
cat >answer <<END
 | 
						|
hi
 | 
						|
said
 | 
						|
carol
 | 
						|
laughing
 | 
						|
how's
 | 
						|
life
 | 
						|
END
 | 
						|
 | 
						|
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 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 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
 | 
						|
cat >answer <<END
 | 
						|
MS-DOS: Just say no
 | 
						|
END
 | 
						|
 | 
						|
if cmp -s x answer; then : ; else bomb "Error in strings test 1"; fi
 | 
						|
 | 
						|
#Test sum
 | 
						|
sum $f >x
 | 
						|
cat >answer <<END
 | 
						|
29904 1 $f
 | 
						|
END
 | 
						|
 | 
						|
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 bomb "Error in tee test 1"; fi
 | 
						|
 | 
						|
#Test true
 | 
						|
if true ; then : ; else bomb "Error in true test 1"; fi
 | 
						|
 | 
						|
#Test uniq
 | 
						|
cat >x <<END
 | 
						|
100
 | 
						|
200
 | 
						|
200
 | 
						|
300
 | 
						|
END
 | 
						|
 | 
						|
cat >answer <<END
 | 
						|
100
 | 
						|
200
 | 
						|
300
 | 
						|
END
 | 
						|
 | 
						|
uniq <x >y
 | 
						|
if cmp -s y answer; then : ; else bomb "Error in uniq test 1"; fi
 | 
						|
 | 
						|
#Test pipelines
 | 
						|
cat >x <<END
 | 
						|
the big black dog
 | 
						|
the little white cat
 | 
						|
the big white sheep
 | 
						|
the little black cat
 | 
						|
END
 | 
						|
 | 
						|
cat >answer <<END
 | 
						|
   1 dog
 | 
						|
   1 sheep
 | 
						|
   2 big
 | 
						|
   2 black
 | 
						|
   2 cat
 | 
						|
   2 little
 | 
						|
   2 white
 | 
						|
   4 the
 | 
						|
END
 | 
						|
 | 
						|
prep x | sort | uniq -c >y1
 | 
						|
sort <y1 >y
 | 
						|
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 bomb "Error in pipeline test 2"; fi
 | 
						|
 | 
						|
cd ..
 | 
						|
rm -rf $TESTDIR
 | 
						|
 | 
						|
echo ok
 |