Imported from ../bash-2.0.tar.gz.
This commit is contained in:
		
					parent
					
						
							
								726f63884d
							
						
					
				
			
			
				commit
				
					
						ccc6cda312
					
				
			
		
					 502 changed files with 91988 additions and 69123 deletions
				
			
		
							
								
								
									
										158
									
								
								tests/arith.tests
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										158
									
								
								tests/arith.tests
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,158 @@ | |||
| declare -i iv jv | ||||
| 
 | ||||
| iv=$(( 3 + 5 * 32 )) | ||||
| echo $iv | ||||
| iv=iv+3 | ||||
| echo $iv | ||||
| iv=2 | ||||
| jv=iv | ||||
| 
 | ||||
| let "jv *= 2" | ||||
| echo $jv | ||||
| jv=$(( $jv << 2 )) | ||||
| echo $jv | ||||
| 
 | ||||
| let jv="$jv / 2" | ||||
| echo $jv | ||||
| jv="jv >> 2" | ||||
| echo $jv | ||||
| 
 | ||||
| iv=$((iv+ $jv)) | ||||
| echo $iv | ||||
| echo $((iv -= jv)) | ||||
| echo $iv | ||||
| echo $(( iv == jv )) | ||||
| echo $(( iv != $jv )) | ||||
| echo $(( iv < jv )) | ||||
| echo $(( $iv > $jv )) | ||||
| echo $(( iv <= $jv )) | ||||
| echo $(( $iv >= jv )) | ||||
| 
 | ||||
| echo $jv | ||||
| echo $(( ~$jv )) | ||||
| echo $(( ~1 )) | ||||
| echo $(( ! 0 )) | ||||
| 
 | ||||
| echo $(( jv % 2 )) | ||||
| echo $(( $iv % 4 )) | ||||
| 
 | ||||
| echo $(( iv <<= 16 )) | ||||
| echo $(( iv %= 33 )) | ||||
| 
 | ||||
| echo $(( 33 & 55 )) | ||||
| echo $(( 33 | 17 )) | ||||
| 
 | ||||
| echo $(( iv && $jv )) | ||||
| echo $(( $iv || jv )) | ||||
| 
 | ||||
| echo $(( iv && 0 )) | ||||
| echo $(( iv & 0 )) | ||||
| echo $(( iv && 1 )) | ||||
| echo $(( iv & 1 )) | ||||
| 
 | ||||
| echo $(( $jv || 0 )) | ||||
| echo $(( jv | 0 )) | ||||
| echo $(( jv | 1 )) | ||||
| echo $(( $jv || 1 )) | ||||
| 
 | ||||
| let 'iv *= jv' | ||||
| echo $iv | ||||
| echo $jv | ||||
| let "jv += $iv" | ||||
| echo $jv | ||||
| 
 | ||||
| echo $(( jv /= iv )) | ||||
| echo $(( jv <<= 8 )) | ||||
| echo $(( jv >>= 4 )) | ||||
| 
 | ||||
| echo $(( iv |= 4 )) | ||||
| echo $(( iv &= 4 )) | ||||
| 
 | ||||
| echo $(( iv += (jv + 9))) | ||||
| echo $(( (iv + 4) % 7 )) | ||||
| 
 | ||||
| # unary plus, minus | ||||
| echo $(( +4 - 8 )) | ||||
| echo $(( -4 + 8 )) | ||||
| 
 | ||||
| # conditional expressions | ||||
| echo $(( 4<5 ? 1 : 32)) | ||||
| echo $(( 4>5 ? 1 : 32)) | ||||
| echo $(( 4>(2+3) ? 1 : 32)) | ||||
| echo $(( 4<(2+3) ? 1 : 32)) | ||||
| echo $(( (2+2)<(2+3) ? 1 : 32)) | ||||
| echo $(( (2+2)>(2+3) ? 1 : 32)) | ||||
| 
 | ||||
| # check that the unevaluated part of the ternary operator does not do | ||||
| # evaluation or assignment | ||||
| x=i+=2 | ||||
| y=j+=2 | ||||
| declare -i i=1 j=1 | ||||
| echo $((1 ? 20 : (x+=2))) | ||||
| echo $i,$x | ||||
| echo $((0 ? (y+=2) : 30)) | ||||
| echo $j,$y | ||||
| 
 | ||||
| x=i+=2 | ||||
| y=j+=2 | ||||
| declare -i i=1 j=1 | ||||
| echo $((1 ? 20 : (x+=2))) | ||||
| echo $i,$x | ||||
| echo $((0 ? (y+=2) : 30)) | ||||
| echo $i,$y | ||||
| 
 | ||||
| # check precedence of assignment vs. conditional operator | ||||
| # should be an error | ||||
| declare -i x=2 | ||||
| y=$((1 ? 20 : x+=2)) | ||||
| 
 | ||||
| # check precedence of assignment vs. conditional operator | ||||
| declare -i x=2 | ||||
| echo $((0 ? x+=2 : 20)) | ||||
| 
 | ||||
| # associativity of assignment-operator operator | ||||
| declare -i i=1 j=2 k=3 | ||||
| echo $((i += j += k)) | ||||
| echo $i,$j,$k | ||||
| 
 | ||||
| # octal, hex | ||||
| echo $(( 0x100 | 007 )) | ||||
| echo $(( 0xff )) | ||||
| echo $(( 16#ff )) | ||||
| echo $(( 16#FF/2 )) | ||||
| echo $(( 8#44 )) | ||||
| 
 | ||||
| echo $(( 8 ^ 32 )) | ||||
| 
 | ||||
| # other bases | ||||
| echo $(( 16#a )) | ||||
| echo $(( 32#a )) | ||||
| echo $(( 56#a )) | ||||
| echo $(( 64#a )) | ||||
| 
 | ||||
| echo $(( 16#A )) | ||||
| echo $(( 32#A )) | ||||
| echo $(( 56#A )) | ||||
| echo $(( 64#A )) | ||||
| 
 | ||||
| echo $(( 64#_ )) | ||||
| echo $(( 64#@ )) | ||||
| 
 | ||||
| # weird bases | ||||
| echo $(( 3425#56 )) | ||||
| 
 | ||||
| # missing number after base | ||||
| echo $(( 2# )) | ||||
| 
 | ||||
| # these should generate errors | ||||
| echo $(( 7 = 43 )) | ||||
| echo $(( 2#44 )) | ||||
| echo $(( 44 / 0 )) | ||||
| let 'jv += $iv' | ||||
| echo $(( jv += \$iv )) | ||||
| let 'rv = 7 + (43 * 6' | ||||
| 
 | ||||
| # more errors | ||||
| declare -i i | ||||
| i=0#4 | ||||
| i=2#110#11 | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Jari Aalto
				Jari Aalto