106 passed, 9 ok, 5 known unimplemented, 7 known bugs, 14 failed, 0 skipped
| mksh | 3 local array stdout: stderr: /bin/mksh: <stdin>[2]: syntax error: '(' unexpected
|
| mksh | 5 space before ( in array initialization stdout: 1stderr: |
| osh | 5 space before ( in array initialization [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 286, in OshMain
node = c_parser.ParseWholeFile()
File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1525, in ParseWholeFile
if not self._NewlineOk(): return None
File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 184, in _NewlineOk
if not self._Peek():
File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 147, in _Peek
w = self.w_parser.ReadWord(self.next_lex_mode)
File "/home/andy/git/oil/bin/../osh/word_parse.py", line 1098, in ReadWord
w, need_more = self._ReadWord(lex_mode)
File "/home/andy/git/oil/bin/../osh/word_parse.py", line 1059, in _ReadWord
w = self._ReadCompoundWord(lex_mode=lex_mode)
File "/home/andy/git/oil/bin/../osh/word_parse.py", line 893, in _ReadCompoundWord
part2 = self._ReadArrayLiteralPart()
File "/home/andy/git/oil/bin/../osh/word_parse.py", line 838, in _ReadArrayLiteralPart
assert self.cur_token.id == Id.Op_LParen, self.cur_token
AssertionError: (token id:WS_Space val:" " span_id:1)
|
| osh | 8 Assign to array index without initialization [osh stdout] Expected b"['9']\n", got b"['']\n" stdout: ['']stderr: Unexpected error in execvpe('b[2]=9', ['b[2]=9'], ...): [Errno 2] No such file or directory: b'/home/andy/bin/b[2]=9'
|
| osh | 14 Retrieve all indices with ! [osh stdout] Expected b"['0', '1']\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 959, in Execute
status = self._Execute(node)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 824, in _Execute
status = self._Execute(child) # last status wins
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 721, in _Execute
argv = self.ev.EvalWordSequence(words)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 1045, in EvalWordSequence
return self._EvalWordSequence(words)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 1028, in _EvalWordSequence
args = self._EvalWordAndReframe(w)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 989, in _EvalWordAndReframe
part_vals = self._EvalParts(word)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 882, in _EvalParts
for v in self.part_ev._EvalWordPart(p, quoted=quoted):
File "/home/andy/git/oil/bin/../core/word_eval.py", line 781, in _EvalWordPart
return [self._EvalDoubleQuotedPart(part)]
File "/home/andy/git/oil/bin/../core/word_eval.py", line 610, in _EvalDoubleQuotedPart
for part_val in self._EvalWordPart(p, quoted=True):
File "/home/andy/git/oil/bin/../core/word_eval.py", line 804, in _EvalWordPart
return self._EvalBracedVarSub(part, quoted)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 706, in _EvalBracedVarSub
val = self._ApplyPrefixOp(val, part.prefix_op)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 462, in _ApplyPrefixOp
raise NotImplementedError(op_id)
NotImplementedError: VSub_Bang
|
| mksh | 15 Retrieve indices for one value stdout: ['1']stderr: |
| osh | 15 Retrieve indices for one value [osh stdout] Expected b"['']\n", got b'' [osh status] Expected 0, 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 = ex.Execute(node)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 959, in Execute
status = self._Execute(node)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 824, in _Execute
status = self._Execute(child) # last status wins
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 721, in _Execute
argv = self.ev.EvalWordSequence(words)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 1045, in EvalWordSequence
return self._EvalWordSequence(words)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 1028, in _EvalWordSequence
args = self._EvalWordAndReframe(w)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 989, in _EvalWordAndReframe
part_vals = self._EvalParts(word)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 882, in _EvalParts
for v in self.part_ev._EvalWordPart(p, quoted=quoted):
File "/home/andy/git/oil/bin/../core/word_eval.py", line 781, in _EvalWordPart
return [self._EvalDoubleQuotedPart(part)]
File "/home/andy/git/oil/bin/../core/word_eval.py", line 610, in _EvalDoubleQuotedPart
for part_val in self._EvalWordPart(p, quoted=True):
File "/home/andy/git/oil/bin/../core/word_eval.py", line 804, in _EvalWordPart
return self._EvalBracedVarSub(part, quoted)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 706, in _EvalBracedVarSub
val = self._ApplyPrefixOp(val, part.prefix_op)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 462, in _ApplyPrefixOp
raise NotImplementedError(op_id)
NotImplementedError: VSub_Bang
|
| mksh | 16 Retrieve indices without [] stdout: ['a']stderr: |
| osh | 16 Retrieve indices without [] [osh stdout] Expected b"['']\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 959, in Execute
status = self._Execute(node)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 824, in _Execute
status = self._Execute(child) # last status wins
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 721, in _Execute
argv = self.ev.EvalWordSequence(words)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 1045, in EvalWordSequence
return self._EvalWordSequence(words)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 1028, in _EvalWordSequence
args = self._EvalWordAndReframe(w)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 989, in _EvalWordAndReframe
part_vals = self._EvalParts(word)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 882, in _EvalParts
for v in self.part_ev._EvalWordPart(p, quoted=quoted):
File "/home/andy/git/oil/bin/../core/word_eval.py", line 781, in _EvalWordPart
return [self._EvalDoubleQuotedPart(part)]
File "/home/andy/git/oil/bin/../core/word_eval.py", line 610, in _EvalDoubleQuotedPart
for part_val in self._EvalWordPart(p, quoted=True):
File "/home/andy/git/oil/bin/../core/word_eval.py", line 804, in _EvalWordPart
return self._EvalBracedVarSub(part, quoted)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 706, in _EvalBracedVarSub
val = self._ApplyPrefixOp(val, part.prefix_op)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 462, in _ApplyPrefixOp
raise NotImplementedError(op_id)
NotImplementedError: VSub_Bang
|
| mksh | 22 Exporting array doesn't do anything, not even first element stdout: stderr: /bin/mksh: <stdin>[1]: syntax error: '(' unexpected
|
| mksh | 23 Env with array stdout: stderr: /bin/mksh: <stdin>[1]: syntax error: '(' unexpected
|
| osh | 23 Env with array [osh stdout] Expected b'a\n(b b)\n', got b'' stdout: stderr: Line 1 of '<stdin>'
A=a B=(b b) printenv.py A B
^
Unexpected array literal in binding: (CompoundWord
parts: [
(ArrayLiteralPart
words: [
(CompoundWord parts:[(LiteralPart token:(token id:Lit_Chars val:b span_id:5))])
(CompoundWord parts:[(LiteralPart token:(token id:Lit_Chars val:b span_id:7))])
]
)
]
)
---
Line 0 of '<unknown>'
<token had no position info>
NO COL
Error parsing AndOr in ParseCommandTerm
---
|
| osh | 24 Set element [osh stdout] Expected b"['9', '2 3']\n", got b"['1', '2 3']\n" stdout: ['1', '2 3']stderr: Unexpected error in execvpe('a[0]=9', ['a[0]=9'], ...): [Errno 2] No such file or directory: b'/home/andy/bin/a[0]=9'
|
| osh | 25 Set element with var ref [osh stdout] Expected b"['9', '2 3']\n", got b"['1', '2 3']\n" stdout: ['1', '2 3']stderr: Unexpected error in execvpe('a[0]=9', ['a[0]=9'], ...): [Errno 2] No such file or directory: b'/home/andy/bin/a[0]=9'
|
| osh | 26 Set element with array ref [osh stdout] Expected b"['1', '9']\n", got b"['1', '2 3']\n" stdout: ['1', '2 3']stderr: Unexpected error in execvpe('a[1]=9', ['a[1]=9'], ...): [Errno 2] No such file or directory: b'/home/andy/bin/a[1]=9'
|
| mksh | 27 Slice of array with [@] stdout: stderr: /bin/mksh: <stdin>[2]: ${a[@]: 1:2}": bad substitution
|
| osh | 27 Slice of array with [@] [osh stdout] Expected b"['2', '3']\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 959, in Execute
status = self._Execute(node)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 824, in _Execute
status = self._Execute(child) # last status wins
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 721, in _Execute
argv = self.ev.EvalWordSequence(words)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 1045, in EvalWordSequence
return self._EvalWordSequence(words)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 1028, in _EvalWordSequence
args = self._EvalWordAndReframe(w)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 989, in _EvalWordAndReframe
part_vals = self._EvalParts(word)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 882, in _EvalParts
for v in self.part_ev._EvalWordPart(p, quoted=quoted):
File "/home/andy/git/oil/bin/../core/word_eval.py", line 781, in _EvalWordPart
return [self._EvalDoubleQuotedPart(part)]
File "/home/andy/git/oil/bin/../core/word_eval.py", line 610, in _EvalDoubleQuotedPart
for part_val in self._EvalWordPart(p, quoted=True):
File "/home/andy/git/oil/bin/../core/word_eval.py", line 804, in _EvalWordPart
return self._EvalBracedVarSub(part, quoted)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 711, in _EvalBracedVarSub
if LookupKind(part.suffix_op.op_id) == Kind.VTest:
AttributeError: 'Slice' object has no attribute 'op_id'
|
| mksh | 28 Negative slice stdout: stderr: /bin/mksh: <stdin>[2]: ${a[@]: (-2):1}": bad substitution
|
| osh | 28 Negative slice [osh stdout] Expected b"['2']\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 959, in Execute
status = self._Execute(node)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 824, in _Execute
status = self._Execute(child) # last status wins
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 721, in _Execute
argv = self.ev.EvalWordSequence(words)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 1045, in EvalWordSequence
return self._EvalWordSequence(words)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 1028, in _EvalWordSequence
args = self._EvalWordAndReframe(w)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 989, in _EvalWordAndReframe
part_vals = self._EvalParts(word)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 882, in _EvalParts
for v in self.part_ev._EvalWordPart(p, quoted=quoted):
File "/home/andy/git/oil/bin/../core/word_eval.py", line 781, in _EvalWordPart
return [self._EvalDoubleQuotedPart(part)]
File "/home/andy/git/oil/bin/../core/word_eval.py", line 610, in _EvalDoubleQuotedPart
for part_val in self._EvalWordPart(p, quoted=True):
File "/home/andy/git/oil/bin/../core/word_eval.py", line 804, in _EvalWordPart
return self._EvalBracedVarSub(part, quoted)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 711, in _EvalBracedVarSub
if LookupKind(part.suffix_op.op_id) == Kind.VTest:
AttributeError: 'Slice' object has no attribute 'op_id'
|
| mksh | 29 Slice with arithmetic stdout: stderr: /bin/mksh: <stdin>[3]: ${a[@]:i-4:2}": bad substitution
|
| osh | 29 Slice with arithmetic [osh stdout] Expected b"['2', '3']\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 959, in Execute
status = self._Execute(node)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 824, in _Execute
status = self._Execute(child) # last status wins
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 721, in _Execute
argv = self.ev.EvalWordSequence(words)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 1045, in EvalWordSequence
return self._EvalWordSequence(words)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 1028, in _EvalWordSequence
args = self._EvalWordAndReframe(w)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 989, in _EvalWordAndReframe
part_vals = self._EvalParts(word)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 882, in _EvalParts
for v in self.part_ev._EvalWordPart(p, quoted=quoted):
File "/home/andy/git/oil/bin/../core/word_eval.py", line 781, in _EvalWordPart
return [self._EvalDoubleQuotedPart(part)]
File "/home/andy/git/oil/bin/../core/word_eval.py", line 610, in _EvalDoubleQuotedPart
for part_val in self._EvalWordPart(p, quoted=True):
File "/home/andy/git/oil/bin/../core/word_eval.py", line 804, in _EvalWordPart
return self._EvalBracedVarSub(part, quoted)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 711, in _EvalBracedVarSub
if LookupKind(part.suffix_op.op_id) == Kind.VTest:
AttributeError: 'Slice' object has no attribute 'op_id'
|
| osh | 34 declare array and then append [osh stdout] Expected b"['a', 'b', 'c']\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 959, in Execute
status = self._Execute(node)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 824, in _Execute
status = self._Execute(child) # last status wins
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 789, in _Execute
ok, val = self.ev.EvalWordToAny(pair.rhs)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 931, in EvalWordToAny
if (len(word.parts) == 1 and
AttributeError: 'NoneType' object has no attribute 'parts'
|
| mksh | 35 Array syntax in wrong place stdout: stderr: /bin/mksh: <stdin>[1]: syntax error: '(' unexpected
|
| bash | 37 Single array with :- stdout: ['none', 'x', '']stderr: |
| mksh | 37 Single array with :- stdout: ['none', 'x', 'none']stderr: |
| osh | 37 Single array with :- stdout: ['x', '']stderr: |
| mksh | 38 Stripping a whole array unquoted stdout: stderr: /bin/mksh: <stdin>[2]: ${files[@]%.c}: bad substitution
|
| mksh | 39 Stripping a whole array quoted stdout: stderr: /bin/mksh: <stdin>[2]: ${files[@]%.c}": bad substitution
|
| bash | 40 Multiple subscripts not allowed stdout: ['123', '123']stderr: |
| mksh | 40 Multiple subscripts not allowed stdout: stderr: /bin/mksh: <stdin>[2]: ${a[0][0]}": bad substitution
|
| osh | 40 Multiple subscripts not allowed [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 286, in OshMain
node = c_parser.ParseWholeFile()
File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1534, in ParseWholeFile
node = self.ParseCommandTerm()
File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1442, in ParseCommandTerm
child = self.ParseAndOr()
File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1307, in ParseAndOr
left = self.ParsePipeline()
File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1243, in ParsePipeline
child = self.ParseCommand()
File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1225, in ParseCommand
return self.ParseSimpleCommand() # echo foo
File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 538, in ParseSimpleCommand
result = self._ScanSimpleCommand()
File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 350, in _ScanSimpleCommand
if not self._Peek(): return None
File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 147, in _Peek
w = self.w_parser.ReadWord(self.next_lex_mode)
File "/home/andy/git/oil/bin/../osh/word_parse.py", line 1098, in ReadWord
w, need_more = self._ReadWord(lex_mode)
File "/home/andy/git/oil/bin/../osh/word_parse.py", line 1059, in _ReadWord
w = self._ReadCompoundWord(lex_mode=lex_mode)
File "/home/andy/git/oil/bin/../osh/word_parse.py", line 905, in _ReadCompoundWord
part = self._ReadLeftParts()
File "/home/andy/git/oil/bin/../osh/word_parse.py", line 513, in _ReadLeftParts
return self._ReadDoubleQuotedPart()
File "/home/andy/git/oil/bin/../osh/word_parse.py", line 575, in _ReadDoubleQuotedPart
part = self._ReadDoubleQuotedLeftParts()
File "/home/andy/git/oil/bin/../osh/word_parse.py", line 499, in _ReadDoubleQuotedLeftParts
return self._ReadBracedBracedVarSub(d_quoted=True)
File "/home/andy/git/oil/bin/../osh/word_parse.py", line 454, in _ReadBracedBracedVarSub
part = self._ParseVarExpr(arg_lex_mode)
File "/home/andy/git/oil/bin/../osh/word_parse.py", line 332, in _ParseVarExpr
raise AssertionError("Invalid op token %s" % self.cur_token)
AssertionError: Invalid op token (token id:VOp2_LBracket val:"[" span_id:28)
|
| bash | 41 Length op, index op, then transform op is not allowed stdout: 3 3stderr: |
| mksh | 41 Length op, index op, then transform op is not allowed stdout: stderr: /bin/mksh: <stdin>[2]: ${#a[0]/1/xxx}": bad substitution
|
| bash | 42 Array subscript not allowed on string stdout: abcstderr: |
| mksh | 42 Array subscript not allowed on string stdout: abcstderr: |