X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=tests%2Farith.tests;h=9e82bb1db485418b6f9e1dcb0996f8e8e27320ef;hb=3185942a5234e26ab13fa02f9c51d340cec514f8;hp=5f6298cac195ab177fbb069680f9df11fb367b3c;hpb=d166f048818e10cf3799aa24a174fb22835f1acc;p=platform%2Fupstream%2Fbash.git diff --git a/tests/arith.tests b/tests/arith.tests index 5f6298c..9e82bb1 100644 --- a/tests/arith.tests +++ b/tests/arith.tests @@ -84,6 +84,12 @@ echo $(( 4<(2+3) ? 1 : 32)) echo $(( (2+2)<(2+3) ? 1 : 32)) echo $(( (2+2)>(2+3) ? 1 : 32)) +# bug in bash versions through bash-3.2 +S=105 +W=$((S>99?4:S>9?3:S>0?2:0)) +echo $W +unset W S + # check that the unevaluated part of the ternary operator does not do # evaluation or assignment x=i+=2 @@ -136,8 +142,8 @@ echo $(( 32#A )) echo $(( 56#A )) echo $(( 64#A )) -echo $(( 64#_ )) echo $(( 64#@ )) +echo $(( 64#_ )) # weird bases echo $(( 3425#56 )) @@ -213,3 +219,72 @@ do done echo $x + +# exponentiation +echo $(( 2**15 - 1)) +echo $(( 2**(16-1))) +echo $(( 2**16*2 )) +echo $(( 2**31-1)) +echo $(( 2**0 )) + +# {pre,post}-{inc,dec}rement and associated errors + +x=4 + +echo $x +echo $(( x++ )) +echo $x +echo $(( x-- )) +echo $x + +echo $(( --x )) +echo $x + +echo $(( ++x )) +echo $x + +echo $(( ++7 )) +echo $(( 7-- )) + +echo $(( --x=7 )) +echo $(( ++x=7 )) + +echo $(( x++=7 )) +echo $(( x--=7 )) + +echo $x + +echo $(( +7 )) +echo $(( -7 )) + +echo $(( ++7 )) +echo $(( --7 )) + +${THIS_SH} ./arith1.sub +${THIS_SH} ./arith2.sub + +x=4 +y=7 + +(( x=8 , y=12 )) + +echo $x $y + +# should be an error +(( x=9 y=41 )) + +# These are errors +unset b +echo $((a b)) +((a b)) + +n=42 +printf "%d\n" $n +printf "%i\n" $n +echo $(( 8#$(printf "%o\n" $n) )) +printf "%u\n" $n +echo $(( 16#$(printf "%x\n" $n) )) +echo $(( 16#$(printf "%X\n" $n) )) + +# causes longjmp botches through bash-2.05b +a[b[c]d]=e