Results for var-sub.test.sh

statusdashbashmkshosh
pass 4545
ok 2120
FAIL 0001
total6666
casedashbashmkshoshdescription
0pass ok ok pass Bad var sub
detailsdetails
1pass pass pass FAIL Braced block inside ${}
details
2pass pass pass pass Nested ${}
3ok pass pass pass Filename redirect with "$@"
details
4ok pass pass pass Descriptor redirect to bad "$@"
details
5pass pass ok pass Here doc with bad "$@" delimiter
details
18 passed, 5 OK, 0 not implemented, 0 BUG, 1 failed, 0 timeouts, 0 cases skipped
1 failed under osh

Details on runs that didn't PASS

bash0 Bad var sub

stdout:
stderr: 
bash: line 1: ${a&}: bad substitution
mksh0 Bad var sub

stdout:
stderr: 
mksh: <stdin>[1]: ${a&}: bad substitution
osh1 Braced block inside ${}

[osh stdout] Expected '/bin/ls\n', got ''
[osh status] Expected 0, got 1
[osh stderr] Found 'Traceback (most recent'

stdout:
stderr: 
Traceback (most recent call last):
  File "/home/uke/oil/bin/oils_for_unix.py", line 202, in <module>
    sys.exit(main(sys.argv))
  File "/home/uke/oil/bin/oils_for_unix.py", line 171, in main
    return AppBundleMain(argv)
  File "/home/uke/oil/bin/oils_for_unix.py", line 141, in AppBundleMain
    return shell.Main('osh', arg_r, environ, login_shell, loader, readline)
  File "/home/uke/oil/core/shell.py", line 1266, in Main
    cmd_flags=cmd_eval.IsMainProgram)
  File "/home/uke/oil/core/main_loop.py", line 336, in Batch
    was_parsed, status = Batch2(cmd_ev, c_parser, errfmt, cmd_flags=cmd_flags)
  File "/home/uke/oil/core/main_loop.py", line 401, in Batch2
    is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, cmd_flags)
  File "/home/uke/oil/osh/cmd_eval.py", line 2285, in ExecuteAndCatch
    status = self._Execute(node)
  File "/home/uke/oil/osh/cmd_eval.py", line 2084, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1811, in _Dispatch
    status = self._DoSimple(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1054, in _DoSimple
    allow_assign=True)
  File "/home/uke/oil/osh/word_eval.py", line 2529, in EvalWordSequence2
    self._EvalWordToParts(w, part_vals, EXTGLOB_FILES)
  File "/home/uke/oil/osh/word_eval.py", line 1983, in _EvalWordToParts
    self._EvalWordPart(p, word_part_vals, eval_flags)
  File "/home/uke/oil/osh/word_eval.py", line 1891, in _EvalWordPart
    self._EvalBracedVarSub(part, part_vals, quoted)
  File "/home/uke/oil/osh/word_eval.py", line 1650, in _EvalBracedVarSub
    vsub_state):
  File "/home/uke/oil/osh/word_eval.py", line 743, in _ApplyTestOp
    self._EvalRhsWordToParts(op.arg_word, part_vals, eval_flags)
  File "/home/uke/oil/osh/word_eval.py", line 1957, in _EvalRhsWordToParts
    self._EvalWordToParts(w, part_vals, eval_flags=eval_flags)
  File "/home/uke/oil/osh/word_eval.py", line 1983, in _EvalWordToParts
    self._EvalWordPart(p, word_part_vals, eval_flags)
  File "/home/uke/oil/osh/word_eval.py", line 1875, in _EvalWordPart
    quoted)  # type: part_value_t
  File "/home/uke/oil/osh/word_eval.py", line 2623, in _EvalCommandSub
    stdout_str = self.shell_ex.RunCommandSub(cs_part)
  File "/home/uke/oil/core/executor.py", line 693, in RunCommandSub
    status, stdout_str, stderr_str = self.CaptureStdout(node)
  File "/home/uke/oil/core/executor.py", line 621, in CaptureStdout
    fds = pyos.WaitForInputs([r, r2])
  File "/home/uke/oil/core/pyos.py", line 288, in WaitForInputs
    r, w, exc = select.select(fd, [], [fd])
TypeError: argument must be an int, or have a fileno() method
dash3 Filename redirect with "$@"

stdout:
stderr: 
dash: 2: cannot create _tmp/var-sub1 _tmp/var-sub2: Directory nonexistent
dash4 Descriptor redirect to bad "$@"

stdout:
stderr: 
dash: 3: Syntax error: Bad fd number
mksh5 Here doc with bad "$@" delimiter

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