3 # Shell script #2 used to test MINIX.
13 PATH
=:/bin
:/usr
/bin
:/usr
/pkg
/bin
22 # CC="exec cc -wo -F" # nonstandard flags for ACK :-(
23 if which clang
2>/dev
/null
>/dev
/null
25 elif which gcc
2>/dev
/null
>/dev
/null
27 else echo "Can't find a compiler, skipping test"
33 echo -n "Shell test 2 "
35 mkdir
$TESTDIR # all files are created here
39 The time has come the walrus said to talk of many things
40 Of shoes and ships and sealing wax of cabbages and kings
41 Of why the sea is boiling hot and whether pigs have wings
45 cat >makefile
<<END # create a makefile
47 @$CC x.c >/dev/null 2>&1
49 cat >x.c
<<END # create a C program
51 char s[] = {"MS-DOS: Just say no"}; /* used by strings later */
55 for (i = 15; i < 18; i++) printf("%d\\n",i*i);
59 cat >answer
<<END # C program should produce these results
66 if test -f a.out
; then : ; else bomb
"Compilation failed"; fi
68 if test -f x
; then : ; else bomb
"No compiler output"; fi
69 if cmp -s x answer
; then : ; else bomb
"Error in cc test 1"; fi
72 echo "Hi there folks" >x
73 if test -r x
; then : ; else bomb
"Error on chmod test 1"; fi
75 if test -r x
; then test -w / || bomb
"Error on chmod test 2"; fi
77 if test -r x
; then : ; else bomb
"Error on chmod test 3"; fi
80 cat >x
<<END # x is a test file with 3 columns
87 cat >answer
<<END # after cutting out cols 3-7, we get this
94 cut
-c 3-7 x
>y
# extract columns 3-7
95 if cmp -s y answer
; then : ; else bomb
"Error in cut test 1"; fi
98 dd if=$f of
=x bs
=12 count
=1 2>/dev
/null
# x = bytes 0-11
99 dd if=$f of
=y bs
=6 count
=4 skip
=2 2>/dev
/null
# y = bytes 11-35
100 cat x y
>z
# z = bytes 0-35
101 dd if=$f of
=answer bs
=9 count
=4 2>/dev
/null
# answer = bytes 0-35
102 if cmp -s z answer
; then : ; else bomb
"Error in dd test 1"; fi
104 #Test df # hard to make a sensible Test here
107 if test -r x
; then : ; else bomb
"Error in df Test 1"; fi
112 if test -r x
; then : ; else bomb
"Error in du Test 1"; fi
115 head -1 $f |
od >x
# see if od converts ascii to octal ok
116 if [ $ARCH = i86
-o $ARCH = i386
-o $ARCH = arm
]
119 0000000 064124 020145 064564 062555 064040 071541 061440 066557
120 0000020 020145 064164 020145 060567 071154 071565 071440 064541
121 0000040 020144 067564 072040 066141 020153 063157 066440 067141
122 0000060 020171 064164 067151 071547 000012
127 0000000 052150 062440 072151 066545 020150 060563 020143 067555
128 0000020 062440 072150 062440 073541 066162 072563 020163 060551
129 0000040 062040 072157 020164 060554 065440 067546 020155 060556
130 0000060 074440 072150 064556 063563 005000
135 if cmp -s x answer
; then : ; else bomb
"Error in od test 1"; fi
137 head -1 $f |
od -d >x
# see if od converts ascii to decimal ok
138 if [ $ARCH = i86
-o $ARCH = i386
-o $ARCH = arm
]
141 0000000 26708 08293 26996 25965 26656 29537 25376 28015
142 0000020 08293 26740 08293 24951 29292 29557 29472 26977
143 0000040 08292 28532 29728 27745 08299 26223 27936 28257
144 0000060 08313 26740 28265 29543 00010
149 0000000 21608 25888 29801 28005 08296 24947 08291 28525
150 0000020 25888 29800 25888 30561 27762 30067 08307 24937
151 0000040 25632 29807 08308 24940 27424 28518 08301 24942
152 0000060 31008 29800 26990 26483 02560
157 if cmp -s x answer
; then : ; else bomb
"Error in od test 2"; fi
178 if cmp -s z answer
; then : ; else bomb
"Error in paste test 1"; fi
182 "Hi," said Carol, laughing, "How's life?"
194 if cmp -s x answer
; then : ; else bomb
"Error in prep test 1"; fi
198 if grep HOME x
>/dev
/null
; then : ; else bomb
"Error in printenv test 1"; fi
199 if grep PATH x
>/dev
/null
; then : ; else bomb
"Error in printenv test 2"; fi
200 if grep SHELL x
>/dev
/null
; then : ; else bomb
"Error in printenv test 3"; fi
201 if grep USER x
>/dev
/null
; then : ; else bomb
"Error in printenv test 4"; fi
207 if test -s Pwd_file
; then : ; else bomb
"Error in pwd test 1"; fi
208 if cmp -s Pwd_file x
; then : ; else bomb
"Error in pwd test 2"; fi
211 strings a.out |
grep "MS-DOS" >x
216 if cmp -s x answer
; then : ; else bomb
"Error in strings test 1"; fi
224 if cmp -s x answer
; then : ; else bomb
"Error in sum test 1"; fi
227 cat $f |
tee x
>/dev
/null
228 if cmp -s x
$f; then : ; else bomb
"Error in tee test 1"; fi
231 if true
; then : ; else bomb
"Error in true test 1"; fi
248 if cmp -s y answer
; then : ; else bomb
"Error in uniq test 1"; fi
269 prep x |
sort |
uniq -c >y1
271 if cmp -s y answer
; then : ; else bomb
"Error in pipeline test 1"; fi
273 cat $f $f $f |
sort |
uniq >x
275 if cmp -s x y
; then : ; else bomb
"Error in pipeline test 2"; fi