Results for arith.test.sh

statusdashbashmkshzshosh
pass 2137333044
ok 46574
N-I 202650
BUG 33460
total4848484848
casedashbashmkshzshoshdescription
0N-I pass pass ok pass Side Effect in Array Indexing
detailsdetails
1pass pass pass pass pass Add one to var
2pass pass pass pass pass $ is optional
3pass pass pass pass pass SimpleVarSub within arith
4pass pass pass pass pass BracedVarSub within ArithSub
5pass pass pass pass pass Arith word part
6pass pass pass pass pass Arith sub with word parts
7N-I N-I pass N-I pass Constant with quotes like '1'
detailsdetailsdetails
8pass pass pass pass pass Arith sub within arith sub
9pass pass pass pass pass Backticks within arith sub
10ok ok ok ok ok Invalid string to int
detailsdetailsdetailsdetailsdetails
11ok N-I N-I N-I pass Invalid string to int with strict-arith
detailsdetailsdetailsdetails
12pass pass pass pass pass Newline in the middle of expression
13pass pass pass pass pass Ternary operator
14N-I pass pass pass pass Preincrement
details
15N-I pass pass pass pass Postincrement
details
16N-I pass pass pass pass Increment undefined variables
details
17N-I pass pass BUG pass Increment and decrement array elements
detailsdetails
18ok pass BUG BUG pass Increment undefined variables with nounset
detailsdetailsdetails
19N-I pass pass pass pass Comma operator (borrowed from C)
details
20pass pass pass pass pass Augmented assignment
21pass pass pass pass pass Comparison Ops
22pass pass pass pass pass Logical Ops
23N-I pass pass pass pass Logical Ops Short Circuit
details
24pass pass pass pass pass Bitwise ops
25pass pass pass pass pass Unary minus and plus
26pass ok ok BUG pass No floating point
detailsdetailsdetails
27N-I pass pass ok pass Array indexing in arith
detailsdetails
28N-I pass pass pass pass Constants in base 36
details
29N-I pass N-I N-I pass Constants in bases 2 to 64
detailsdetailsdetails
30N-I pass pass pass pass Dynamic base constants
details
31pass pass N-I N-I pass Octal constant
detailsdetails
32pass pass N-I N-I pass Dynamic octal constant
detailsdetails
33pass pass pass pass pass Dynamic hex constants
34pass pass pass pass ok Dynamic var names - result of runtime parse/eval
details
35N-I pass pass pass ok Bizarre recursive name evaluation - result of runtime parse/eval
detailsdetails
36BUG pass BUG BUG pass nounset with arithmetic
detailsdetailsdetails
37BUG BUG BUG BUG pass Integer Overflow
detailsdetailsdetailsdetails
38N-I ok ok ok pass Invalid LValue
detailsdetailsdetailsdetails
39N-I ok ok ok pass Invalid LValue that looks like array
detailsdetailsdetailsdetails
40N-I ok ok ok pass Invalid LValue: two sets of brackets
detailsdetailsdetailsdetails
41pass pass pass pass pass Operator Precedence
42N-I pass N-I pass pass Exponentiation with **
detailsdetails
43N-I pass N-I pass pass Exponentiation operator has buggy precedence
detailsdetails
44N-I pass pass ok pass Negative exponent
detailsdetails
45ok ok pass pass ok Comment not allowed in the middle of multiline arithmetic
detailsdetailsdetails
46N-I BUG pass pass pass Can't add integer to indexed array
detailsdetails
47BUG BUG BUG BUG pass Can't add integer to associative array
detailsdetailsdetailsdetails
165 passed, 26 OK, 33 not implemented, 16 BUG, 0 failed, 0 timeouts, 0 cases skipped

Details on runs that didn't PASS

dash0 Side Effect in Array Indexing

stdout:
stderr: 
/home/andy/git/oilshell/oil/_tmp/spec-bin/dash: 1: Syntax error: "(" unexpected
zsh0 Side Effect in Array Indexing

stdout:
5 b=2
stderr:
dash7 Constant with quotes like '1'

stdout:
stderr: 
/home/andy/git/oilshell/oil/_tmp/spec-bin/dash: 1: arithmetic expression: expecting primary: "'1' + 2"
bash7 Constant with quotes like '1'

stdout:
stderr: 
/home/andy/git/oilshell/oil/_tmp/spec-bin/bash: line 1: '1' + 2: syntax error: operand expected (error token is "'1' + 2")
zsh7 Constant with quotes like '1'

stdout:
stderr: 
zsh: bad math expression: illegal character: '
dash10 Invalid string to int

stdout:
stderr: 
/home/andy/git/oilshell/oil/_tmp/spec-bin/dash: 1: shopt: not found
/home/andy/git/oilshell/oil/_tmp/spec-bin/dash: 3: Illegal number: foo
bash10 Invalid string to int

stdout:
5
stderr:
/home/andy/git/oilshell/oil/_tmp/spec-bin/bash: line 1: shopt: strict-arith: invalid shell option name
mksh10 Invalid string to int

stdout:
5
stderr:
/home/andy/git/oilshell/oil/_tmp/spec-bin/mksh: <stdin>[1]: shopt: not found
zsh10 Invalid string to int

stdout:
5
stderr:
zsh: command not found: shopt
osh10 Invalid string to int

stdout:
5
stderr:
  echo $((s+5))
          ^
[ stdin ]:3: warning: Invalid integer constant 'foo'
dash11 Invalid string to int with strict-arith

stdout:
foo
stderr:
/home/andy/git/oilshell/oil/_tmp/spec-bin/dash: 1: shopt: not found
/home/andy/git/oilshell/oil/_tmp/spec-bin/dash: 4: Illegal number: foo
bash11 Invalid string to int with strict-arith

stdout:
foo
5
should not get here
stderr:
/home/andy/git/oilshell/oil/_tmp/spec-bin/bash: line 1: shopt: strict-arith: invalid shell option name
mksh11 Invalid string to int with strict-arith

stdout:
foo
5
should not get here
stderr:
/home/andy/git/oilshell/oil/_tmp/spec-bin/mksh: <stdin>[1]: shopt: not found
zsh11 Invalid string to int with strict-arith

stdout:
foo
5
should not get here
stderr:
zsh: command not found: shopt
dash14 Preincrement

stdout:
4
4
stderr:
dash15 Postincrement

stdout:
stderr: 
/home/andy/git/oilshell/oil/_tmp/spec-bin/dash: 2: arithmetic expression: expecting primary: "a++"
dash16 Increment undefined variables

stdout:
[][]
stderr:
/home/andy/git/oilshell/oil/_tmp/spec-bin/dash: 1: shopt: not found
/home/andy/git/oilshell/oil/_tmp/spec-bin/dash: 2: undef1++: not found
/home/andy/git/oilshell/oil/_tmp/spec-bin/dash: 3: ++undef2: not found
dash17 Increment and decrement array elements

stdout:
stderr: 
/home/andy/git/oilshell/oil/_tmp/spec-bin/dash: 1: shopt: not found
/home/andy/git/oilshell/oil/_tmp/spec-bin/dash: 2: Syntax error: "(" unexpected
zsh17 Increment and decrement array elements

stdout:
5 6 7 8 -
stderr:
zsh: command not found: shopt
zsh: a: assignment to invalid subscript range
zsh: undef: assignment to invalid subscript range
dash18 Increment undefined variables with nounset

stdout:
stderr: 
/home/andy/git/oilshell/oil/_tmp/spec-bin/dash: 2: undef1++: not found
/home/andy/git/oilshell/oil/_tmp/spec-bin/dash: 3: ++undef2: not found
/home/andy/git/oilshell/oil/_tmp/spec-bin/dash: 4: undef1: parameter not set
mksh18 Increment undefined variables with nounset

stdout:
[1][1]
stderr:
zsh18 Increment undefined variables with nounset

stdout:
[1][1]
stderr:
dash19 Comma operator (borrowed from C)

stdout:
stderr: 
/home/andy/git/oilshell/oil/_tmp/spec-bin/dash: 3: arithmetic expression: expecting EOF: "a,(b+1)"
dash23 Logical Ops Short Circuit

stdout:
11
11
11
11
stderr:
/home/andy/git/oilshell/oil/_tmp/spec-bin/dash: 2: 1: not found
/home/andy/git/oilshell/oil/_tmp/spec-bin/dash: 2: x: not found
/home/andy/git/oilshell/oil/_tmp/spec-bin/dash: 4: 0: not found
/home/andy/git/oilshell/oil/_tmp/spec-bin/dash: 4: x: not found
/home/andy/git/oilshell/oil/_tmp/spec-bin/dash: 6: 0: not found
/home/andy/git/oilshell/oil/_tmp/spec-bin/dash: 8: 1: not found
bash26 No floating point

