1*3e3895bfSKrzysztof Piecuch# $FreeBSD: head/bin/sh/tests/expansion/arith2.0 209652 2010-07-02 21:31:24Z jilles $
23df4d8b0SPeter Avalos
33df4d8b0SPeter Avalosfailures=0
43df4d8b0SPeter Avalos
53df4d8b0SPeter Avaloscheck() {
63df4d8b0SPeter Avalos	if [ $(($1)) != $2 ]; then
73df4d8b0SPeter Avalos		failures=$((failures+1))
83df4d8b0SPeter Avalos		echo "For $1, expected $2 actual $(($1))"
93df4d8b0SPeter Avalos	fi
103df4d8b0SPeter Avalos}
113df4d8b0SPeter Avalos
123df4d8b0SPeter Avalos# variables
133df4d8b0SPeter Avalosunset v
143df4d8b0SPeter Avaloscheck "v=2" 2
153df4d8b0SPeter Avaloscheck "v" 2
163df4d8b0SPeter Avaloscheck "$(($v))" 2
173df4d8b0SPeter Avaloscheck "v+=1" 3
183df4d8b0SPeter Avaloscheck "v" 3
193df4d8b0SPeter Avalos
203df4d8b0SPeter Avalos# constants
213df4d8b0SPeter Avaloscheck "4611686018427387904" 4611686018427387904
223df4d8b0SPeter Avaloscheck "0x4000000000000000" 4611686018427387904
233df4d8b0SPeter Avaloscheck "0400000000000000000000" 4611686018427387904
243df4d8b0SPeter Avaloscheck "0x4Ab0000000000000" 5381801554707742720
253df4d8b0SPeter Avaloscheck "010" 8
263df4d8b0SPeter Avalos
273df4d8b0SPeter Avalos# try out all operators
283df4d8b0SPeter Avalosv=42
293df4d8b0SPeter Avaloscheck "!v" 0
303df4d8b0SPeter Avaloscheck "!!v" 1
313df4d8b0SPeter Avaloscheck "!0" 1
323df4d8b0SPeter Avaloscheck "~0" -1
333df4d8b0SPeter Avaloscheck "~(-1)" 0
343df4d8b0SPeter Avaloscheck "-0" 0
353df4d8b0SPeter Avaloscheck "-v" -42
363df4d8b0SPeter Avaloscheck "v*v" 1764
373df4d8b0SPeter Avaloscheck "v/2" 21
383df4d8b0SPeter Avaloscheck "v%10" 2
393df4d8b0SPeter Avaloscheck "v+v" 84
403df4d8b0SPeter Avaloscheck "v-4" 38
413df4d8b0SPeter Avaloscheck "v<<1" 84
423df4d8b0SPeter Avaloscheck "v>>1" 21
433df4d8b0SPeter Avaloscheck "v<43" 1
443df4d8b0SPeter Avaloscheck "v>42" 0
453df4d8b0SPeter Avaloscheck "v<=43" 1
463df4d8b0SPeter Avaloscheck "v>=43" 0
473df4d8b0SPeter Avaloscheck "v==41" 0
483df4d8b0SPeter Avaloscheck "v!=42" 0
493df4d8b0SPeter Avaloscheck "v&3" 2
503df4d8b0SPeter Avaloscheck "v^3" 41
513df4d8b0SPeter Avaloscheck "v|3" 43
523df4d8b0SPeter Avaloscheck "v>=40&&v<=44" 1
533df4d8b0SPeter Avaloscheck "v<40||v>44" 0
543df4d8b0SPeter Avaloscheck "(v=42)&&(v+=1)==43" 1
553df4d8b0SPeter Avaloscheck "v" 43
563df4d8b0SPeter Avaloscheck "(v=42)&&(v-=1)==41" 1
573df4d8b0SPeter Avaloscheck "v" 41
583df4d8b0SPeter Avaloscheck "(v=42)&&(v*=2)==84" 1
593df4d8b0SPeter Avaloscheck "v" 84
603df4d8b0SPeter Avaloscheck "(v=42)&&(v/=10)==4" 1
613df4d8b0SPeter Avaloscheck "v" 4
623df4d8b0SPeter Avaloscheck "(v=42)&&(v%=10)==2" 1
633df4d8b0SPeter Avaloscheck "v" 2
643df4d8b0SPeter Avaloscheck "(v=42)&&(v<<=1)==84" 1
653df4d8b0SPeter Avaloscheck "v" 84
663df4d8b0SPeter Avaloscheck "(v=42)&&(v>>=2)==10" 1
673df4d8b0SPeter Avaloscheck "v" 10
683df4d8b0SPeter Avaloscheck "(v=42)&&(v&=32)==32" 1
693df4d8b0SPeter Avaloscheck "v" 32
703df4d8b0SPeter Avaloscheck "(v=42)&&(v^=32)==10" 1
713df4d8b0SPeter Avaloscheck "v" 10
723df4d8b0SPeter Avaloscheck "(v=42)&&(v|=32)==42" 1
733df4d8b0SPeter Avaloscheck "v" 42
743df4d8b0SPeter Avalos
753df4d8b0SPeter Avalos# missing: ternary
763df4d8b0SPeter Avalos
773df4d8b0SPeter Avalosexit $((failures != 0))
78