109 passed, 7 ok, 21 known unimplemented, 4 known bugs, 9 failed, 0 skipped
| dash | 2 Bizarre recursive evaluation rule stdout: stderr: /bin/dash: 5: Illegal number: foo |
| osh | 2 Bizarre recursive evaluation rule [osh stdout] Expected '6 6 6 6\n', got '6 1 1 1\n' stdout: 6 1 1 1stderr: osh warning: Invalid integer constant 'foo' osh warning: Invalid integer constant 'bar' osh warning: Invalid integer constant 'spam' |
| dash | 7 Constant with quotes like '1' stdout: stderr: /bin/dash: 1: arithmetic expression: expecting primary: "'1' + 2" |
| bash | 7 Constant with quotes like '1' stdout: stderr: /bin/bash: line 1: '1' + 2: syntax error: operand expected (error token is "'1' + 2") |
| zsh | 7 Constant with quotes like '1' stdout: stderr: zsh: bad math expression: illegal character: ' |
| dash | 10 Invalid string to int stdout: stderr: /bin/dash: 2: Illegal number: foo |
| bash | 10 Invalid string to int stdout: 5stderr: |
| mksh | 10 Invalid string to int stdout: 5stderr: |
| zsh | 10 Invalid string to int stdout: 5stderr: |
| osh | 10 Invalid string to int stdout: 5stderr: osh warning: Invalid integer constant 'foo' |
| dash | 11 Invalid string to int with strict-arith stdout: stderr: /bin/dash: 1: set: Illegal option -o strict-arith |
| bash | 11 Invalid string to int with strict-arith stdout: foo 5stderr: /bin/bash: line 1: set: strict-arith: invalid option name |
| mksh | 11 Invalid string to int with strict-arith stdout: stderr: /bin/mksh: <stdin>[1]: set: strict-arith: bad option |
| zsh | 11 Invalid string to int with strict-arith stdout: stderr: set: no such option: strict-arith |
| osh | 13 Ternary operator [osh stdout] Expected '10\n', got '' stdout: stderr: Traceback (most recent call last):
File "bin/osh", line 430, in <module>
main(sys.argv)
File "bin/osh", line 417, in main
sys.exit(OilMain(argv))
File "bin/osh", line 400, in OilMain
status = OshMain(main_argv)
File "bin/osh", line 359, in OshMain
status = ex.Execute(node)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 1212, in Execute
status = self._Execute(node)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 1057, in _Execute
status = self._Execute(child) # last status wins
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 962, in _Execute
argv = self.ev.EvalWordSequence(words)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 1024, in EvalWordSequence
return self._EvalWordSequence(words)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 1004, in _EvalWordSequence
args = self._EvalWordAndReframe(w)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 957, in _EvalWordAndReframe
part_vals = self._EvalParts(word)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 853, in _EvalParts
for v in self.part_ev._EvalWordPart(p, quoted=quoted):
File "/home/andy/git/oil/bin/../core/word_eval.py", line 811, in _EvalWordPart
num = arith_ev.Eval(part.anode)
File "/home/andy/git/oil/bin/../core/expr_eval.py", line 129, in Eval
return self._Eval(node)
File "/home/andy/git/oil/bin/../core/expr_eval.py", line 191, in _Eval
lhs = self._Eval(node.cond)
File "/home/andy/git/oil/bin/../core/expr_eval.py", line 234, in _Eval
raise AssertionError("Shouldn't get here")
AssertionError: Shouldn't get here
|
| dash | 14 Preincrement stdout: 4 4stderr: |
| osh | 14 Preincrement [osh stdout] Expected u'5\n5\n', got '' stdout: stderr: Traceback (most recent call last):
File "bin/osh", line 430, in <module>
main(sys.argv)
File "bin/osh", line 417, in main
sys.exit(OilMain(argv))
File "bin/osh", line 400, in OilMain
status = OshMain(main_argv)
File "bin/osh", line 359, in OshMain
status = ex.Execute(node)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 1212, in Execute
status = self._Execute(node)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 1057, in _Execute
status = self._Execute(child) # last status wins
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 962, in _Execute
argv = self.ev.EvalWordSequence(words)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 1024, in EvalWordSequence
return self._EvalWordSequence(words)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 1004, in _EvalWordSequence
args = self._EvalWordAndReframe(w)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 957, in _EvalWordAndReframe
part_vals = self._EvalParts(word)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 853, in _EvalParts
for v in self.part_ev._EvalWordPart(p, quoted=quoted):
File "/home/andy/git/oil/bin/../core/word_eval.py", line 811, in _EvalWordPart
num = arith_ev.Eval(part.anode)
File "/home/andy/git/oil/bin/../core/expr_eval.py", line 129, in Eval
return self._Eval(node)
File "/home/andy/git/oil/bin/../core/expr_eval.py", line 234, in _Eval
raise AssertionError("Shouldn't get here")
AssertionError: Shouldn't get here
|
| dash | 15 Postincrement stdout: stderr: /bin/dash: 2: arithmetic expression: expecting primary: "a++" |
| osh | 15 Postincrement [osh stdout] Expected u'4\n5\n', got '' stdout: stderr: Traceback (most recent call last):
File "bin/osh", line 430, in <module>
main(sys.argv)
File "bin/osh", line 417, in main
sys.exit(OilMain(argv))
File "bin/osh", line 400, in OilMain
status = OshMain(main_argv)
File "bin/osh", line 359, in OshMain
status = ex.Execute(node)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 1212, in Execute
status = self._Execute(node)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 1057, in _Execute
status = self._Execute(child) # last status wins
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 962, in _Execute
argv = self.ev.EvalWordSequence(words)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 1024, in EvalWordSequence
return self._EvalWordSequence(words)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 1004, in _EvalWordSequence
args = self._EvalWordAndReframe(w)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 957, in _EvalWordAndReframe
part_vals = self._EvalParts(word)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 853, in _EvalParts
for v in self.part_ev._EvalWordPart(p, quoted=quoted):
File "/home/andy/git/oil/bin/../core/word_eval.py", line 811, in _EvalWordPart
num = arith_ev.Eval(part.anode)
File "/home/andy/git/oil/bin/../core/expr_eval.py", line 129, in Eval
return self._Eval(node)
File "/home/andy/git/oil/bin/../core/expr_eval.py", line 234, in _Eval
raise AssertionError("Shouldn't get here")
AssertionError: Shouldn't get here
|
| dash | 16 Comma operator (borrowed from C) stdout: stderr: /bin/dash: 3: arithmetic expression: expecting EOF: "a,(b+1)" |
| osh | 17 Mutating ops [osh stdout] Expected u'5\n5\n', got '' stdout: stderr: Traceback (most recent call last):
File "bin/osh", line 430, in <module>
main(sys.argv)
File "bin/osh", line 417, in main
sys.exit(OilMain(argv))
File "bin/osh", line 400, in OilMain
status = OshMain(main_argv)
File "bin/osh", line 359, in OshMain
status = ex.Execute(node)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 1212, in Execute
status = self._Execute(node)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 1057, in _Execute
status = self._Execute(child) # last status wins
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 962, in _Execute
argv = self.ev.EvalWordSequence(words)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 1024, in EvalWordSequence
return self._EvalWordSequence(words)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 1004, in _EvalWordSequence
args = self._EvalWordAndReframe(w)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 957, in _EvalWordAndReframe
part_vals = self._EvalParts(word)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 853, in _EvalParts
for v in self.part_ev._EvalWordPart(p, quoted=quoted):
File "/home/andy/git/oil/bin/../core/word_eval.py", line 811, in _EvalWordPart
num = arith_ev.Eval(part.anode)
File "/home/andy/git/oil/bin/../core/expr_eval.py", line 129, in Eval
return self._Eval(node)
File "/home/andy/git/oil/bin/../core/expr_eval.py", line 232, in _Eval
raise NotImplementedError("Unhandled node %r" % node.__class__.__name__)
NotImplementedError: Unhandled node 'ArithAssign'
|
| osh | 18 Bitwise ops [osh stdout] Expected u'3\n0\n-4\n', got '' stdout: stderr: Traceback (most recent call last):
File "bin/osh", line 430, in <module>
main(sys.argv)
File "bin/osh", line 417, in main
sys.exit(OilMain(argv))
File "bin/osh", line 400, in OilMain
status = OshMain(main_argv)
File "bin/osh", line 359, in OshMain
status = ex.Execute(node)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 1212, in Execute
status = self._Execute(node)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 1057, in _Execute
status = self._Execute(child) # last status wins
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 962, in _Execute
argv = self.ev.EvalWordSequence(words)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 1024, in EvalWordSequence
return self._EvalWordSequence(words)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 1004, in _EvalWordSequence
args = self._EvalWordAndReframe(w)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 957, in _EvalWordAndReframe
part_vals = self._EvalParts(word)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 853, in _EvalParts
for v in self.part_ev._EvalWordPart(p, quoted=quoted):
File "/home/andy/git/oil/bin/../core/word_eval.py", line 811, in _EvalWordPart
num = arith_ev.Eval(part.anode)
File "/home/andy/git/oil/bin/../core/expr_eval.py", line 129, in Eval
return self._Eval(node)
File "/home/andy/git/oil/bin/../core/expr_eval.py", line 234, in _Eval
raise AssertionError("Shouldn't get here")
AssertionError: Shouldn't get here
|
| dash | 20 No floating point stdout: stderr: /bin/dash: 1: arithmetic expression: expecting EOF: "1 + 2.3" |
| zsh | 20 No floating point stdout: 3.2999999999999998stderr: |
| osh | 20 No floating point [osh status] Expected 1, got 2 stdout: stderr: Line 1 of '<stdin>'
echo $((1 + 2.3))
^
Unknown token in arith context: (token id:Unknown_Tok val:. span_id:8)
---
Line 1 of '<stdin>'
echo $((1 + 2.3))
^
Unknown token in arith context: (token id:Unknown_Tok val:. span_id:8)
---
Line 0 of '<unknown>'
<no position info for token>
Error reading arith word in ArithParser
---
Line 0 of '<unknown>'
<no position info for token>
---
Line 0 of '<unknown>'
<no position info for token>
Error parsing arith sub part
---
Line 1 of '<stdin>'
echo $((1 + 2.3))
^
Error reading command word
---
Line 0 of '<unknown>'
<no position info for token>
Error parsing AndOr in ParseCommandTerm
---
|
| dash | 21 Array indexing in arith stdout: stderr: /bin/dash: 1: Syntax error: "(" unexpected
|
| zsh | 21 Array indexing in arith stdout: 7stderr: |
| osh | 21 Array indexing in arith [osh stdout] Expected '11\n', got '' stdout: stderr: osh warning: Expected string but got (StrArray strs:["'1'""'2'""'3'""'4'"])
Traceback (most recent call last):
File "bin/osh", line 430, in <module>
main(sys.argv)
File "bin/osh", line 417, in main
sys.exit(OilMain(argv))
File "bin/osh", line 400, in OilMain
status = OshMain(main_argv)
File "bin/osh", line 359, in OshMain
status = ex.Execute(node)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 1212, in Execute
status = self._Execute(node)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 1057, in _Execute
status = self._Execute(child) # last status wins
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 962, in _Execute
argv = self.ev.EvalWordSequence(words)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 1024, in EvalWordSequence
return self._EvalWordSequence(words)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 1004, in _EvalWordSequence
args = self._EvalWordAndReframe(w)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 957, in _EvalWordAndReframe
part_vals = self._EvalParts(word)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 853, in _EvalParts
for v in self.part_ev._EvalWordPart(p, quoted=quoted):
File "/home/andy/git/oil/bin/../core/word_eval.py", line 811, in _EvalWordPart
num = arith_ev.Eval(part.anode)
File "/home/andy/git/oil/bin/../core/expr_eval.py", line 129, in Eval
return self._Eval(node)
File "/home/andy/git/oil/bin/../core/expr_eval.py", line 201, in _Eval
lhs = self._Eval(node.left)
File "/home/andy/git/oil/bin/../core/expr_eval.py", line 234, in _Eval
raise AssertionError("Shouldn't get here")
AssertionError: Shouldn't get here
|
| dash | 22 Constants in base 36 stdout: stderr: /bin/dash: 1: arithmetic expression: expecting EOF: "36#a" |
| dash | 23 Constants in bases 2 to 64 stdout: stderr: /bin/dash: 1: arithmetic expression: expecting EOF: "64#a" |
| mksh | 23 Constants in bases 2 to 64 stdout: stderr: /bin/mksh: <stdin>[1]: 64#a: bad number '64#a' |
| zsh | 23 Constants in bases 2 to 64 stdout: stderr: zsh: invalid base (must be 2 to 36 inclusive): 64 |
| dash | 24 Dynamic base constants stdout: stderr: /bin/dash: 2: arithmetic expression: expecting EOF: " 16#a " |
| mksh | 25 Octal constant stdout: 11stderr: |
| zsh | 25 Octal constant stdout: 11stderr: |
| mksh | 26 Dynamic octal constant stdout: 11stderr: |
| zsh | 26 Dynamic octal constant stdout: 11stderr: |
| osh | 28 Dynamic var names! [osh stdout] Expected '11\n', got '6\n' stdout: 6stderr: osh warning: Invalid integer constant 'foo' |
| dash | 29 nounset with arithmetic stdout: should not get here: x=5stderr: |
| mksh | 29 nounset with arithmetic stdout: should not get here: x=5stderr: |
| zsh | 29 nounset with arithmetic stdout: should not get here: x=5stderr: |