1*3df4d8b0SPeter Avalos# $FreeBSD: src/tools/regression/bin/sh/expansion/arith2.0,v 1.3 2010/07/02 21:31:24 jilles Exp $
2*3df4d8b0SPeter Avalos
3*3df4d8b0SPeter Avalosfailures=0
4*3df4d8b0SPeter Avalos
5*3df4d8b0SPeter Avaloscheck() {
6*3df4d8b0SPeter Avalos	if [ $(($1)) != $2 ]; then
7*3df4d8b0SPeter Avalos		failures=$((failures+1))
8*3df4d8b0SPeter Avalos		echo "For $1, expected $2 actual $(($1))"
9*3df4d8b0SPeter Avalos	fi
10*3df4d8b0SPeter Avalos}
11*3df4d8b0SPeter Avalos
12*3df4d8b0SPeter Avalos# variables
13*3df4d8b0SPeter Avalosunset v
14*3df4d8b0SPeter Avaloscheck "v=2" 2
15*3df4d8b0SPeter Avaloscheck "v" 2
16*3df4d8b0SPeter Avaloscheck "$(($v))" 2
17*3df4d8b0SPeter Avaloscheck "v+=1" 3
18*3df4d8b0SPeter Avaloscheck "v" 3
19*3df4d8b0SPeter Avalos
20*3df4d8b0SPeter Avalos# constants
21*3df4d8b0SPeter Avaloscheck "4611686018427387904" 4611686018427387904
22*3df4d8b0SPeter Avaloscheck "0x4000000000000000" 4611686018427387904
23*3df4d8b0SPeter Avaloscheck "0400000000000000000000" 4611686018427387904
24*3df4d8b0SPeter Avaloscheck "0x4Ab0000000000000" 5381801554707742720
25*3df4d8b0SPeter Avaloscheck "010" 8
26*3df4d8b0SPeter Avalos
27*3df4d8b0SPeter Avalos# try out all operators
28*3df4d8b0SPeter Avalosv=42
29*3df4d8b0SPeter Avaloscheck "!v" 0
30*3df4d8b0SPeter Avaloscheck "!!v" 1
31*3df4d8b0SPeter Avaloscheck "!0" 1
32*3df4d8b0SPeter Avaloscheck "~0" -1
33*3df4d8b0SPeter Avaloscheck "~(-1)" 0
34*3df4d8b0SPeter Avaloscheck "-0" 0
35*3df4d8b0SPeter Avaloscheck "-v" -42
36*3df4d8b0SPeter Avaloscheck "v*v" 1764
37*3df4d8b0SPeter Avaloscheck "v/2" 21
38*3df4d8b0SPeter Avaloscheck "v%10" 2
39*3df4d8b0SPeter Avaloscheck "v+v" 84
40*3df4d8b0SPeter Avaloscheck "v-4" 38
41*3df4d8b0SPeter Avaloscheck "v<<1" 84
42*3df4d8b0SPeter Avaloscheck "v>>1" 21
43*3df4d8b0SPeter Avaloscheck "v<43" 1
44*3df4d8b0SPeter Avaloscheck "v>42" 0
45*3df4d8b0SPeter Avaloscheck "v<=43" 1
46*3df4d8b0SPeter Avaloscheck "v>=43" 0
47*3df4d8b0SPeter Avaloscheck "v==41" 0
48*3df4d8b0SPeter Avaloscheck "v!=42" 0
49*3df4d8b0SPeter Avaloscheck "v&3" 2
50*3df4d8b0SPeter Avaloscheck "v^3" 41
51*3df4d8b0SPeter Avaloscheck "v|3" 43
52*3df4d8b0SPeter Avaloscheck "v>=40&&v<=44" 1
53*3df4d8b0SPeter Avaloscheck "v<40||v>44" 0
54*3df4d8b0SPeter Avaloscheck "(v=42)&&(v+=1)==43" 1
55*3df4d8b0SPeter Avaloscheck "v" 43
56*3df4d8b0SPeter Avaloscheck "(v=42)&&(v-=1)==41" 1
57*3df4d8b0SPeter Avaloscheck "v" 41
58*3df4d8b0SPeter Avaloscheck "(v=42)&&(v*=2)==84" 1
59*3df4d8b0SPeter Avaloscheck "v" 84
60*3df4d8b0SPeter Avaloscheck "(v=42)&&(v/=10)==4" 1
61*3df4d8b0SPeter Avaloscheck "v" 4
62*3df4d8b0SPeter Avaloscheck "(v=42)&&(v%=10)==2" 1
63*3df4d8b0SPeter Avaloscheck "v" 2
64*3df4d8b0SPeter Avaloscheck "(v=42)&&(v<<=1)==84" 1
65*3df4d8b0SPeter Avaloscheck "v" 84
66*3df4d8b0SPeter Avaloscheck "(v=42)&&(v>>=2)==10" 1
67*3df4d8b0SPeter Avaloscheck "v" 10
68*3df4d8b0SPeter Avaloscheck "(v=42)&&(v&=32)==32" 1
69*3df4d8b0SPeter Avaloscheck "v" 32
70*3df4d8b0SPeter Avaloscheck "(v=42)&&(v^=32)==10" 1
71*3df4d8b0SPeter Avaloscheck "v" 10
72*3df4d8b0SPeter Avaloscheck "(v=42)&&(v|=32)==42" 1
73*3df4d8b0SPeter Avaloscheck "v" 42
74*3df4d8b0SPeter Avalos
75*3df4d8b0SPeter Avalos# missing: ternary
76*3df4d8b0SPeter Avalos
77*3df4d8b0SPeter Avalosexit $((failures != 0))
78