Results for arith-context.test.sh

casebashmkshzshoshdescription
0pass pass N-I pass Multiple right brackets inside expression
details
1pass pass pass FAIL Slicing of string with constants
details
2pass pass pass FAIL Slicing of string with variables
details
3pass pass ok FAIL Array index on LHS of assignment
detailsdetails
4pass pass BUG FAIL Array index on LHS with spaces
detailsdetails
5pass pass ok FAIL Array index on LHS with indices
detailsdetails
6pass BUG BUG FAIL Slicing of string with expressions
detailsdetailsdetails
7pass BUG BUG FAIL Ambiguous colon in slice
detailsdetailsdetails
8pass pass pass pass Triple parens should be disambiguated
9pass pass pass pass Quadruple parens should be disambiguated
10pass N-I pass pass Alternative $[] syntax
details

28 passed, 2 ok, 2 known unimplemented, 5 known bugs, 7 failed, 0 skipped

Details on runs that didn't PASS

zsh0 Multiple right brackets inside expression

stdout:
stderr: 
osh1 Slicing of string with constants

[osh stdout] Expected 'abcd abcd b\n', got ''
[osh status] Expected 0, got 1

stdout:
stderr: 
Traceback (most recent call last):
  File "bin/osh", line 438, in <module>
    main(sys.argv)
  File "bin/osh", line 425, in main
    sys.exit(OilMain(argv))
  File "bin/osh", line 408, in OilMain
    status = OshMain(main_argv)
  File "bin/osh", line 367, in OshMain
    status = ex.Execute(node)
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 849, in Execute
    status = self._Execute(node, fork_external=fork_external)
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 833, in _Execute
    status = self._Dispatch(node, fork_external)
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 631, in _Dispatch
    status = self._ExecuteList(node.children)
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 842, in _ExecuteList
    status = self._Execute(child)  # last status wins
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 833, in _Execute
    status = self._Dispatch(node, fork_external)
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 548, in _Dispatch
    argv = self.ev.EvalWordSequence(words)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 1053, in EvalWordSequence
    return self._EvalWordSequence(words)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 1033, in _EvalWordSequence
    args = self._EvalWordAndReframe(w)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 986, in _EvalWordAndReframe
    part_vals = self._EvalParts(word)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 880, in _EvalParts
    for v in self.part_ev._EvalWordPart(p, quoted=quoted):
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 839, in _EvalWordPart
    return self._EvalBracedVarSub(part, quoted)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 768, in _EvalBracedVarSub
    raise NotImplementedError(op)
NotImplementedError: (Slice
  begin: 
    (ArithWord
      w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:0 span_id:10))])
    )
)
osh2 Slicing of string with variables

[osh stdout] Expected 'abcd abcd b\n', got ''
[osh status] Expected 0, got 1

stdout:
stderr: 
Traceback (most recent call last):
  File "bin/osh", line 438, in <module>
    main(sys.argv)
  File "bin/osh", line 425, in main
    sys.exit(OilMain(argv))
  File "bin/osh", line 408, in OilMain
    status = OshMain(main_argv)
  File "bin/osh", line 367, in OshMain
    status = ex.Execute(node)
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 849, in Execute
    status = self._Execute(node, fork_external=fork_external)
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 833, in _Execute
    status = self._Dispatch(node, fork_external)
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 631, in _Dispatch
    status = self._ExecuteList(node.children)
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 842, in _ExecuteList
    status = self._Execute(child)  # last status wins
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 833, in _Execute
    status = self._Dispatch(node, fork_external)
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 548, in _Dispatch
    argv = self.ev.EvalWordSequence(words)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 1053, in EvalWordSequence
    return self._EvalWordSequence(words)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 1033, in _EvalWordSequence
    args = self._EvalWordAndReframe(w)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 986, in _EvalWordAndReframe
    part_vals = self._EvalParts(word)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 880, in _EvalParts
    for v in self.part_ev._EvalWordPart(p, quoted=quoted):
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 839, in _EvalWordPart
    return self._EvalBracedVarSub(part, quoted)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 768, in _EvalBracedVarSub
    raise NotImplementedError(op)
NotImplementedError: (Slice
  begin: 
    (ArithWord
      w: (CompoundWord parts:[(SimpleVarSub token:(token id:VSub_Name val:"$zero" span_id:16))])
    )
)
zsh3 Array index on LHS of assignment

stdout:
X 2 3
stderr:
osh3 Array index on LHS of assignment

[osh stdout] Expected '1 X 3\n', got '1 2 3\n'

stdout:
1 2 3
stderr:
Unexpected error in execvpe('a[zero+5-4]=X', ['a[zero+5-4]=X'], ...): [Errno 2] No such file or directory
zsh4 Array index on LHS with spaces

stdout:
stderr: 
zsh: bad pattern: a[zero
osh4 Array index on LHS with spaces

[osh stdout] Expected '1 X 3\n', got '1 2 3\n'

stdout:
1 2 3
stderr:
Unexpected error in execvpe('a[zero', ['a[zero', '+', '5', '-', '4]=X'], ...): [Errno 2] No such file or directory
zsh5 Array index on LHS with indices

stdout:
X 2 3
stderr:
osh5 Array index on LHS with indices

[osh stdout] Expected '1 2 X\n', got '1 2 3\n'

stdout:
1 2 3
stderr:
Unexpected error in execvpe('a[a[1]]=X', ['a[a[1]]=X'], ...): [Errno 2] No such file or directory
mksh6 Slicing of string with expressions

stdout:
stderr: 
/bin/mksh: <stdin>[3]: ${s:zero}: bad substitution
zsh6 Slicing of string with expressions

stdout:
stderr: 
zsh: unrecognized modifier `z'
osh6 Slicing of string with expressions

[osh stdout] Expected 'abcd abcd b\n', got ''
[osh status] Expected 0, got 1

stdout:
stderr: 
Traceback (most recent call last):
  File "bin/osh", line 438, in <module>
    main(sys.argv)
  File "bin/osh", line 425, in main
    sys.exit(OilMain(argv))
  File "bin/osh", line 408, in OilMain
    status = OshMain(main_argv)
  File "bin/osh", line 367, in OshMain
    status = ex.Execute(node)
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 849, in Execute
    status = self._Execute(node, fork_external=fork_external)
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 833, in _Execute
    status = self._Dispatch(node, fork_external)
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 631, in _Dispatch
    status = self._ExecuteList(node.children)
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 842, in _ExecuteList
    status = self._Execute(child)  # last status wins
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 833, in _Execute
    status = self._Dispatch(node, fork_external)
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 548, in _Dispatch
    argv = self.ev.EvalWordSequence(words)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 1053, in EvalWordSequence
    return self._EvalWordSequence(words)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 1033, in _EvalWordSequence
    args = self._EvalWordAndReframe(w)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 986, in _EvalWordAndReframe
    part_vals = self._EvalParts(word)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 880, in _EvalParts
    for v in self.part_ev._EvalWordPart(p, quoted=quoted):
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 839, in _EvalWordPart
    return self._EvalBracedVarSub(part, quoted)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 768, in _EvalBracedVarSub
    raise NotImplementedError(op)
NotImplementedError: (Slice begin:(ArithVarRef name:zero))
mksh7 Ambiguous colon in slice

stdout:
2
stderr:
/bin/mksh: <stdin>[3]: ${s: 0 < 1 ? 2 : 0 : 1}: bad substitution
zsh7 Ambiguous colon in slice

stdout:
2
stderr:
zsh: bad math expression: ':' expected
osh7 Ambiguous colon in slice

[osh stdout] Expected u'2\nc\n', got '2\n'
[osh status] Expected 0, got 1

stdout:
2
stderr:
Traceback (most recent call last):
  File "bin/osh", line 438, in <module>
    main(sys.argv)
  File "bin/osh", line 425, in main
    sys.exit(OilMain(argv))
  File "bin/osh", line 408, in OilMain
    status = OshMain(main_argv)
  File "bin/osh", line 367, in OshMain
    status = ex.Execute(node)
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 849, in Execute
    status = self._Execute(node, fork_external=fork_external)
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 833, in _Execute
    status = self._Dispatch(node, fork_external)
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 631, in _Dispatch
    status = self._ExecuteList(node.children)
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 842, in _ExecuteList
    status = self._Execute(child)  # last status wins
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 833, in _Execute
    status = self._Dispatch(node, fork_external)
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 548, in _Dispatch
    argv = self.ev.EvalWordSequence(words)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 1053, in EvalWordSequence
    return self._EvalWordSequence(words)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 1033, in _EvalWordSequence
    args = self._EvalWordAndReframe(w)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 986, in _EvalWordAndReframe
    part_vals = self._EvalParts(word)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 880, in _EvalParts
    for v in self.part_ev._EvalWordPart(p, quoted=quoted):
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 839, in _EvalWordPart
    return self._EvalBracedVarSub(part, quoted)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 768, in _EvalBracedVarSub
    raise NotImplementedError(op)
NotImplementedError: (Slice
  begin: 
    (TernaryOp
      cond: 
        (ArithBinary
          op_id: Arith_Less
          left: 
            (ArithWord
              w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:0 span_id:35))])
            )
          right: 
            (ArithWord
              w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:1 span_id:39))])
            )
        )
      true_expr: 
        (ArithWord
          w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:2 span_id:43))])
        )
      false_expr: 
        (ArithWord
          w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:0 span_id:47))])
        )
    )
  length: 
    (ArithWord
      w: (CompoundWord parts:[(LiteralPart token:(token id:Lit_Digits val:1 span_id:51))])
    )
)
mksh10 Alternative $[] syntax

stdout:
$[1 + 2] $[3 * 4]
stderr: