Results for var-sub.test.sh

casedashbashmkshoshdescription
0pass pass pass pass String length
1N-I pass pass FAIL Substring
detailsdetails
2N-I pass pass FAIL Cannot take length of substring
detailsdetails
3N-I pass pass FAIL Pattern replacement
detailsdetails
4pass pass pass FAIL Remove smallest suffix
details
5pass pass pass FAIL Remove longest suffix
details
6pass pass pass FAIL Remove smallest prefix
details
7pass pass pass FAIL Remove longest prefix
details
8pass pass pass pass Default value when empty
9pass pass pass pass Default value when unset
10pass pass pass FAIL Assign default value when empty
details
11pass pass pass FAIL Assign default value when unset
details
12pass pass pass FAIL Alternative value when empty
details
13pass pass pass FAIL Alternative value when unset
details
14ok pass pass pass Error when empty
details
15ok pass pass pass Error when unset
details
16pass pass pass FAIL Error when unset
details
17N-I pass pass FAIL String slice
detailsdetails
18N-I pass pass FAIL Negative string slice
detailsdetails
19N-I pass pass FAIL String slice with math
detailsdetails
20N-I pass BUG FAIL Var ref with ${!a}
detailsdetailsdetails
21N-I pass BUG FAIL Bad var ref with ${!a}
detailsdetailsdetails
22pass pass pass pass Dynamic Scope
23pass pass pass pass Nested ${}
24pass BUG pass pass Braced block inside ${}
details
25BUG pass pass pass Assigning $@ to var
details
26BUG pass pass FAIL Assigning "$@" to var
detailsdetails
27BUG pass pass FAIL Assigning "$@" to var, then showing it quoted
detailsdetails
28ok pass pass pass Filename redirect with "$@"
details
29ok pass ok FAIL Filename redirect with split word
detailsdetailsdetails
30pass ok ok FAIL Descriptor redirect to bad "$@"
detailsdetailsdetails
31pass pass ok pass Here doc with bad "$@" delimiter
details

85 passed, 8 ok, 8 known unimplemented, 6 known bugs, 21 failed, 0 skipped

Details on runs that didn't PASS

dash1 Substring

stdout:
stderr: 
/bin/dash: 2: Bad substitution
osh1 Substring

[osh stdout] Expected b'bcd\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 937, in Execute
    status = self._Execute(node)
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 828, in _Execute
    status = self._Execute(child)  # last status wins
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 716, in _Execute
    argv = self.ev.EvalWordSequence(words)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 962, in EvalWordSequence
    return self._EvalWordSequence(words)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 945, in _EvalWordSequence
    args = self._EvalWordAndReframe(w)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 906, in _EvalWordAndReframe
    part_vals = self._EvalParts(word)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 799, in _EvalParts
    for v in self.part_ev._EvalWordPart(p, quoted=quoted):
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 687, in _EvalWordPart
    if part.suffix_op and LookupKind(part.suffix_op.op_id) == Kind.VTest:
AttributeError: 'Slice' object has no attribute 'op_id'
dash2 Cannot take length of substring

stdout:
5
stderr:
osh2 Cannot take length of substring

[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>'
  <token had no position info>
NO COL
Error parsing AndOr in ParseCommandTerm
---
dash3 Pattern replacement

stdout:
stderr: 
/bin/dash: 2: Bad substitution
osh3 Pattern replacement

[osh stdout] Expected b'abXX\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 937, in Execute
    status = self._Execute(node)
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 828, in _Execute
    status = self._Execute(child)  # last status wins
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 716, in _Execute
    argv = self.ev.EvalWordSequence(words)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 962, in EvalWordSequence
    return self._EvalWordSequence(words)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 945, in _EvalWordSequence
    args = self._EvalWordAndReframe(w)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 906, in _EvalWordAndReframe
    part_vals = self._EvalParts(word)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 799, in _EvalParts
    for v in self.part_ev._EvalWordPart(p, quoted=quoted):
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 687, in _EvalWordPart
    if part.suffix_op and LookupKind(part.suffix_op.op_id) == Kind.VTest:
AttributeError: 'PatSub' object has no attribute 'op_id'
osh4 Remove smallest suffix

[osh stdout] Expected b'aabbc\n', got b'aabbccdd\n'

stdout:
aabbccdd
stderr:
osh5 Remove longest suffix

[osh stdout] Expected b'aabb\n', got b'aabbccdd\n'

stdout:
aabbccdd
stderr:
osh6 Remove smallest prefix

[osh stdout] Expected b'bccdd\n', got b'aabbccdd\n'

stdout:
aabbccdd
stderr:
osh7 Remove longest prefix

[osh stdout] Expected b'ccdd\n', got b'aabbccdd\n'

stdout:
aabbccdd
stderr:
osh10 Assign default value when empty

[osh stdout] Expected b'is empty\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 937, in Execute
    status = self._Execute(node)
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 828, in _Execute
    status = self._Execute(child)  # last status wins
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 716, in _Execute
    argv = self.ev.EvalWordSequence(words)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 962, in EvalWordSequence
    return self._EvalWordSequence(words)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 945, in _EvalWordSequence
    args = self._EvalWordAndReframe(w)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 906, in _EvalWordAndReframe
    part_vals = self._EvalParts(word)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 799, in _EvalParts
    for v in self.part_ev._EvalWordPart(p, quoted=quoted):
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 689, in _EvalWordPart
    quoted)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 441, in _ApplyTestOp
    raise NotImplementedError
NotImplementedError
osh11 Assign default value when unset

[osh stdout] Expected b'is unset\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 937, in Execute
    status = self._Execute(node)
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 828, in _Execute
    status = self._Execute(child)  # last status wins
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 716, in _Execute
    argv = self.ev.EvalWordSequence(words)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 962, in EvalWordSequence
    return self._EvalWordSequence(words)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 945, in _EvalWordSequence
    args = self._EvalWordAndReframe(w)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 906, in _EvalWordAndReframe
    part_vals = self._EvalParts(word)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 799, in _EvalParts
    for v in self.part_ev._EvalWordPart(p, quoted=quoted):
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 689, in _EvalWordPart
    quoted)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 441, in _ApplyTestOp
    raise NotImplementedError
NotImplementedError
osh12 Alternative value when empty

[osh stdout] Expected b'v is not empty\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 937, in Execute
    status = self._Execute(node)
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 828, in _Execute
    status = self._Execute(child)  # last status wins
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 716, in _Execute
    argv = self.ev.EvalWordSequence(words)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 962, in EvalWordSequence
    return self._EvalWordSequence(words)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 945, in _EvalWordSequence
    args = self._EvalWordAndReframe(w)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 906, in _EvalWordAndReframe
    part_vals = self._EvalParts(word)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 799, in _EvalParts
    for v in self.part_ev._EvalWordPart(p, quoted=quoted):
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 689, in _EvalWordPart
    quoted)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 436, in _ApplyTestOp
    raise NotImplementedError
NotImplementedError
osh13 Alternative value when unset

[osh stdout] Expected b'v is not unset\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 937, in Execute
    status = self._Execute(node)
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 828, in _Execute
    status = self._Execute(child)  # last status wins
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 716, in _Execute
    argv = self.ev.EvalWordSequence(words)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 962, in EvalWordSequence
    return self._EvalWordSequence(words)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 945, in _EvalWordSequence
    args = self._EvalWordAndReframe(w)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 906, in _EvalWordAndReframe
    part_vals = self._EvalParts(word)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 799, in _EvalParts
    for v in self.part_ev._EvalWordPart(p, quoted=quoted):
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 689, in _EvalWordPart
    quoted)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 436, in _ApplyTestOp
    raise NotImplementedError
NotImplementedError
dash14 Error when empty

stdout:
stderr: 
/bin/dash: 2: empty: is empty
dash15 Error when unset

stdout:
stderr: 
/bin/dash: 1: unset: is empty
osh16 Error when unset

[osh stdout] Expected b'v is not unset\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 937, in Execute
    status = self._Execute(node)
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 828, in _Execute
    status = self._Execute(child)  # last status wins
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 716, in _Execute
    argv = self.ev.EvalWordSequence(words)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 962, in EvalWordSequence
    return self._EvalWordSequence(words)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 945, in _EvalWordSequence
    args = self._EvalWordAndReframe(w)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 906, in _EvalWordAndReframe
    part_vals = self._EvalParts(word)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 799, in _EvalParts
    for v in self.part_ev._EvalWordPart(p, quoted=quoted):
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 689, in _EvalWordPart
    quoted)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 436, in _ApplyTestOp
    raise NotImplementedError
NotImplementedError
dash17 String slice

stdout:
stderr: 
/bin/dash: 2: Bad substitution
osh17 String slice

[osh stdout] Expected b'bcd\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 937, in Execute
    status = self._Execute(node)
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 828, in _Execute
    status = self._Execute(child)  # last status wins
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 716, in _Execute
    argv = self.ev.EvalWordSequence(words)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 962, in EvalWordSequence
    return self._EvalWordSequence(words)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 945, in _EvalWordSequence
    args = self._EvalWordAndReframe(w)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 906, in _EvalWordAndReframe
    part_vals = self._EvalParts(word)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 799, in _EvalParts
    for v in self.part_ev._EvalWordPart(p, quoted=quoted):
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 687, in _EvalWordPart
    if part.suffix_op and LookupKind(part.suffix_op.op_id) == Kind.VTest:
AttributeError: 'Slice' object has no attribute 'op_id'
dash18 Negative string slice

stdout:
stderr: 
/bin/dash: 2: Bad substitution
osh18 Negative string slice

[osh stdout] Expected b'def\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 937, in Execute
    status = self._Execute(node)
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 828, in _Execute
    status = self._Execute(child)  # last status wins
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 716, in _Execute
    argv = self.ev.EvalWordSequence(words)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 962, in EvalWordSequence
    return self._EvalWordSequence(words)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 945, in _EvalWordSequence
    args = self._EvalWordAndReframe(w)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 906, in _EvalWordAndReframe
    part_vals = self._EvalParts(word)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 799, in _EvalParts
    for v in self.part_ev._EvalWordPart(p, quoted=quoted):
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 687, in _EvalWordPart
    if part.suffix_op and LookupKind(part.suffix_op.op_id) == Kind.VTest:
AttributeError: 'Slice' object has no attribute 'op_id'
dash19 String slice with math

stdout:
stderr: 
/bin/dash: 3: Bad substitution
osh19 String slice with math

[osh stdout] Expected b'def\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 937, in Execute
    status = self._Execute(node)
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 828, in _Execute
    status = self._Execute(child)  # last status wins
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 716, in _Execute
    argv = self.ev.EvalWordSequence(words)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 962, in EvalWordSequence
    return self._EvalWordSequence(words)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 945, in _EvalWordSequence
    args = self._EvalWordAndReframe(w)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 906, in _EvalWordAndReframe
    part_vals = self._EvalParts(word)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 799, in _EvalParts
    for v in self.part_ev._EvalWordPart(p, quoted=quoted):
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 687, in _EvalWordPart
    if part.suffix_op and LookupKind(part.suffix_op.op_id) == Kind.VTest:
AttributeError: 'Slice' object has no attribute 'op_id'
dash20 Var ref with ${!a}

stdout:
stderr: 
/bin/dash: 3: Bad substitution
mksh20 Var ref with ${!a}

stdout:
ref a
stderr:
osh20 Var ref with ${!a}