stdout:
stderr: 
/home/andy/git/oilshell/oil/_tmp/spec-bin/bash: line 1: 1 + 2.3: syntax error: invalid arithmetic operator (error token is ".3")
mksh26 No floating point

stdout:
stderr: 
/home/andy/git/oilshell/oil/_tmp/spec-bin/mksh: <stdin>[1]: 1 + 2.3: unexpected '.'
zsh26 No floating point

stdout:
3.2999999999999998
stderr:
dash27 Array indexing in arith

stdout:
stderr: 
/home/andy/git/oilshell/oil/_tmp/spec-bin/dash: 1: Syntax error: "(" unexpected
zsh27 Array indexing in arith

stdout:
7
stderr:
dash28 Constants in base 36

stdout:
stderr: 
/home/andy/git/oilshell/oil/_tmp/spec-bin/dash: 1: arithmetic expression: expecting EOF: "36#a"
dash29 Constants in bases 2 to 64

stdout:
stderr: 
/home/andy/git/oilshell/oil/_tmp/spec-bin/dash: 1: arithmetic expression: expecting EOF: "64#a"
mksh29 Constants in bases 2 to 64

stdout:
stderr: 
/home/andy/git/oilshell/oil/_tmp/spec-bin/mksh: <stdin>[1]: 64#a: bad number '64#a'
zsh29 Constants in bases 2 to 64

stdout:
stderr: 
zsh: invalid base (must be 2 to 36 inclusive): 64
dash30 Dynamic base constants

stdout:
stderr: 
/home/andy/git/oilshell/oil/_tmp/spec-bin/dash: 2: arithmetic expression: expecting EOF: " 16#a "
mksh31 Octal constant

stdout:
11
stderr:
zsh31 Octal constant

stdout:
11
stderr:
mksh32 Dynamic octal constant

stdout:
11
stderr:
zsh32 Dynamic octal constant

stdout:
11
stderr:
osh34 Dynamic var names - result of runtime parse/eval

stdout:
stderr: 
  echo $(( foo + f$x + 1 ))
                 ^
[ stdin ]:3: fatal: Invalid integer constant 'foo'
dash35 Bizarre recursive name evaluation - result of runtime parse/eval

stdout:
stderr: 
/home/andy/git/oilshell/oil/_tmp/spec-bin/dash: 5: Illegal number: foo
osh35 Bizarre recursive name evaluation - result of runtime parse/eval

stdout:
stderr: 
  echo $((foo+1)) $((bar+1)) $((spam+1)) $((eggs+1))
                     ^~~
[ stdin ]:5: fatal: Invalid integer constant 'foo'
dash36 nounset with arithmetic

stdout:
should not get here: x=5
stderr:
mksh36 nounset with arithmetic

stdout:
should not get here: x=5
stderr:
zsh36 nounset with arithmetic

stdout:
should not get here: x=5
stderr:
dash37 Integer Overflow

stdout:
-1996229794797103359
stderr:
bash37 Integer Overflow

stdout:
-1996229794797103359
stderr:
mksh37 Integer Overflow

stdout:
-15640831
stderr:
zsh37 Integer Overflow

stdout:
-1996229794797103359
stderr:
dash38 Invalid LValue

stdout:
stderr: 
/home/andy/git/oilshell/oil/_tmp/spec-bin/dash: 2: Syntax error: word unexpected (expecting ")")
bash38 Invalid LValue

