80 passed, 7 ok, 4 known unimplemented, 7 known bugs, 31 failed, 0 skipped
| osh | 1 $a gives first element of array [osh stdout] Expected b'1\n', got b'1 2 3\n' stdout: 1 2 3stderr: |
| mksh | 3 local array stdout: stderr: /bin/mksh: <stdin>[2]: syntax error: '(' unexpected
|
| osh | 3 local array [osh stdout] Expected b"['1']\n", got b"['1', '2 3']\n" stdout: ['1', '2 3']stderr: |
| osh | 4 Command with with word splitting in array [osh stdout] Expected b"['1 2', '3', '4']\n", got b"['1 2', '3 4']\n" stdout: ['1 2', '3 4']stderr: |
| 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 1552, in ParseWholeFile
if not self._NewlineOk(): return None
File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 181, in _NewlineOk
if not self._Peek():
File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 144, in _Peek
w = self.w_parser.ReadWord(self.next_lex_mode)
File "/home/andy/git/oil/bin/../osh/word_parse.py", line 1093, in ReadWord
w, need_more = self._ReadWord(lex_mode)
File "/home/andy/git/oil/bin/../osh/word_parse.py", line 1054, in _ReadWord
w = self._ReadCompoundWord(lex_mode=lex_mode)
File "/home/andy/git/oil/bin/../osh/word_parse.py", line 888, in _ReadCompoundWord
part2 = self._ReadArrayLiteralPart()
File "/home/andy/git/oil/bin/../osh/word_parse.py", line 839, in _ReadArrayLiteralPart
assert self.cur_token.id == Id.Op_LParen, self.cur_token
AssertionError: (token id:WS_Space val:" " span_id:1)
|
| osh | 6 empty array [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, 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: ["Can't index non-array with @", 'Error evaluating word part (DoubleQuotedPart\n parts: [\n (BracedVarSub\n token: (token id:VSub_Name val:empty span_id:8)\n bracket_op: (WholeArray op_id:Lit_At)\n spids: [7 12]\n )\n ]\n spids: [6 13]\n)', 'Error evaluating word (CompoundWord\n parts: [\n (DoubleQuotedPart\n parts: [\n (BracedVarSub\n token: (token id:VSub_Name val:empty span_id:8)\n bracket_op: (WholeArray op_id:Lit_At)\n spids: [7 12]\n )\n ]\n spids: [6 13]\n )\n ]\n)']
|
| osh | 7 array with empty string [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, 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: ["Can't index non-array with @", 'Error evaluating word part (DoubleQuotedPart\n parts: [\n (BracedVarSub\n token: (token id:VSub_Name val:empty span_id:10)\n bracket_op: (WholeArray op_id:Lit_At)\n spids: [9 14]\n )\n ]\n spids: [8 15]\n)', 'Error evaluating word (CompoundWord\n parts: [\n (DoubleQuotedPart\n parts: [\n (BracedVarSub\n token: (token id:VSub_Name val:empty span_id:10)\n bracket_op: (WholeArray op_id:Lit_At)\n spids: [9 14]\n )\n ]\n spids: [8 15]\n )\n ]\n)']
|
| osh | 8 Assign to array index without initialization [osh stdout] Expected b"['9']\n", got b"['']\nUNDEFINED\n" stdout: [''] UNDEFINEDstderr: 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 | 10 Retrieve out of bounds index [osh stdout] Expected b"['']\n", got b"['']\nUNDEFINED\n" stdout: [''] UNDEFINEDstderr: |
| osh | 14 Retrieve all indices with ! [osh stdout] Expected b"['0', '1']\n", got b"['1', '2 3']\n" stdout: ['1', '2 3']stderr: |
| mksh | 15 Retrieve indices for one value stdout: ['1']stderr: |
| osh | 15 Retrieve indices for one value [osh stdout] Expected b"['']\n", got b"['2 3']\n" stdout: ['2 3']stderr: |
| 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, 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: ['Array was referenced without explicit index, e.g. ${a[@]} or ${a[0]}', 'Error evaluating word part (DoubleQuotedPart\n parts: [(BracedVarSub token:(token id:VSub_Name val:a span_id:14) prefix_op:VSub_Bang spids:[1215])]\n spids: [11 16]\n)', 'Error evaluating word (CompoundWord\n parts: [\n (DoubleQuotedPart\n parts: [\n (BracedVarSub\n token: (token id:VSub_Name val:a span_id:14)\n prefix_op: VSub_Bang\n spids: [12 15]\n )\n ]\n spids: [11 16]\n )\n ]\n)']
|
| osh | 17 All elements unquoted [osh stdout] Expected b"['1', '2', '3']\n", got b"['1', '2 3']\n" stdout: ['1', '2 3']stderr: |
| osh | 19 $* [osh stdout] Expected b"['1', '2', '3']\n", got b"['1', '2 3']\n" stdout: ['1', '2 3']stderr: |
| osh | 20 "$*" [osh stdout] Expected b"['1 2 3']\n", got b"['1', '2 3']\n" stdout: ['1', '2 3']stderr: |
| osh | 21 Interpolate array into array [osh stdout] Expected b"['0', '1', '2 3', '4 5']\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 739, in Execute
ok, val = self.ev.EvalCompoundWord(pair.rhs)
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 678, in EvalWordPart
return self.EvalArrayLiteralPart(part)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 672, in EvalArrayLiteralPart
raise AssertionError('Expected string')
AssertionError: Expected string
|
| osh | 22 Arrays can't be copied directly [osh stdout] Expected b"['x', 'y', 'z', 'x y z', 'x', 'YYY', 'z']\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 739, in Execute
ok, val = self.ev.EvalCompoundWord(pair.rhs)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 573, in EvalCompoundWord
assert isinstance(word, ast.CompoundWord), "Expected CompoundWord, got %s" % word
AssertionError: Expected CompoundWord, got None
|
| mksh | 23 Exporting array doesn't do anything, not even first element stdout: stderr: /bin/mksh: <stdin>[1]: syntax error: '(' unexpected
|
| mksh | 24 Env with array stdout: stderr: /bin/mksh: <stdin>[1]: syntax error: '(' unexpected
|
| osh | 24 Env with array [osh stdout] Expected b'a\n(b b)\n', got b"<core.base.ParseError object at 0x7fc433a60780>\nLine 1 of '<stdin>'\n A=a B=(b b) printenv.py A B\n ^\n---\n<core.base.ParseError object at 0x7fc433a4ceb8>\nLine 0 of '<unknown>'\n <token had no position info>\nNO COL\n---\n" stdout: <core.base.ParseError object at 0x7fc433a60780>
Line 1 of '<stdin>'
A=a B=(b b) printenv.py A B
^
---
<core.base.ParseError object at 0x7fc433a4ceb8>
Line 0 of '<unknown>'
<token had no position info>
NO COL
---
stderr: 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))])
]
)
]
)
Error parsing AndOr in ParseCommandTerm
|
| osh | 25 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 | 26 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 | 27 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 | 28 Slice of array with [@] stdout: stderr: /bin/mksh: <stdin>[2]: ${a[@]: 1:2}": bad substitution
|
| osh | 28 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, 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 696, in EvalWordPart
return self.EvalDoubleQuotedPart(part)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 722, in EvalDoubleQuotedPart
ok, val = self.EvalWordPart(p, quoted=True)
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'
|
| mksh | 29 Negative slice stdout: stderr: /bin/mksh: <stdin>[2]: ${a[@]: (-2):1}": bad substitution
|
| osh | 29 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, 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 696, in EvalWordPart
return self.EvalDoubleQuotedPart(part)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 722, in EvalDoubleQuotedPart
ok, val = self.EvalWordPart(p, quoted=True)
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'
|
| mksh | 30 Slice with arithmetic stdout: stderr: /bin/mksh: <stdin>[3]: ${a[@]:i-4:2}": bad substitution
|
| osh | 30 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, 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 696, in EvalWordPart
return self.EvalDoubleQuotedPart(part)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 722, in EvalDoubleQuotedPart
ok, val = self.EvalWordPart(p, quoted=True)
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'
|
| osh | 33 glob within array yields separate elements [osh stdout] Expected b"['_tmp/y.Y', '_tmp/yy.Y']\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 663, in Execute
raise AssertionError('Error evaluating words: %s' % err)
AssertionError: Error evaluating words: ["Can't index non-array with @", 'Error evaluating word part (DoubleQuotedPart\n parts: [\n (BracedVarSub\n token: (token id:VSub_Name val:a span_id:17)\n bracket_op: (WholeArray op_id:Lit_At)\n spids: [16 21]\n )\n ]\n spids: [15 22]\n)', 'Error evaluating word (CompoundWord\n parts: [\n (DoubleQuotedPart\n parts: [\n (BracedVarSub\n token: (token id:VSub_Name val:a span_id:17)\n bracket_op: (WholeArray op_id:Lit_At)\n spids: [16 21]\n )\n ]\n spids: [15 22]\n )\n ]\n)']
|
| 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, 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 739, in Execute
ok, val = self.ev.EvalCompoundWord(pair.rhs)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 573, in EvalCompoundWord
assert isinstance(word, ast.CompoundWord), "Expected CompoundWord, got %s" % word
AssertionError: Expected CompoundWord, got None
|
| mksh | 35 Array syntax in wrong place stdout: stderr: /bin/mksh: <stdin>[1]: syntax error: '(' unexpected
|
| osh | 36 Empty array with :- [osh stdout] Expected b"['not', 'one', 'not one']\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 663, in Execute
raise AssertionError('Error evaluating words: %s' % err)
AssertionError: Error evaluating words: ["Can't index non-array with @", 'Error evaluating word part (BracedVarSub\n token: (token id:VSub_Name val:empty span_id:7)\n bracket_op: (WholeArray op_id:Lit_At)\n suffix_op: \n (StringUnary\n op_id: VTest_ColonHyphen\n arg_word: \n (CompoundWord\n parts: [(LiteralPart token:(token id:Lit_Chars val:"not one" span_id:12))]\n )\n )\n spids: [6 13]\n)', 'Error evaluating word (CompoundWord\n parts: [\n (BracedVarSub\n token: (token id:VSub_Name val:empty span_id:7)\n bracket_op: (WholeArray op_id:Lit_At)\n suffix_op: \n (StringUnary\n op_id: VTest_ColonHyphen\n arg_word: \n (CompoundWord\n parts: [(LiteralPart token:(token id:Lit_Chars val:"not one" span_id:12))]\n )\n )\n spids: [6 13]\n )\n ]\n)']
|
| mksh | 37 Single array with :- stdout: ['none', 'none']stderr: |
| osh | 37 Single array with :- [osh stdout] Expected b"['none', '']\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 663, in Execute
raise AssertionError('Error evaluating words: %s' % err)
AssertionError: Error evaluating words: ["Can't index non-array with @", 'Error evaluating word part (BracedVarSub\n token: (token id:VSub_Name val:single span_id:9)\n bracket_op: (WholeArray op_id:Lit_At)\n suffix_op: \n (StringUnary\n op_id: VTest_ColonHyphen\n arg_word: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Chars val:none span_id:14))])\n )\n spids: [8 15]\n)', 'Error evaluating word (CompoundWord\n parts: [\n (BracedVarSub\n token: (token id:VSub_Name val:single span_id:9)\n bracket_op: (WholeArray op_id:Lit_At)\n suffix_op: \n (StringUnary\n op_id: VTest_ColonHyphen\n arg_word: \n (CompoundWord\n parts: [(LiteralPart token:(token id:Lit_Chars val:none span_id:14))]\n )\n )\n spids: [8 15]\n )\n ]\n)']
|
| mksh | 38 Stripping a whole array stdout: stderr: /bin/mksh: <stdin>[2]: ${files[@]%.c}: bad substitution
|
| osh | 38 Stripping a whole array [osh stdout] Expected b"['foo', 'sp', 'ace.h', 'bar', 'foo', 'sp ace.h', 'bar']\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'
|
| bash | 39 Multiple subscripts not allowed stdout: ['123', '123']stderr: |
| mksh | 39 Multiple subscripts not allowed stdout: stderr: /bin/mksh: <stdin>[2]: ${a[0][0]}": bad substitution
|
| osh | 39 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 1561, in ParseWholeFile
node = self.ParseCommandTerm()
File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1469, in ParseCommandTerm
child = self.ParseAndOr()
File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1334, in ParseAndOr
left = self.ParsePipeline()
File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1270, in ParsePipeline
child = self.ParseCommand()
File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1252, in ParseCommand
return self.ParseSimpleCommand() # echo foo
File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 599, in ParseSimpleCommand
result = self._ScanSimpleCommand()
File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 414, in _ScanSimpleCommand
if not self._Peek(): return None
File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 144, in _Peek
w = self.w_parser.ReadWord(self.next_lex_mode)
File "/home/andy/git/oil/bin/../osh/word_parse.py", line 1093, in ReadWord
w, need_more = self._ReadWord(lex_mode)
File "/home/andy/git/oil/bin/../osh/word_parse.py", line 1054, in _ReadWord
w = self._ReadCompoundWord(lex_mode=lex_mode)
File "/home/andy/git/oil/bin/../osh/word_parse.py", line 900, in _ReadCompoundWord
part = self._ReadLeftParts()
File "/home/andy/git/oil/bin/../osh/word_parse.py", line 512, in _ReadLeftParts
return self._ReadDoubleQuotedPart()
File "/home/andy/git/oil/bin/../osh/word_parse.py", line 574, in _ReadDoubleQuotedPart
part = self._ReadDoubleQuotedLeftParts()
File "/home/andy/git/oil/bin/../osh/word_parse.py", line 498, in _ReadDoubleQuotedLeftParts
return self._ReadBracedBracedVarSub(d_quoted=True)
File "/home/andy/git/oil/bin/../osh/word_parse.py", line 453, in _ReadBracedBracedVarSub
part = self._ParseVarExpr(arg_lex_mode)
File "/home/andy/git/oil/bin/../osh/word_parse.py", line 331, in _ParseVarExpr
raise AssertionError("Invalid op token %s" % self.cur_token)
AssertionError: Invalid op token (token id:VOp2_LBracket val:"[" span_id:28)
|
| bash | 40 Length op, index op, then transform op is not allowed stdout: 3 3stderr: |
| mksh | 40 Length op, index op, then transform op is not allowed stdout: stderr: /bin/mksh: <stdin>[2]: ${#a[0]/1/xxx}": bad substitution
|
| osh | 40 Length op, index op, then transform op is not allowed [osh stdout] Expected b'', got b'<core.base.ParseError object at 0x7f1d2b7c1cc0>\nLine 2 of \'<stdin>\'\n echo "${#a[0]}" "${#a[0]/1/xxx}"\n ^\n---\n<core.base.ParseError object at 0x7f1d2b7c1780>\nLine 2 of \'<stdin>\'\n echo "${#a[0]}" "${#a[0]/1/xxx}"\n ^\n---\n<core.base.ParseError object at 0x7f1d2b7b4d68>\nLine 0 of \'<unknown>\'\n <token had no position info>\nNO COL\n---\n' stdout: <core.base.ParseError object at 0x7f1d2b7c1cc0>
Line 2 of '<stdin>'
echo "${#a[0]}" "${#a[0]/1/xxx}"
^
---
<core.base.ParseError object at 0x7f1d2b7c1780>
Line 2 of '<stdin>'
echo "${#a[0]}" "${#a[0]/1/xxx}"
^
---
<core.base.ParseError object at 0x7f1d2b7b4d68>
Line 0 of '<unknown>'
<token had no position info>
NO COL
---
stderr: Expected } after length expression, got (token id:VOp2_Slash val:/ span_id:30) Error reading command word Error parsing AndOr in ParseCommandTerm |
| bash | 41 Array subscript not allowed on string stdout: abcstderr: |
| mksh | 41 Array subscript not allowed on string stdout: abcstderr: |
| osh | 42 Create a "user" array out of the argv array [osh stdout] Expected b"['x y', 'z', 'a b', 'c', '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, 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 739, in Execute
ok, val = self.ev.EvalCompoundWord(pair.rhs)
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 678, in EvalWordPart
return self.EvalArrayLiteralPart(part)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 672, in EvalArrayLiteralPart
raise AssertionError('Expected string')
AssertionError: Expected string
|