103 passed, 4 ok, 17 known unimplemented, 7 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 b'6 6 6 6\n', got b'' stdout: stderr: ["Invalid integer constant 'foo'", ''] |
dash | 6 Constant with quotes like '1' stdout: stderr: /bin/dash: 1: arithmetic expression: expecting primary: "'1' + 2" |
bash | 6 Constant with quotes like '1' stdout: stderr: /bin/bash: line 1: '1' + 2: syntax error: operand expected (error token is "'1' + 2") |
zsh | 6 Constant with quotes like '1' stdout: stderr: zsh: bad math expression: illegal character: ' |
dash | 9 Bad variable substitution stdout: stderr: /bin/dash: 2: Illegal number: foo |
bash | 9 Bad variable substitution stdout: 5stderr: |
mksh | 9 Bad variable substitution stdout: 5stderr: |
zsh | 9 Bad variable substitution stdout: 5stderr: |
dash | 10 Two bad variable substitutions stdout: stderr: /bin/dash: 3: Illegal number: foo |
bash | 10 Two bad variable substitutions stdout: 0stderr: |
mksh | 10 Two bad variable substitutions stdout: 0stderr: |
zsh | 10 Two bad variable substitutions stdout: 0stderr: |
osh | 12 Ternary operator [osh stdout] Expected b'10\n', got b'' stdout: stderr: Traceback (most recent call last): File "bin/osh", line 378, in <module> sys.exit(main(sys.argv)) File "bin/osh", line 368, in main return OshMain(main_argv) File "bin/osh", line 327, in OshMain status = ex.Execute(node) File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 900, in Execute status = self._Execute(node) File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 791, in _Execute status = self._Execute(child) # last status wins File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 677, in _Execute argv = self.ev.EvalWords(words) File "/home/andy/git/oil/bin/../core/word_eval.py", line 769, in EvalWords return self._EvalWords(words) File "/home/andy/git/oil/bin/../core/word_eval.py", line 759, in _EvalWords val = self._EvalCompoundWord(w, ifs=ifs, do_glob=do_glob) File "/home/andy/git/oil/bin/../core/word_eval.py", line 455, in _EvalCompoundWord val = self._EvalWordPart(p, quoted=False) # may raise File "/home/andy/git/oil/bin/../core/word_eval.py", line 703, in _EvalWordPart return self._EvalArithSub(part.anode) File "/home/andy/git/oil/bin/../core/word_eval.py", line 198, in _EvalArithSub if arith_ev.Eval(anode): File "/home/andy/git/oil/bin/../core/expr_eval.py", line 64, in Eval result = self._Eval(node) File "/home/andy/git/oil/bin/../core/expr_eval.py", line 202, in _Eval lhs = self._Eval(node.cond) File "/home/andy/git/oil/bin/../core/expr_eval.py", line 239, in _Eval raise AssertionError("Shouldn't get here") AssertionError: Shouldn't get here |
dash | 13 Preincrement stdout: 4 4stderr: |
osh | 13 Preincrement [osh stdout] Expected b'5\n5\n', got b'' stdout: stderr: Traceback (most recent call last): File "bin/osh", line 378, in <module> sys.exit(main(sys.argv)) File "bin/osh", line 368, in main return OshMain(main_argv) File "bin/osh", line 327, in OshMain status = ex.Execute(node) File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 900, in Execute status = self._Execute(node) File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 791, in _Execute status = self._Execute(child) # last status wins File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 677, in _Execute argv = self.ev.EvalWords(words) File "/home/andy/git/oil/bin/../core/word_eval.py", line 769, in EvalWords return self._EvalWords(words) File "/home/andy/git/oil/bin/../core/word_eval.py", line 759, in _EvalWords val = self._EvalCompoundWord(w, ifs=ifs, do_glob=do_glob) File "/home/andy/git/oil/bin/../core/word_eval.py", line 455, in _EvalCompoundWord val = self._EvalWordPart(p, quoted=False) # may raise File "/home/andy/git/oil/bin/../core/word_eval.py", line 703, in _EvalWordPart return self._EvalArithSub(part.anode) File "/home/andy/git/oil/bin/../core/word_eval.py", line 198, in _EvalArithSub if arith_ev.Eval(anode): File "/home/andy/git/oil/bin/../core/expr_eval.py", line 64, in Eval result = self._Eval(node) File "/home/andy/git/oil/bin/../core/expr_eval.py", line 239, in _Eval raise AssertionError("Shouldn't get here") AssertionError: Shouldn't get here |
dash | 14 Postincrement stdout: stderr: /bin/dash: 2: arithmetic expression: expecting primary: "a++" |
osh | 14 Postincrement [osh stdout] Expected b'4\n5\n', got b'' stdout: stderr: Traceback (most recent call last): File "bin/osh", line 378, in <module> sys.exit(main(sys.argv)) File "bin/osh", line 368, in main return OshMain(main_argv) File "bin/osh", line 327, in OshMain status = ex.Execute(node) File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 900, in Execute status = self._Execute(node) File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 791, in _Execute status = self._Execute(child) # last status wins File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 677, in _Execute argv = self.ev.EvalWords(words) File "/home/andy/git/oil/bin/../core/word_eval.py", line 769, in EvalWords return self._EvalWords(words) File "/home/andy/git/oil/bin/../core/word_eval.py", line 759, in _EvalWords val = self._EvalCompoundWord(w, ifs=ifs, do_glob=do_glob) File "/home/andy/git/oil/bin/../core/word_eval.py", line 455, in _EvalCompoundWord val = self._EvalWordPart(p, quoted=False) # may raise File "/home/andy/git/oil/bin/../core/word_eval.py", line 703, in _EvalWordPart return self._EvalArithSub(part.anode) File "/home/andy/git/oil/bin/../core/word_eval.py", line 198, in _EvalArithSub if arith_ev.Eval(anode): File "/home/andy/git/oil/bin/../core/expr_eval.py", line 64, in Eval result = self._Eval(node) File "/home/andy/git/oil/bin/../core/expr_eval.py", line 239, in _Eval raise AssertionError("Shouldn't get here") AssertionError: Shouldn't get here |
dash | 15 Comma operator (borrowed from C) stdout: stderr: /bin/dash: 3: arithmetic expression: expecting EOF: "a,(b+1)" |
osh | 16 Mutating ops [osh stdout] Expected b'5\n5\n', got b'' stdout: stderr: Traceback (most recent call last): File "bin/osh", line 378, in <module> sys.exit(main(sys.argv)) File "bin/osh", line 368, in main return OshMain(main_argv) File "bin/osh", line 327, in OshMain status = ex.Execute(node) File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 900, in Execute status = self._Execute(node) File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 791, in _Execute status = self._Execute(child) # last status wins File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 677, in _Execute argv = self.ev.EvalWords(words) File "/home/andy/git/oil/bin/../core/word_eval.py", line 769, in EvalWords return self._EvalWords(words) File "/home/andy/git/oil/bin/../core/word_eval.py", line 759, in _EvalWords val = self._EvalCompoundWord(w, ifs=ifs, do_glob=do_glob) File "/home/andy/git/oil/bin/../core/word_eval.py", line 455, in _EvalCompoundWord val = self._EvalWordPart(p, quoted=False) # may raise File "/home/andy/git/oil/bin/../core/word_eval.py", line 703, in _EvalWordPart return self._EvalArithSub(part.anode) File "/home/andy/git/oil/bin/../core/word_eval.py", line 198, in _EvalArithSub if arith_ev.Eval(anode): File "/home/andy/git/oil/bin/../core/expr_eval.py", line 64, in Eval result = self._Eval(node) File "/home/andy/git/oil/bin/../core/expr_eval.py", line 237, in _Eval raise AssertionError("Invalid node %r" % node.id) AttributeError: 'ArithAssign' object has no attribute 'id' |
osh | 17 Bitwise ops [osh stdout] Expected b'3\n0\n-4\n', got b'' stdout: stderr: Traceback (most recent call last): File "bin/osh", line 378, in <module> sys.exit(main(sys.argv)) File "bin/osh", line 368, in main return OshMain(main_argv) File "bin/osh", line 327, in OshMain status = ex.Execute(node) File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 900, in Execute status = self._Execute(node) File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 791, in _Execute status = self._Execute(child) # last status wins File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 677, in _Execute argv = self.ev.EvalWords(words) File "/home/andy/git/oil/bin/../core/word_eval.py", line 769, in EvalWords return self._EvalWords(words) File "/home/andy/git/oil/bin/../core/word_eval.py", line 759, in _EvalWords val = self._EvalCompoundWord(w, ifs=ifs, do_glob=do_glob) File "/home/andy/git/oil/bin/../core/word_eval.py", line 455, in _EvalCompoundWord val = self._EvalWordPart(p, quoted=False) # may raise File "/home/andy/git/oil/bin/../core/word_eval.py", line 703, in _EvalWordPart return self._EvalArithSub(part.anode) File "/home/andy/git/oil/bin/../core/word_eval.py", line 198, in _EvalArithSub if arith_ev.Eval(anode): File "/home/andy/git/oil/bin/../core/expr_eval.py", line 64, in Eval result = self._Eval(node) File "/home/andy/git/oil/bin/../core/expr_eval.py", line 239, in _Eval raise AssertionError("Shouldn't get here") AssertionError: Shouldn't get here |
dash | 19 No floating point stdout: stderr: /bin/dash: 1: arithmetic expression: expecting EOF: "1 + 2.3" |
zsh | 19 No floating point stdout: 3.2999999999999998stderr: |
osh | 19 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>' <token had no position info> NO COL Error reading arith word in ArithParser --- Line 0 of '<unknown>' <token had no position info> NO COL --- Line 0 of '<unknown>' <token had no position info> NO COL Error parsing arith sub part --- Line 1 of '<stdin>' echo $((1 + 2.3)) ^ Error reading command word --- Line 0 of '<unknown>' <token had no position info> NO COL Error parsing AndOr in ParseCommandTerm --- |
dash | 20 Array indexing in arith stdout: stderr: /bin/dash: 1: Syntax error: "(" unexpected |
zsh | 20 Array indexing in arith stdout: 7stderr: |
osh | 20 Array indexing in arith [osh stdout] Expected b'11\n', got b'' stdout: stderr: [''] |
dash | 21 Constants in base 36 stdout: stderr: /bin/dash: 1: arithmetic expression: expecting EOF: "36#a" |
dash | 22 Constants in bases 2 to 64 stdout: stderr: /bin/dash: 1: arithmetic expression: expecting EOF: "64#a" |
mksh | 22 Constants in bases 2 to 64 stdout: stderr: /bin/mksh: <stdin>[1]: 64#a: bad number '64#a' |
zsh | 22 Constants in bases 2 to 64 stdout: stderr: zsh: invalid base (must be 2 to 36 inclusive): 64 |
dash | 23 Dynamic base constants stdout: stderr: /bin/dash: 2: arithmetic expression: expecting EOF: " 16#a " |
mksh | 24 Octal constant stdout: 11stderr: |
zsh | 24 Octal constant stdout: 11stderr: |
mksh | 25 Dynamic octal constant stdout: 11stderr: |
zsh | 25 Dynamic octal constant stdout: 11stderr: |
osh | 27 Dynamic var names! [osh stdout] Expected b'11\n', got b'' stdout: stderr: ["Invalid integer constant 'foo'", ''] |