| case | dash | bash | mksh | osh | osh_ALT | description |
| 0 | pass | pass | pass | pass | pass | String length |
| 1 | pass | pass | pass | pass | pass | Length of undefined variable |
| 2 | ok | pass | pass | pass | pass | Length of undefined variable with nounset |
| details | ||||||
| 3 | N-I | pass | pass | FAIL | FAIL | Cannot take length of substring slice |
| details | details | details | ||||
| 4 | N-I | pass | pass | FAIL | FAIL | Pattern replacement |
| details | details | details | ||||
| 5 | N-I | BUG | BUG | FAIL | FAIL | Pattern replacement ${v/} is not valid |
| details | details | details | details | details | ||
| 6 | N-I | BUG | BUG | pass | pass | Pattern replacement ${v//} is not valid |
| details | details | details | ||||
| 7 | N-I | pass | pass | FAIL | FAIL | String slice |
| details | details | details | ||||
| 8 | N-I | pass | pass | FAIL | FAIL | Negative string slice |
| details | details | details | ||||
| 9 | N-I | pass | pass | FAIL | FAIL | String slice with math |
| details | details | details |
26 passed, 1 ok, 7 known unimplemented, 4 known bugs, 6 failed, 0 skipped
| dash | 2 Length of undefined variable with nounset stdout: stderr: /bin/dash: 2: undef: parameter not set |
| dash | 3 Cannot take length of substring slice stdout: 5stderr: |
| osh | 3 Cannot take length of substring slice [osh status] Expected 1, got 2 stdout: stderr: Line 2 of '<stdin>'
echo ${#v:1:3}
^
Expected } after length expression, got (token id:VOp2_Colon val:":" span_id:8)
---
Line 2 of '<stdin>'
echo ${#v:1:3}
^
Error reading command word
---
Line 0 of '<unknown>'
<no position info for token>
Error parsing AndOr in ParseCommandTerm
---
|
| osh_ALT | 3 Cannot take length of substring slice [osh_ALT status] Expected 1, got 2 stdout: stderr: Line 2 of '<stdin>'
echo ${#v:1:3}
^
Expected } after length expression, got (token id:VOp2_Colon val:":" span_id:8)
---
Line 2 of '<stdin>'
echo ${#v:1:3}
^
Error reading command word
---
Line 0 of '<unknown>'
<no position info for token>
Error parsing AndOr in ParseCommandTerm
---
|
| dash | 4 Pattern replacement stdout: stderr: /bin/dash: 2: Bad substitution |
| osh | 4 Pattern replacement [osh stdout] Expected 'abXX\n', got '' [osh status] Expected 0, got 1 stdout: stderr: Traceback (most recent call last):
File "bin/osh", line 440, in <module>
main(sys.argv)
File "bin/osh", line 427, in main
sys.exit(OilMain(argv))
File "bin/osh", line 410, in OilMain
status = OshMain(main_argv)
File "bin/osh", line 373, in OshMain
status = ex.Execute(node)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 892, in Execute
status = self._Execute(node, fork_external=fork_external)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 856, in _Execute
status, check_errexit = self._Dispatch(node, fork_external)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 674, in _Dispatch
status = self._ExecuteList(node.children)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 885, in _ExecuteList
status = self._Execute(child) # last status wins
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 856, in _Execute
status, check_errexit = self._Dispatch(node, fork_external)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 571, in _Dispatch
argv = self.ev.EvalWordSequence(words)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 1060, in EvalWordSequence
return self._EvalWordSequence(words)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 1040, in _EvalWordSequence
args = self._EvalWordAndReframe(w)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 993, in _EvalWordAndReframe
part_vals = self._EvalParts(word)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 887, in _EvalParts
for v in self.part_ev._EvalWordPart(p, quoted=quoted):
File "/home/andy/git/oil/bin/../core/word_eval.py", line 846, in _EvalWordPart
return self._EvalBracedVarSub(part, quoted)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 772, in _EvalBracedVarSub
raise NotImplementedError(op)
NotImplementedError: (PatSub
pat: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Chars val:"c*" span_id:8))])
replace: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Chars val:XX span_id:10))])
do_all: False
do_prefix: False
do_suffix: False
)
|
| osh_ALT | 4 Pattern replacement [osh_ALT stdout] Expected 'abXX\n', got '' [osh_ALT status] Expected 0, got 1 stdout: stderr: Traceback (most recent call last):
File "/home/andy/git/oil/Python-2.7.13/Lib/runpy.py", line 174, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/home/andy/git/oil/Python-2.7.13/Lib/runpy.py", line 72, in _run_code
exec code in run_globals
File "/home/andy/git/oil/bin/oil.py", line 440, in <module>
main(sys.argv)
File "/home/andy/git/oil/bin/oil.py", line 427, in main
sys.exit(OilMain(argv))
File "/home/andy/git/oil/bin/oil.py", line 410, in OilMain
status = OshMain(main_argv)
File "/home/andy/git/oil/bin/oil.py", line 373, in OshMain
status = ex.Execute(node)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 892, in Execute
status = self._Execute(node, fork_external=fork_external)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 856, in _Execute
status, check_errexit = self._Dispatch(node, fork_external)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 674, in _Dispatch
status = self._ExecuteList(node.children)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 885, in _ExecuteList
status = self._Execute(child) # last status wins
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 856, in _Execute
status, check_errexit = self._Dispatch(node, fork_external)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 571, in _Dispatch
argv = self.ev.EvalWordSequence(words)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 1060, in EvalWordSequence
return self._EvalWordSequence(words)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 1040, in _EvalWordSequence
args = self._EvalWordAndReframe(w)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 993, in _EvalWordAndReframe
part_vals = self._EvalParts(word)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 887, in _EvalParts
for v in self.part_ev._EvalWordPart(p, quoted=quoted):
File "/home/andy/git/oil/bin/../core/word_eval.py", line 846, in _EvalWordPart
return self._EvalBracedVarSub(part, quoted)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 772, in _EvalBracedVarSub
raise NotImplementedError(op)
NotImplementedError: (PatSub
pat: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Chars val:"c*" span_id:8))])
replace: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Chars val:XX span_id:10))])
do_all: False
do_prefix: False
do_suffix: False
)
|
| dash | 5 Pattern replacement ${v/} is not valid stdout: stderr: /bin/dash: 2: Bad substitution |
| bash | 5 Pattern replacement ${v/} is not valid stdout: -abcde- status=0stderr: |
| mksh | 5 Pattern replacement ${v/} is not valid stdout: -abcde- status=0stderr: |
| osh | 5 Pattern replacement ${v/} is not valid [osh status] Expected 2, got 1 stdout: stderr: Traceback (most recent call last):
File "bin/osh", line 440, in <module>
main(sys.argv)
File "bin/osh", line 427, in main
sys.exit(OilMain(argv))
File "bin/osh", line 410, in OilMain
status = OshMain(main_argv)
File "bin/osh", line 321, in OshMain
node = c_parser.ParseWholeFile()
File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1568, in ParseWholeFile
node = self.ParseCommandTerm()
File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1480, in ParseCommandTerm
child = self.ParseAndOr()
File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1349, in ParseAndOr
left = self.ParsePipeline()
File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1284, in ParsePipeline
child = self.ParseCommand()
File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1266, in ParseCommand
return self.ParseSimpleCommand() # echo foo
File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 557, in ParseSimpleCommand
result = self._ScanSimpleCommand()
File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 358, in _ScanSimpleCommand
if not self._Peek(): return None
File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 154, in _Peek
w = self.w_parser.ReadWord(self.next_lex_mode)
File "/home/andy/git/oil/bin/../osh/word_parse.py", line 1114, in ReadWord
w, need_more = self._ReadWord(lex_mode)
File "/home/andy/git/oil/bin/../osh/word_parse.py", line 1075, in _ReadWord
w = self._ReadCompoundWord(lex_mode=lex_mode)
File "/home/andy/git/oil/bin/../osh/word_parse.py", line 921, in _ReadCompoundWord
part = self._ReadLeftParts()
File "/home/andy/git/oil/bin/../osh/word_parse.py", line 541, in _ReadLeftParts
return self._ReadBracedBracedVarSub(d_quoted=False)
File "/home/andy/git/oil/bin/../osh/word_parse.py", line 462, in _ReadBracedBracedVarSub
part = self._ParseVarExpr(arg_lex_mode)
File "/home/andy/git/oil/bin/../osh/word_parse.py", line 321, in _ParseVarExpr
op = self._ReadPatSubVarOp(arg_lex_mode)
File "/home/andy/git/oil/bin/../osh/word_parse.py", line 201, in _ReadPatSubVarOp
first_part = pat.parts[0]
IndexError: list index out of range
|
| osh_ALT | 5 Pattern replacement ${v/} is not valid [osh_ALT status] Expected 2, got 1 stdout: stderr: Traceback (most recent call last):
File "/home/andy/git/oil/Python-2.7.13/Lib/runpy.py", line 174, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/home/andy/git/oil/Python-2.7.13/Lib/runpy.py", line 72, in _run_code
exec code in run_globals
File "/home/andy/git/oil/bin/oil.py", line 440, in <module>
main(sys.argv)
File "/home/andy/git/oil/bin/oil.py", line 427, in main
sys.exit(OilMain(argv))
File "/home/andy/git/oil/bin/oil.py", line 410, in OilMain
status = OshMain(main_argv)
File "/home/andy/git/oil/bin/oil.py", line 321, in OshMain
node = c_parser.ParseWholeFile()
File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1568, in ParseWholeFile
node = self.ParseCommandTerm()
File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1480, in ParseCommandTerm
child = self.ParseAndOr()
File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1349, in ParseAndOr
left = self.ParsePipeline()
File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1284, in ParsePipeline
child = self.ParseCommand()
File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 1266, in ParseCommand
return self.ParseSimpleCommand() # echo foo
File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 557, in ParseSimpleCommand
result = self._ScanSimpleCommand()
File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 358, in _ScanSimpleCommand
if not self._Peek(): return None
File "/home/andy/git/oil/bin/../osh/cmd_parse.py", line 154, in _Peek
w = self.w_parser.ReadWord(self.next_lex_mode)
File "/home/andy/git/oil/bin/../osh/word_parse.py", line 1114, in ReadWord
w, need_more = self._ReadWord(lex_mode)
File "/home/andy/git/oil/bin/../osh/word_parse.py", line 1075, in _ReadWord
w = self._ReadCompoundWord(lex_mode=lex_mode)
File "/home/andy/git/oil/bin/../osh/word_parse.py", line 921, in _ReadCompoundWord
part = self._ReadLeftParts()
File "/home/andy/git/oil/bin/../osh/word_parse.py", line 541, in _ReadLeftParts
return self._ReadBracedBracedVarSub(d_quoted=False)
File "/home/andy/git/oil/bin/../osh/word_parse.py", line 462, in _ReadBracedBracedVarSub
part = self._ParseVarExpr(arg_lex_mode)
File "/home/andy/git/oil/bin/../osh/word_parse.py", line 321, in _ParseVarExpr
op = self._ReadPatSubVarOp(arg_lex_mode)
File "/home/andy/git/oil/bin/../osh/word_parse.py", line 201, in _ReadPatSubVarOp
first_part = pat.parts[0]
IndexError: list index out of range
|
| dash | 6 Pattern replacement ${v//} is not valid stdout: stderr: /bin/dash: 2: Bad substitution |
| bash | 6 Pattern replacement ${v//} is not valid stdout: -a/b/c- status=0stderr: |
| mksh | 6 Pattern replacement ${v//} is not valid stdout: -a/b/c- status=0stderr: |
| dash | 7 String slice stdout: stderr: /bin/dash: 2: Bad substitution |
| osh | 7 String slice [osh stdout] Expected 'bcd\n', got '' [osh status] Expected 0, got 1 stdout: stderr: Traceback (most recent call last):
File "bin/osh", line 440, in <module>
main(sys.argv)
File "bin/osh", line 427, in main
sys.exit(OilMain(argv))
File "bin/osh", line 410, in OilMain
status = OshMain(main_argv)
File "bin/osh", line 373, in OshMain
status = ex.Execute(node)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 892, in Execute
status = self._Execute(node, fork_external=fork_external)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 856, in _Execute
status, check_errexit = self._Dispatch(node, fork_external)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 674, in _Dispatch
status = self._ExecuteList(node.children)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 885, in _ExecuteList
status = self._Execute(child) # last status wins
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 856, in _Execute
status, check_errexit = self._Dispatch(node, fork_external)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 571, in _Dispatch
argv = self.ev.EvalWordSequence(words)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 1060, in EvalWordSequence
return self._EvalWordSequence(words)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 1040, in _EvalWordSequence
args = self._EvalWordAndReframe(w)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 993, in _EvalWordAndReframe
part_vals = self._EvalParts(word)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 887, in _EvalParts
for v in self.part_ev._EvalWordPart(p, quoted=quoted):
File "/home/andy/git/oil/bin/../core/word_eval.py", line 846, in _EvalWordPart
return self._EvalBracedVarSub(part, quoted)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 775, in _EvalBracedVarSub
raise NotImplementedError(op)
NotImplementedError: (Slice
begin:
(ArithWord w:(CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:1 span_id:8))]))
length:
(ArithWord
w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:3 span_id:10))])
)
)
|
| osh_ALT | 7 String slice [osh_ALT stdout] Expected 'bcd\n', got '' [osh_ALT status] Expected 0, got 1 stdout: stderr: Traceback (most recent call last):
File "/home/andy/git/oil/Python-2.7.13/Lib/runpy.py", line 174, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/home/andy/git/oil/Python-2.7.13/Lib/runpy.py", line 72, in _run_code
exec code in run_globals
File "/home/andy/git/oil/bin/oil.py", line 440, in <module>
main(sys.argv)
File "/home/andy/git/oil/bin/oil.py", line 427, in main
sys.exit(OilMain(argv))
File "/home/andy/git/oil/bin/oil.py", line 410, in OilMain
status = OshMain(main_argv)
File "/home/andy/git/oil/bin/oil.py", line 373, in OshMain
status = ex.Execute(node)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 892, in Execute
status = self._Execute(node, fork_external=fork_external)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 856, in _Execute
status, check_errexit = self._Dispatch(node, fork_external)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 674, in _Dispatch
status = self._ExecuteList(node.children)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 885, in _ExecuteList
status = self._Execute(child) # last status wins
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 856, in _Execute
status, check_errexit = self._Dispatch(node, fork_external)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 571, in _Dispatch
argv = self.ev.EvalWordSequence(words)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 1060, in EvalWordSequence
return self._EvalWordSequence(words)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 1040, in _EvalWordSequence
args = self._EvalWordAndReframe(w)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 993, in _EvalWordAndReframe
part_vals = self._EvalParts(word)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 887, in _EvalParts
for v in self.part_ev._EvalWordPart(p, quoted=quoted):
File "/home/andy/git/oil/bin/../core/word_eval.py", line 846, in _EvalWordPart
return self._EvalBracedVarSub(part, quoted)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 775, in _EvalBracedVarSub
raise NotImplementedError(op)
NotImplementedError: (Slice
begin:
(ArithWord w:(CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:1 span_id:8))]))
length:
(ArithWord
w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:3 span_id:10))])
)
)
|
| dash | 8 Negative string slice stdout: stderr: /bin/dash: 2: Bad substitution |
| osh | 8 Negative string slice [osh stdout] Expected 'def\n', got '' [osh status] Expected 0, got 1 stdout: stderr: Traceback (most recent call last):
File "bin/osh", line 440, in <module>
main(sys.argv)
File "bin/osh", line 427, in main
sys.exit(OilMain(argv))
File "bin/osh", line 410, in OilMain
status = OshMain(main_argv)
File "bin/osh", line 373, in OshMain
status = ex.Execute(node)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 892, in Execute
status = self._Execute(node, fork_external=fork_external)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 856, in _Execute
status, check_errexit = self._Dispatch(node, fork_external)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 674, in _Dispatch
status = self._ExecuteList(node.children)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 885, in _ExecuteList
status = self._Execute(child) # last status wins
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 856, in _Execute
status, check_errexit = self._Dispatch(node, fork_external)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 571, in _Dispatch
argv = self.ev.EvalWordSequence(words)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 1060, in EvalWordSequence
return self._EvalWordSequence(words)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 1040, in _EvalWordSequence
args = self._EvalWordAndReframe(w)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 993, in _EvalWordAndReframe
part_vals = self._EvalParts(word)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 887, in _EvalParts
for v in self.part_ev._EvalWordPart(p, quoted=quoted):
File "/home/andy/git/oil/bin/../core/word_eval.py", line 846, in _EvalWordPart
return self._EvalBracedVarSub(part, quoted)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 775, in _EvalBracedVarSub
raise NotImplementedError(op)
NotImplementedError: (Slice
begin:
(ArithUnary
op_id: Node_UnaryMinus
child:
(ArithWord
w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:4 span_id:10))])
)
)
length:
(ArithWord
w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:3 span_id:12))])
)
)
|
| osh_ALT | 8 Negative string slice [osh_ALT stdout] Expected 'def\n', got '' [osh_ALT status] Expected 0, got 1 stdout: stderr: Traceback (most recent call last):
File "/home/andy/git/oil/Python-2.7.13/Lib/runpy.py", line 174, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/home/andy/git/oil/Python-2.7.13/Lib/runpy.py", line 72, in _run_code
exec code in run_globals
File "/home/andy/git/oil/bin/oil.py", line 440, in <module>
main(sys.argv)
File "/home/andy/git/oil/bin/oil.py", line 427, in main
sys.exit(OilMain(argv))
File "/home/andy/git/oil/bin/oil.py", line 410, in OilMain
status = OshMain(main_argv)
File "/home/andy/git/oil/bin/oil.py", line 373, in OshMain
status = ex.Execute(node)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 892, in Execute
status = self._Execute(node, fork_external=fork_external)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 856, in _Execute
status, check_errexit = self._Dispatch(node, fork_external)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 674, in _Dispatch
status = self._ExecuteList(node.children)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 885, in _ExecuteList
status = self._Execute(child) # last status wins
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 856, in _Execute
status, check_errexit = self._Dispatch(node, fork_external)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 571, in _Dispatch
argv = self.ev.EvalWordSequence(words)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 1060, in EvalWordSequence
return self._EvalWordSequence(words)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 1040, in _EvalWordSequence
args = self._EvalWordAndReframe(w)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 993, in _EvalWordAndReframe
part_vals = self._EvalParts(word)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 887, in _EvalParts
for v in self.part_ev._EvalWordPart(p, quoted=quoted):
File "/home/andy/git/oil/bin/../core/word_eval.py", line 846, in _EvalWordPart
return self._EvalBracedVarSub(part, quoted)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 775, in _EvalBracedVarSub
raise NotImplementedError(op)
NotImplementedError: (Slice
begin:
(ArithUnary
op_id: Node_UnaryMinus
child:
(ArithWord
w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:4 span_id:10))])
)
)
length:
(ArithWord
w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:3 span_id:12))])
)
)
|
| dash | 9 String slice with math stdout: stderr: /bin/dash: 3: Bad substitution |
| osh | 9 String slice with math [osh stdout] Expected 'def\n', got '' [osh status] Expected 0, got 1 stdout: stderr: Traceback (most recent call last):
File "bin/osh", line 440, in <module>
main(sys.argv)
File "bin/osh", line 427, in main
sys.exit(OilMain(argv))
File "bin/osh", line 410, in OilMain
status = OshMain(main_argv)
File "bin/osh", line 373, in OshMain
status = ex.Execute(node)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 892, in Execute
status = self._Execute(node, fork_external=fork_external)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 856, in _Execute
status, check_errexit = self._Dispatch(node, fork_external)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 674, in _Dispatch
status = self._ExecuteList(node.children)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 885, in _ExecuteList
status = self._Execute(child) # last status wins
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 856, in _Execute
status, check_errexit = self._Dispatch(node, fork_external)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 571, in _Dispatch
argv = self.ev.EvalWordSequence(words)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 1060, in EvalWordSequence
return self._EvalWordSequence(words)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 1040, in _EvalWordSequence
args = self._EvalWordAndReframe(w)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 993, in _EvalWordAndReframe
part_vals = self._EvalParts(word)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 887, in _EvalParts
for v in self.part_ev._EvalWordPart(p, quoted=quoted):
File "/home/andy/git/oil/bin/../core/word_eval.py", line 846, in _EvalWordPart
return self._EvalBracedVarSub(part, quoted)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 775, in _EvalBracedVarSub
raise NotImplementedError(op)
NotImplementedError: (Slice
begin:
(ArithBinary
op_id: Arith_Minus
left:
(ArithBinary
op_id: Arith_Minus
left: (ArithVarRef name:i)
right:
(ArithWord
w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:3 span_id:14))])
)
)
right:
(ArithWord
w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:2 span_id:16))])
)
)
length:
(ArithBinary
op_id: Arith_Plus
left: (ArithVarRef name:i)
right:
(ArithWord
w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:2 span_id:24))])
)
)
)
|
| osh_ALT | 9 String slice with math [osh_ALT stdout] Expected 'def\n', got '' [osh_ALT status] Expected 0, got 1 stdout: stderr: Traceback (most recent call last):
File "/home/andy/git/oil/Python-2.7.13/Lib/runpy.py", line 174, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/home/andy/git/oil/Python-2.7.13/Lib/runpy.py", line 72, in _run_code
exec code in run_globals
File "/home/andy/git/oil/bin/oil.py", line 440, in <module>
main(sys.argv)
File "/home/andy/git/oil/bin/oil.py", line 427, in main
sys.exit(OilMain(argv))
File "/home/andy/git/oil/bin/oil.py", line 410, in OilMain
status = OshMain(main_argv)
File "/home/andy/git/oil/bin/oil.py", line 373, in OshMain
status = ex.Execute(node)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 892, in Execute
status = self._Execute(node, fork_external=fork_external)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 856, in _Execute
status, check_errexit = self._Dispatch(node, fork_external)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 674, in _Dispatch
status = self._ExecuteList(node.children)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 885, in _ExecuteList
status = self._Execute(child) # last status wins
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 856, in _Execute
status, check_errexit = self._Dispatch(node, fork_external)
File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 571, in _Dispatch
argv = self.ev.EvalWordSequence(words)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 1060, in EvalWordSequence
return self._EvalWordSequence(words)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 1040, in _EvalWordSequence
args = self._EvalWordAndReframe(w)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 993, in _EvalWordAndReframe
part_vals = self._EvalParts(word)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 887, in _EvalParts
for v in self.part_ev._EvalWordPart(p, quoted=quoted):
File "/home/andy/git/oil/bin/../core/word_eval.py", line 846, in _EvalWordPart
return self._EvalBracedVarSub(part, quoted)
File "/home/andy/git/oil/bin/../core/word_eval.py", line 775, in _EvalBracedVarSub
raise NotImplementedError(op)
NotImplementedError: (Slice
begin:
(ArithBinary
op_id: Arith_Minus
left:
(ArithBinary
op_id: Arith_Minus
left: (ArithVarRef name:i)
right:
(ArithWord
w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:3 span_id:14))])
)
)
right:
(ArithWord
w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:2 span_id:16))])
)
)
length:
(ArithBinary
op_id: Arith_Plus
left: (ArithVarRef name:i)
right:
(ArithWord
w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:2 span_id:24))])
)
)
)
|