Results for arith.test.sh

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

243 passed, 22 ok, 33 known unimplemented, 11 known bugs, 2 failed, 0 skipped

Details on runs that didn't PASS

dash0 Side Effect in Array Indexing

stdout:
stderr: 
_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: 
_tmp/spec-bin/dash: 1: arithmetic expression: expecting primary: "'1' + 2"
bash7 Constant with quotes like '1'

stdout:
stderr: 
_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: 
_tmp/spec-bin/dash: 2: Illegal number: foo
bash10 Invalid string to int

stdout:
5
stderr:
mksh10 Invalid string to int

stdout:
5
stderr:
zsh10 Invalid string to int

stdout:
5
stderr:
osh10 Invalid string to int

stdout:
5
stderr:
Line 2 of '<stdin>'
  echo $((s+5))
          ^
osh warning: Invalid integer constant 'foo'
osh_ALT10 Invalid string to int

stdout:
5
stderr:
Line 2 of '<stdin>'
  echo $((s+5))
          ^
osh warning: Invalid integer constant 'foo'
osh-byterun10 Invalid string to int

stdout:
5
stderr:
Line 2 of '<stdin>'
  echo $((s+5))
          ^
osh warning: Invalid integer constant 'foo'
dash11 Invalid string to int with strict-arith

stdout:
stderr: 
_tmp/spec-bin/dash: 1: set: Illegal option -o strict-arith
bash11 Invalid string to int with strict-arith

stdout:
foo
5
should not get here
stderr:
_tmp/spec-bin/bash: line 1: set: strict-arith: invalid option name
mksh11 Invalid string to int with strict-arith

stdout:
stderr: 
_tmp/spec-bin/mksh: <stdin>[1]: set: strict-arith: bad option
zsh11 Invalid string to int with strict-arith

stdout:
stderr: 
set: no such option: strict-arith
dash14 Preincrement

stdout:
4
4
stderr:
dash15 Postincrement

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

stdout:
[][]
stderr:
_tmp/spec-bin/dash: 1: undef1++: not found
_tmp/spec-bin/dash: 2: ++undef2: not found
dash17 Increment and decrement array

stdout:
stderr: 
_tmp/spec-bin/dash: 1: Syntax error: "(" unexpected
zsh17 Increment and decrement array

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

stdout:
stderr: 
_tmp/spec-bin/dash: 2: undef1++: not found
_tmp/spec-bin/dash: 3: ++undef2: not found
_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: 
_tmp/spec-bin/dash: 3: arithmetic expression: expecting EOF: "a,(b+1)"
dash23 Logical Ops Short Circuit

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

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

stdout:
stderr: 
_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: 
_tmp/spec-bin/dash: 1: Syntax error: "(" unexpected
zsh27 Array indexing in arith

stdout:
7
stderr:
dash28 Constants in base 36

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

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

stdout:
stderr: 
_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: 
_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

[osh stdout] Expected '11\n', got '6\n'

stdout:
6
stderr:
Line 3 of '<stdin>'
  echo $(( foo + f$x + 1 ))
                 ^
osh warning: Invalid integer constant 'foo'
osh_ALT34 Dynamic var names - result of runtime parse/eval

[osh_ALT stdout] Expected '11\n', got '6\n'

stdout:
6
stderr:
Line 3 of '<stdin>'
  echo $(( foo + f$x + 1 ))
                 ^
osh warning: Invalid integer constant 'foo'
osh-byterun34 Dynamic var names - result of runtime parse/eval

[osh-byterun stdout] Expected '11\n', got '6\n'

stdout:
6
stderr:
Line 3 of '<stdin>'
  echo $(( foo + f$x + 1 ))
                 ^
osh warning: Invalid integer constant 'foo'
dash35 Bizarre recursive name evaluation - result of runtime parse/eval

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

[osh stdout] Expected '6 6 6 6\n', got '6 1 1 1\n'

stdout:
6 1 1 1
stderr:
Line 5 of '<stdin>'
  echo $((foo+1)) $((bar+1)) $((spam+1)) $((eggs+1))
                     ^~~
osh warning: Invalid integer constant 'foo'
Line 5 of '<stdin>'
  echo $((foo+1)) $((bar+1)) $((spam+1)) $((eggs+1))
                                ^~~~
osh warning: Invalid integer constant 'bar'
Line 5 of '<stdin>'
  echo $((foo+1)) $((bar+1)) $((spam+1)) $((eggs+1))
                                            ^~~~
osh warning: Invalid integer constant 'spam'
osh_ALT35 Bizarre recursive name evaluation - result of runtime parse/eval

[osh_ALT stdout] Expected '6 6 6 6\n', got '6 1 1 1\n'

stdout:
6 1 1 1
stderr:
Line 5 of '<stdin>'
  echo $((foo+1)) $((bar+1)) $((spam+1)) $((eggs+1))
                     ^~~
osh warning: Invalid integer constant 'foo'
Line 5 of '<stdin>'
  echo $((foo+1)) $((bar+1)) $((spam+1)) $((eggs+1))
                                ^~~~
osh warning: Invalid integer constant 'bar'
Line 5 of '<stdin>'
  echo $((foo+1)) $((bar+1)) $((spam+1)) $((eggs+1))
                                            ^~~~
osh warning: Invalid integer constant 'spam'
osh-byterun35 Bizarre recursive name evaluation - result of runtime parse/eval

[osh-byterun stdout] Expected '6 6 6 6\n', got '6 1 1 1\n'

stdout:
6 1 1 1
stderr:
Line 5 of '<stdin>'
  echo $((foo+1)) $((bar+1)) $((spam+1)) $((eggs+1))
                     ^~~
osh warning: Invalid integer constant 'foo'
Line 5 of '<stdin>'
  echo $((foo+1)) $((bar+1)) $((spam+1)) $((eggs+1))
                                ^~~~
osh warning: Invalid integer constant 'bar'
Line 5 of '<stdin>'
  echo $((foo+1)) $((bar+1)) $((spam+1)) $((eggs+1))
                                            ^~~~
osh warning: Invalid integer constant 'spam'
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: 
_tmp/spec-bin/dash: 2: Syntax error: word unexpected (expecting ")")
bash38 Invalid LValue

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

stdout:
9
stderr:
_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:
_tmp/spec-bin/dash: 1: 1[2]: not found
bash39 Invalid LValue that looks like array

stdout:
status=1
stderr:
_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:
_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:
_tmp/spec-bin/dash: 1: a[1][2]: not found
bash40 Invalid LValue: two sets of brackets

stdout:
status=1
stderr:
_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:
_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: 
_tmp/spec-bin/dash: 1: arithmetic expression: expecting primary: " 3 ** 0 "
mksh42 Exponentiation with **

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

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

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

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

stdout:
2.5
stderr: