Results for array-compat.test.sh

casebashmkshoshdescription
0pass pass FAIL Assignment Causes Array Decay
details
1pass pass FAIL User arrays decay
details
2pass pass FAIL $a gives first element of array
details
3pass pass FAIL Assign to array index without initialization
details
4pass pass FAIL a[40] grows array
details
5pass pass FAIL array decays to string when comparing with [[ a = b ]]
details
6pass pass FAIL Increment array variables
details

14 passed, 0 ok, 0 known unimplemented, 0 known bugs, 7 failed, 0 skipped

Details on runs that didn't PASS

osh0 Assignment Causes Array Decay

[osh stdout] Expected "['[x y z]']\n", got "['[x', 'y', 'z]']\n"

stdout:
['[x', 'y', 'z]']
stderr:
osh1 User arrays decay

[osh stdout] Expected "['x', 'y', 'z', 'x y z', 'x', 'YYY', 'z']\n", got "['x', 'y', 'z', 'x', 'y', 'z', 'x', 'y', 'z']\n"

stdout:
['x', 'y', 'z', 'x', 'y', 'z', 'x', 'y', 'z']
stderr:
Unexpected error in execvpe('c[1]=YYY', ['c[1]=YYY'], ...): [Errno 2] No such file or directory
osh2 $a gives first element of array

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

stdout:
1 2 3
stderr:
osh3 Assign to array index without initialization

[osh stdout] Expected '5 6 2\n', got ''
[osh status] Expected 0, got 1

stdout:
stderr: 
Unexpected error in execvpe('a[5]=5', ['a[5]=5'], ...): [Errno 2] No such file or directory
Unexpected error in execvpe('a[6]=6', ['a[6]=6'], ...): [Errno 2] No such file or directory
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 772, in _EvalBracedVarSub
    val = self._DecayArray(val)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 606, in _DecayArray
    assert val.tag == value_e.StrArray, val
AssertionError: (Str s:0)
osh4 a[40] grows array

[osh stdout] Expected '1 5 3 20 30 5\n', got '1 2 3 3\n'

stdout:
1 2 3 3
stderr:
Unexpected error in execvpe('a[1]=5', ['a[1]=5'], ...): [Errno 2] No such file or directory
Unexpected error in execvpe('a[40]=30', ['a[40]=30'], ...): [Errno 2] No such file or directory
Unexpected error in execvpe('a[10]=20', ['a[10]=20'], ...): [Errno 2] No such file or directory
osh5 array decays to string when comparing with [[ a = b ]]

[osh stdout] Expected u'2 7\nEQUAL\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 772, in _EvalBracedVarSub
    val = self._DecayArray(val)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 606, in _DecayArray
    assert val.tag == value_e.StrArray, val
AssertionError: (Str s:2)
osh6 Increment array variables

[osh stdout] Expected '2 2\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 591, in _Dispatch
    i = self.arith_ev.Eval(node.child)
  File "/home/andy/git/oil/bin/../core/expr_eval.py", line 151, in Eval
    return self._Eval(node)
  File "/home/andy/git/oil/bin/../core/expr_eval.py", line 262, in _Eval
    new_int = old_int + 1
TypeError: can only concatenate list (not "int") to list