stdout:
9
stderr:
/home/andy/git/oilshell/oil/_tmp/spec-bin/bash: line 2: ((: (a + 2) = 3 : attempted assignment to non-variable (error token is "= 3 ")
mksh38 Invalid LValue

stdout:
9
stderr:
/home/andy/git/oilshell/oil/_tmp/spec-bin/mksh: <stdin>[2]:  (a + 2) = 3 : = requires lvalue
zsh38 Invalid LValue

stdout:
9
stderr:
zsh: bad math expression: lvalue required
dash39 Invalid LValue that looks like array

stdout:
status=127
stderr:
/home/andy/git/oilshell/oil/_tmp/spec-bin/dash: 1: 1[2]: not found
bash39 Invalid LValue that looks like array

stdout:
status=1
stderr:
/home/andy/git/oilshell/oil/_tmp/spec-bin/bash: line 1: ((: 1[2] = 3 : syntax error: invalid arithmetic operator (error token is "[2] = 3 ")
mksh39 Invalid LValue that looks like array

stdout:
status=2
stderr:
/home/andy/git/oilshell/oil/_tmp/spec-bin/mksh: <stdin>[1]:  1[2] = 3 : unexpected '['
zsh39 Invalid LValue that looks like array

stdout:
status=2
stderr:
zsh: bad base syntax
dash40 Invalid LValue: two sets of brackets

stdout:
status=127
stderr:
/home/andy/git/oilshell/oil/_tmp/spec-bin/dash: 1: a[1][2]: not found
bash40 Invalid LValue: two sets of brackets

stdout:
status=1
stderr:
/home/andy/git/oilshell/oil/_tmp/spec-bin/bash: line 1: ((: a[1][2] = 3 : syntax error: invalid arithmetic operator (error token is "[2] = 3 ")
mksh40 Invalid LValue: two sets of brackets

stdout:
status=2
stderr:
/home/andy/git/oilshell/oil/_tmp/spec-bin/mksh: <stdin>[1]:  a[1][2] = 3 : unexpected '['
zsh40 Invalid LValue: two sets of brackets

stdout:
status=2
stderr:
zsh: bad base syntax
dash42 Exponentiation with **

stdout:
stderr: 
/home/andy/git/oilshell/oil/_tmp/spec-bin/dash: 1: arithmetic expression: expecting primary: " 3 ** 0 "
mksh42 Exponentiation with **

stdout:
stderr: 
/home/andy/git/oilshell/oil/_tmp/spec-bin/mksh: <stdin>[1]:  3 ** 0 : unexpected '*'
dash43 Exponentiation operator has buggy precedence

stdout:
stderr: 
/home/andy/git/oilshell/oil/_tmp/spec-bin/dash: 1: arithmetic expression: expecting primary: " -3 ** 2 "
mksh43 Exponentiation operator has buggy precedence

stdout:
stderr: 
/home/andy/git/oilshell/oil/_tmp/spec-bin/mksh: <stdin>[1]:  -3 ** 2 : unexpected '*'
dash44 Negative exponent

stdout:
stderr: 
/home/andy/git/oilshell/oil/_tmp/spec-bin/dash: 1: arithmetic expression: expecting primary: " 2**-1 * 5 "
zsh44 Negative exponent

stdout:
2.5
stderr:
dash45 Comment not allowed in the middle of multiline arithmetic

stdout:
6
stderr:
/home/andy/git/oilshell/oil/_tmp/spec-bin/dash: 6: arithmetic expression: expecting EOF: "
1 + 2  # not a comment
"
bash45 Comment not allowed in the middle of multiline arithmetic

stdout:
6
[]
stderr:
/home/andy/git/oilshell/oil/_tmp/spec-bin/bash: line 8: 
1 + 2  # not a comment
: syntax error: invalid arithmetic operator (error token is "# not a comment
")
/home/andy/git/oilshell/oil/_tmp/spec-bin/bash: line 10: ((: a = 3 + 4  # comment
: syntax error: invalid arithmetic operator (error token is "# comment
")
osh45 Comment not allowed in the middle of multiline arithmetic

stdout:
6
stderr:
  1 + 2  # not a comment
          ^
[ stdin ]:7: Expected first ) to end arith sub, got ' '
dash46 Can't add integer to indexed array

stdout:
stderr: 
/home/andy/git/oilshell/oil/_tmp/spec-bin/dash: 1: Syntax error: "(" unexpected
bash46 Can't add integer to indexed array

stdout:
6
stderr:
dash47 Can't add integer to associative array

stdout:
5
stderr:
/home/andy/git/oilshell/oil/_tmp/spec-bin/dash: 1: typeset: not found
/home/andy/git/oilshell/oil/_tmp/spec-bin/dash: 2: assoc[0]=42: not found
bash47 Can't add integer to associative array

stdout:
47
stderr:
mksh47 Can't add integer to associative array

stdout:
47
stderr:
/home/andy/git/oilshell/oil/_tmp/spec-bin/mksh: <stdin>[1]: typeset: -A: unknown option
zsh47 Can't add integer to associative array

stdout:
47
stderr: