83 passed, 8 ok, 8 known unimplemented, 6 known bugs, 23 failed, 0 skipped
dash | 1 Substring stdout: stderr: /bin/dash: 2: Bad substitution |
osh | 1 Substring [osh stdout] Expected b'bcd\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, cflow = ex.Execute(node) File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 758, in Execute status, cflow = self.Execute(child) # last status wins File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 659, in Execute argv = self.ev.EvalWords(node.words) File "/home/andy/git/oil/bin/../core/word_eval.py", line 791, in EvalWords ok, val = self.EvalCompoundWord(w, ifs=ifs, do_glob=do_glob) File "/home/andy/git/oil/bin/../core/word_eval.py", line 580, in EvalCompoundWord ok, val = self.EvalWordPart(p, quoted=False) File "/home/andy/git/oil/bin/../core/word_eval.py", line 705, in EvalWordPart return self.EvalVarSub(part, quoted=quoted) File "/home/andy/git/oil/bin/../core/word_eval.py", line 414, in EvalVarSub if part.suffix_op and LookupKind(part.suffix_op.op_id) == Kind.VTest: AttributeError: 'Slice' object has no attribute 'op_id' |
dash | 2 Cannot take length of substring stdout: 5stderr: |
osh | 2 Cannot take length of substring [osh status] Expected 1, got 2 stdout: <core.base.ParseError object at 0x7f3727b464a8> Line 2 of '<stdin>' echo ${#v:1:3} ^ --- <core.base.ParseError object at 0x7f3727b46358> Line 2 of '<stdin>' echo ${#v:1:3} ^ --- <core.base.ParseError object at 0x7f3727b46470> Line 0 of '<unknown>' <token had no position info> NO COL ---stderr: Expected } after length expression, got (token id:VOp2_Colon val:":" span_id:8) Error reading command word Error parsing AndOr in ParseCommandTerm |
dash | 3 Pattern replacement stdout: stderr: /bin/dash: 2: Bad substitution |
osh | 3 Pattern replacement [osh stdout] Expected b'abXX\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, cflow = ex.Execute(node) File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 758, in Execute status, cflow = self.Execute(child) # last status wins File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 659, in Execute argv = self.ev.EvalWords(node.words) File "/home/andy/git/oil/bin/../core/word_eval.py", line 791, in EvalWords ok, val = self.EvalCompoundWord(w, ifs=ifs, do_glob=do_glob) File "/home/andy/git/oil/bin/../core/word_eval.py", line 580, in EvalCompoundWord ok, val = self.EvalWordPart(p, quoted=False) File "/home/andy/git/oil/bin/../core/word_eval.py", line 705, in EvalWordPart return self.EvalVarSub(part, quoted=quoted) File "/home/andy/git/oil/bin/../core/word_eval.py", line 414, in EvalVarSub if part.suffix_op and LookupKind(part.suffix_op.op_id) == Kind.VTest: AttributeError: 'PatSub' object has no attribute 'op_id' |
osh | 4 Remove smallest suffix [osh stdout] Expected b'aabbc\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, cflow = ex.Execute(node) File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 758, in Execute status, cflow = self.Execute(child) # last status wins File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 659, in Execute argv = self.ev.EvalWords(node.words) File "/home/andy/git/oil/bin/../core/word_eval.py", line 791, in EvalWords ok, val = self.EvalCompoundWord(w, ifs=ifs, do_glob=do_glob) File "/home/andy/git/oil/bin/../core/word_eval.py", line 580, in EvalCompoundWord ok, val = self.EvalWordPart(p, quoted=False) File "/home/andy/git/oil/bin/../core/word_eval.py", line 705, in EvalWordPart return self.EvalVarSub(part, quoted=quoted) File "/home/andy/git/oil/bin/../core/word_eval.py", line 510, in EvalVarSub print(op.words) AttributeError: 'StringUnary' object has no attribute 'words' |
osh | 5 Remove longest suffix [osh stdout] Expected b'aabb\n', got b'aabbccdd\n' stdout: aabbccddstderr: |
osh | 6 Remove smallest prefix [osh stdout] Expected b'bccdd\n', got b'aabbccdd\n' stdout: aabbccddstderr: |
osh | 7 Remove longest prefix [osh stdout] Expected b'ccdd\n', got b'aabbccdd\n' stdout: aabbccddstderr: |
osh | 10 Assign default value when empty [osh stdout] Expected b'is empty\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, cflow = ex.Execute(node) File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 758, in Execute status, cflow = self.Execute(child) # last status wins File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 659, in Execute argv = self.ev.EvalWords(node.words) File "/home/andy/git/oil/bin/../core/word_eval.py", line 791, in EvalWords ok, val = self.EvalCompoundWord(w, ifs=ifs, do_glob=do_glob) File "/home/andy/git/oil/bin/../core/word_eval.py", line 580, in EvalCompoundWord ok, val = self.EvalWordPart(p, quoted=False) File "/home/andy/git/oil/bin/../core/word_eval.py", line 705, in EvalWordPart return self.EvalVarSub(part, quoted=quoted) File "/home/andy/git/oil/bin/../core/word_eval.py", line 444, in EvalVarSub raise NotImplementedError(id) NotImplementedError: <built-in function id> |
osh | 11 Assign default value when unset [osh stdout] Expected b'is unset\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, cflow = ex.Execute(node) File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 758, in Execute status, cflow = self.Execute(child) # last status wins File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 659, in Execute argv = self.ev.EvalWords(node.words) File "/home/andy/git/oil/bin/../core/word_eval.py", line 791, in EvalWords ok, val = self.EvalCompoundWord(w, ifs=ifs, do_glob=do_glob) File "/home/andy/git/oil/bin/../core/word_eval.py", line 580, in EvalCompoundWord ok, val = self.EvalWordPart(p, quoted=False) File "/home/andy/git/oil/bin/../core/word_eval.py", line 705, in EvalWordPart return self.EvalVarSub(part, quoted=quoted) File "/home/andy/git/oil/bin/../core/word_eval.py", line 444, in EvalVarSub raise NotImplementedError(id) NotImplementedError: <built-in function id> |
osh | 12 Alternative value when empty [osh stdout] Expected b'v is not empty\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, cflow = ex.Execute(node) File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 758, in Execute status, cflow = self.Execute(child) # last status wins File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 659, in Execute argv = self.ev.EvalWords(node.words) File "/home/andy/git/oil/bin/../core/word_eval.py", line 791, in EvalWords ok, val = self.EvalCompoundWord(w, ifs=ifs, do_glob=do_glob) File "/home/andy/git/oil/bin/../core/word_eval.py", line 580, in EvalCompoundWord ok, val = self.EvalWordPart(p, quoted=False) File "/home/andy/git/oil/bin/../core/word_eval.py", line 705, in EvalWordPart return self.EvalVarSub(part, quoted=quoted) File "/home/andy/git/oil/bin/../core/word_eval.py", line 444, in EvalVarSub raise NotImplementedError(id) NotImplementedError: <built-in function id> |
osh | 13 Alternative value when unset [osh stdout] Expected b'v is not unset\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, cflow = ex.Execute(node) File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 758, in Execute status, cflow = self.Execute(child) # last status wins File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 659, in Execute argv = self.ev.EvalWords(node.words) File "/home/andy/git/oil/bin/../core/word_eval.py", line 791, in EvalWords ok, val = self.EvalCompoundWord(w, ifs=ifs, do_glob=do_glob) File "/home/andy/git/oil/bin/../core/word_eval.py", line 580, in EvalCompoundWord ok, val = self.EvalWordPart(p, quoted=False) File "/home/andy/git/oil/bin/../core/word_eval.py", line 705, in EvalWordPart return self.EvalVarSub(part, quoted=quoted) File "/home/andy/git/oil/bin/../core/word_eval.py", line 444, in EvalVarSub raise NotImplementedError(id) NotImplementedError: <built-in function id> |
dash | 14 Error when empty stdout: stderr: /bin/dash: 2: empty: is empty |
dash | 15 Error when unset stdout: stderr: /bin/dash: 1: unset: is empty |
osh | 16 Error when unset [osh stdout] Expected b'v is not unset\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, cflow = ex.Execute(node) File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 758, in Execute status, cflow = self.Execute(child) # last status wins File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 659, in Execute argv = self.ev.EvalWords(node.words) File "/home/andy/git/oil/bin/../core/word_eval.py", line 791, in EvalWords ok, val = self.EvalCompoundWord(w, ifs=ifs, do_glob=do_glob) File "/home/andy/git/oil/bin/../core/word_eval.py", line 580, in EvalCompoundWord ok, val = self.EvalWordPart(p, quoted=False) File "/home/andy/git/oil/bin/../core/word_eval.py", line 705, in EvalWordPart return self.EvalVarSub(part, quoted=quoted) File "/home/andy/git/oil/bin/../core/word_eval.py", line 444, in EvalVarSub raise NotImplementedError(id) NotImplementedError: <built-in function id> |
dash | 17 String slice stdout: stderr: /bin/dash: 2: Bad substitution |
osh | 17 String slice [osh stdout] Expected b'bcd\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, cflow = ex.Execute(node) File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 758, in Execute status, cflow = self.Execute(child) # last status wins File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 659, in Execute argv = self.ev.EvalWords(node.words) File "/home/andy/git/oil/bin/../core/word_eval.py", line 791, in EvalWords ok, val = self.EvalCompoundWord(w, ifs=ifs, do_glob=do_glob) File "/home/andy/git/oil/bin/../core/word_eval.py", line 580, in EvalCompoundWord ok, val = self.EvalWordPart(p, quoted=False) File "/home/andy/git/oil/bin/../core/word_eval.py", line 705, in EvalWordPart return self.EvalVarSub(part, quoted=quoted) File "/home/andy/git/oil/bin/../core/word_eval.py", line 414, in EvalVarSub if part.suffix_op and LookupKind(part.suffix_op.op_id) == Kind.VTest: AttributeError: 'Slice' object has no attribute 'op_id' |
dash | 18 Negative string slice stdout: stderr: /bin/dash: 2: Bad substitution |
osh | 18 Negative string slice [osh stdout] Expected b'def\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, cflow = ex.Execute(node) File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 758, in Execute status, cflow = self.Execute(child) # last status wins File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 659, in Execute argv = self.ev.EvalWords(node.words) File "/home/andy/git/oil/bin/../core/word_eval.py", line 791, in EvalWords ok, val = self.EvalCompoundWord(w, ifs=ifs, do_glob=do_glob) File "/home/andy/git/oil/bin/../core/word_eval.py", line 580, in EvalCompoundWord ok, val = self.EvalWordPart(p, quoted=False) File "/home/andy/git/oil/bin/../core/word_eval.py", line 705, in EvalWordPart return self.EvalVarSub(part, quoted=quoted) File "/home/andy/git/oil/bin/../core/word_eval.py", line 414, in EvalVarSub if part.suffix_op and LookupKind(part.suffix_op.op_id) == Kind.VTest: AttributeError: 'Slice' object has no attribute 'op_id' |
dash | 19 String slice with math stdout: stderr: /bin/dash: 3: Bad substitution |
osh | 19 String slice with math [osh stdout] Expected b'def\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, cflow = ex.Execute(node) File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 758, in Execute status, cflow = self.Execute(child) # last status wins File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 659, in Execute argv = self.ev.EvalWords(node.words) File "/home/andy/git/oil/bin/../core/word_eval.py", line 791, in EvalWords ok, val = self.EvalCompoundWord(w, ifs=ifs, do_glob=do_glob) File "/home/andy/git/oil/bin/../core/word_eval.py", line 580, in EvalCompoundWord ok, val = self.EvalWordPart(p, quoted=False) File "/home/andy/git/oil/bin/../core/word_eval.py", line 705, in EvalWordPart return self.EvalVarSub(part, quoted=quoted) File "/home/andy/git/oil/bin/../core/word_eval.py", line 414, in EvalVarSub if part.suffix_op and LookupKind(part.suffix_op.op_id) == Kind.VTest: AttributeError: 'Slice' object has no attribute 'op_id' |
dash | 20 Var ref with ${!a} stdout: stderr: /bin/dash: 3: Bad substitution |
mksh | 20 Var ref with ${!a} stdout: ref astderr: |
osh | 20 Var ref with ${!a} [osh stdout] Expected b'ref c\n', got b'ref b\n' stdout: ref bstderr: |
dash | 21 Bad var ref with ${!a} stdout: stderr: /bin/dash: 2: Bad substitution |
mksh | 21 Bad var ref with ${!a} stdout: ref astderr: |
osh | 21 Bad var ref with ${!a} [osh stdout] Expected b'ref\n', got b'ref bad var name\n' stdout: ref bad var namestderr: |
osh | 22 Local Var [osh stdout] Expected b'INNER 5 6\nOUTER\n', got b'INNER 5 6\n' stdout: INNER 5 6stderr: 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, cflow = ex.Execute(node) File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 758, in Execute status, cflow = self.Execute(child) # last status wins File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 663, in Execute raise AssertionError('Error evaluating words: %s' % err) AssertionError: Error evaluating words: ['Undefined variable f_var', 'Error evaluating word part (SimpleVarSub token:(token id:VSub_Name val:"$f_var" span_id:48))', 'Error evaluating word (CompoundWord parts:[(SimpleVarSub token:(token id:VSub_Name val:"$f_var" span_id:48))])'] |
bash | 24 Braced block inside ${} stdout: stderr: /bin/bash: line 1: syntax error near unexpected token `)' /bin/bash: line 1: `echo ${foo:-$({ which ls; })}' |
dash | 25 Assigning $@ to var stdout: stderr: /bin/dash: 2: local: 2: bad variable name |
dash | 26 Assigning "$@" to var stdout: stderr: /bin/dash: 2: local: 2 3: bad variable name |
osh | 26 Assigning "$@" to var [osh stdout] Expected b"['1', '2', '3']\n", got b"['1', '2 3']\n" stdout: ['1', '2 3']stderr: |
dash | 27 Assigning "$@" to var, then showing it quoted stdout: stderr: /bin/dash: 2: local: 2 3: bad variable name |
osh | 27 Assigning "$@" to var, then showing it quoted [osh stdout] Expected b"['1 2 3']\n", got b"['1', '2 3']\n" stdout: ['1', '2 3']stderr: |
dash | 28 Filename redirect with "$@" stdout: stderr: /bin/dash: 2: cannot create _tmp/var-sub1 _tmp/var-sub2: Directory nonexistent |
dash | 29 Filename redirect with split word stdout: histderr: |
mksh | 29 Filename redirect with split word stdout: histderr: rm: cannot remove ‘_tmp/1 2’: No such file or directory |
osh | 29 Filename redirect with split word [osh status] Expected 1, got 0 stdout: histderr: |
bash | 30 Descriptor redirect to bad "$@" stdout: stderr: /bin/bash: line 2: "$@": ambiguous redirect |
mksh | 30 Descriptor redirect to bad "$@" stdout: stderr: /bin/mksh: <stdin>[2]: >&'2 3 c d' : illegal file descriptor name |
osh | 30 Descriptor redirect to bad "$@" [osh status] Expected 2, got 1 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, cflow = ex.Execute(node) File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 758, in Execute status, cflow = self.Execute(child) # last status wins File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 686, in Execute for r in redirects: TypeError: 'bool' object is not iterable |
mksh | 31 Here doc with bad "$@" delimiter stdout: stderr: /bin/mksh: <stdin>[7]: here document '$@' unclosed |
osh | 31 Here doc with bad "$@" delimiter [osh stdout] Expected b'', got b'<core.base.ParseError object at 0x7f0152334400>\nLine 2 of \'<stdin>\'\n cat << "$@"\n ^~\n---\n<core.base.ParseError object at 0x7f0152334358>\nLine 0 of \'<unknown>\'\n <token had no position info>\nNO COL\n---\n<core.base.ParseError object at 0x7f015231df98>\nLine 0 of \'<unknown>\'\n <token had no position info>\nNO COL\n---\n' stdout: <core.base.ParseError object at 0x7f0152334400> Line 2 of '<stdin>' cat << "$@" ^~ --- <core.base.ParseError object at 0x7f0152334358> Line 0 of '<unknown>' <token had no position info> NO COL --- <core.base.ParseError object at 0x7f015231df98> Line 0 of '<unknown>' <token had no position info> NO COL ---stderr: Error evaluating here doc delimiter: (CompoundWord parts: [ (DoubleQuotedPart parts: [(SimpleVarSub token:(token id:VSub_At val:"$@" span_id:12))] spids: [11 13] ) ] ) Error parsing AndOr in ParseCommandTerm Error parsing AndOr in ParseCommandTerm |