Results for ysh-prompt.test.sh

statusyshysh_ALT
pass 77
FAIL 11
total88
caseyshysh_ALTdescription
0pass pass default prompt doesn't confuse OSH and YSH
1FAIL FAIL promptVal() with various values
detailsdetails
2pass pass promptVal() with invalid chars
3pass pass ysh respects PS1
4pass pass ysh respects renderPrompt() over PS1
5pass pass renderPrompt() doesn't return string
6pass pass renderPrompt() raises error
7pass pass renderPrompt() has wrong signature
14 passed, 0 OK, 0 not implemented, 0 BUG, 2 failed, 0 timeouts, 0 cases skipped
1 failed under osh

Details on runs that didn't PASS

ysh1 promptVal() with various values

[ysh stdout] Expected 'x=$\npass\n', got 'x=$\n'
[ysh status] Expected 0, got 1
[ysh stderr] Found 'Traceback (most recent'

stdout:
x=$
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 137, in AppBundleMain
    return shell.Main('ysh', 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 1108, in _DoSimple
    status = self._RunSimpleCommand(cmd_val, cmd_st, run_flags)
  File "/home/uke/oil/osh/cmd_eval.py", line 744, in _RunSimpleCommand
    run_flags)
  File "/home/uke/oil/core/vm.py", line 234, in RunSimpleCommand
    run_flags)
  File "/home/uke/oil/core/executor.py", line 446, in _RunSimpleCommand
    return self.RunBuiltin(builtin_id, cmd_val)
  File "/home/uke/oil/core/vm.py", line 250, in RunBuiltin
    return self._RunBuiltinProc(builtin_proc, cmd_val)
  File "/home/uke/oil/core/vm.py", line 260, in _RunBuiltinProc
    status = builtin_proc.Run(cmd_val)
  File "/home/uke/oil/builtin/error_ysh.py", line 296, in Run
    self._AssertExpression(val, rd.LeftParenToken())
  File "/home/uke/oil/builtin/error_ysh.py", line 269, in _AssertExpression
    self._AssertComparison(exp, blame_loc)
  File "/home/uke/oil/builtin/error_ysh.py", line 245, in _AssertComparison
    actual = self.expr_ev.EvalExpr(exp.comparators[0], loc.Missing)
  File "/home/uke/oil/ysh/expr_eval.py", line 397, in EvalExpr
    val = self._EvalExpr(node)
  File "/home/uke/oil/ysh/expr_eval.py", line 1201, in _EvalExpr
    stdout_str = self.shell_ex.RunCommandSub(node)
  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
ysh_ALT1 promptVal() with various values

[ysh_ALT stdout] Expected 'x=$\npass\n', got 'x=$\n'
[ysh_ALT status] Expected 0, got 1
[ysh_ALT stderr] Found 'Traceback (most recent'

stdout:
x=$
stderr:
Traceback (most recent call last):
  File "/home/uke/oil/bin/oil.py", line 34, in _cpython_main_hook
    sys.exit(oils_for_unix.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 137, in AppBundleMain
    return shell.Main('ysh', 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 2288, in ExecuteAndCatch
    raise  # 'eval break' and 'source return.sh', etc.
  File "/home/uke/oil/osh/cmd_eval.py", line 2137, in _Execute
    errexit_loc = process_sub_st.locs[i]
  File "/home/uke/oil/osh/cmd_eval.py", line 1822, in _Dispatch
    self._LeafTick()
  File "/home/uke/oil/osh/cmd_eval.py", line 1108, in _DoSimple
    status = self._RunSimpleCommand(cmd_val, cmd_st, run_flags)
  File "/home/uke/oil/osh/cmd_eval.py", line 744, in _RunSimpleCommand
    run_flags)
  File "/home/uke/oil/core/vm.py", line 234, in RunSimpleCommand
    run_flags)
  File "/home/uke/oil/core/executor.py", line 446, in _RunSimpleCommand
    return self.RunBuiltin(builtin_id, cmd_val)
  File "/home/uke/oil/core/vm.py", line 250, in RunBuiltin
    return self._RunBuiltinProc(builtin_proc, cmd_val)
  File "/home/uke/oil/core/vm.py", line 260, in _RunBuiltinProc
    status = builtin_proc.Run(cmd_val)
  File "/home/uke/oil/builtin/error_ysh.py", line 296, in Run
    self._AssertExpression(val, rd.LeftParenToken())
  File "/home/uke/oil/builtin/error_ysh.py", line 269, in _AssertExpression
    self._AssertComparison(exp, blame_loc)
  File "/home/uke/oil/builtin/error_ysh.py", line 245, in _AssertComparison
    actual = self.expr_ev.EvalExpr(exp.comparators[0], loc.Missing)
  File "/home/uke/oil/ysh/expr_eval.py", line 397, in EvalExpr
    val = self._EvalExpr(node)
  File "/home/uke/oil/ysh/expr_eval.py", line 1227, in _EvalExpr
    items = [value.Str(s) for s in strs]
  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.
FATAL: couldn't import from app bundle '/home/uke/oil/_tmp/oil-tar-test/oil-0.28.0/_bin/ysh' (1)
Stripping the oil.ovm binary may cause this error.
See https://github.com/oilshell/oil/issues/47