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