[osh stdout] Expected b'ref 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 937, in Execute
    status = self._Execute(node)
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 828, in _Execute
    status = self._Execute(child)  # last status wins
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 716, in _Execute
    argv = self.ev.EvalWordSequence(words)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 962, in EvalWordSequence
    return self._EvalWordSequence(words)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 945, in _EvalWordSequence
    args = self._EvalWordAndReframe(w)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 906, in _EvalWordAndReframe
    part_vals = self._EvalParts(word)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 799, in _EvalParts
    for v in self.part_ev._EvalWordPart(p, quoted=quoted):
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 657, in _EvalWordPart
    val = self._ApplyPrefixOp(val, part.prefix_op)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 466, in _ApplyPrefixOp
    raise NotImplementedError(op_id)
NotImplementedError: VSub_Bang
dash21 Bad var ref with ${!a}

stdout:
stderr: 
/bin/dash: 2: Bad substitution
mksh21 Bad var ref with ${!a}

stdout:
ref a
stderr:
osh21 Bad var ref with ${!a}

[osh stdout] Expected b'ref\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 937, in Execute
    status = self._Execute(node)
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 828, in _Execute
    status = self._Execute(child)  # last status wins
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 716, in _Execute
    argv = self.ev.EvalWordSequence(words)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 962, in EvalWordSequence
    return self._EvalWordSequence(words)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 945, in _EvalWordSequence
    args = self._EvalWordAndReframe(w)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 906, in _EvalWordAndReframe
    part_vals = self._EvalParts(word)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 799, in _EvalParts
    for v in self.part_ev._EvalWordPart(p, quoted=quoted):
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 657, in _EvalWordPart
    val = self._ApplyPrefixOp(val, part.prefix_op)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 466, in _ApplyPrefixOp
    raise NotImplementedError(op_id)
NotImplementedError: VSub_Bang
bash24 Braced block inside ${}

stdout:
stderr: 
/bin/bash: line 1: syntax error near unexpected token `)'
/bin/bash: line 1: `echo ${foo:-$({ which ls; })}'
dash25 Assigning $@ to var

stdout:
stderr: 
/bin/dash: 2: local: 2: bad variable name
dash26 Assigning "$@" to var

stdout:
stderr: 
/bin/dash: 2: local: 2 3: bad variable name
osh26 Assigning "$@" to var

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

stdout:
['1', '2 3']
stderr:
dash27 Assigning "$@" to var, then showing it quoted

stdout:
stderr: 
/bin/dash: 2: local: 2 3: bad variable name
osh27 Assigning "$@" to var, then showing it quoted

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

stdout:
['1', '2 3']
stderr:
dash28 Filename redirect with "$@"

stdout:
stderr: 
/bin/dash: 2: cannot create _tmp/var-sub1 _tmp/var-sub2: Directory nonexistent
dash29 Filename redirect with split word

stdout:
hi
stderr:
mksh29 Filename redirect with split word

stdout:
hi
stderr:
rm: cannot remove '_tmp/1 2': No such file or directory
osh29 Filename redirect with split word

[osh status] Expected 1, got 0

stdout:
hi
stderr:
bash30 Descriptor redirect to bad "$@"

stdout:
stderr: 
/bin/bash: line 2: "$@": ambiguous redirect
mksh30 Descriptor redirect to bad "$@"

stdout:
stderr: 
/bin/mksh: <stdin>[2]: >&'2 3 c d' : illegal file descriptor name
osh30 Descriptor redirect to bad "$@"

[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 327, in OshMain
    status = ex.Execute(node)
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 937, in Execute
    status = self._Execute(node)
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 828, in _Execute
    status = self._Execute(child)  # last status wins
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 711, in _Execute
    redirects = self._EvalRedirects(node)
  File "/home/andy/git/oil/bin/../core/cmd_exec.py", line 617, in _EvalRedirects
    ok, val = self.ev.EvalWordToString(n.arg_word)
  File "/home/andy/git/oil/bin/../core/word_eval.py", line 821, in EvalWordToString
    self._AddErrorContext("Only string parts are allowed", word=word)
TypeError: _AddErrorContext() got an unexpected keyword argument 'word'
mksh31 Here doc with bad "$@" delimiter

stdout:
stderr: 
/bin/mksh: <stdin>[7]: here document '$@' unclosed