Results for ysh-prompt.test.sh

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

Details on runs that didn't PASS

ysh0 default prompt doesn't confuse OSH and YSH

[ysh stdout] Expected '/ysh \\$ / /null/\n/null/ /\\s-\\v\\$ /\n' Got ''
[ysh status] Expected 0 Got 1
[ysh stderr] Found 'Traceback (most recent'

stdout:
stderr: 
Traceback (most recent call last):
  File "/home/uke/oil/bin/oils_for_unix.py", line 263, in <module>
    sys.exit(main(sys.argv))
  File "/home/uke/oil/bin/oils_for_unix.py", line 232, in main
    return AppBundleMain(argv)
  File "/home/uke/oil/bin/oils_for_unix.py", line 186, in AppBundleMain
    return shell.Main(lang, arg_r, environ, login_shell, loader, readline)
  File "/home/uke/oil/core/shell.py", line 1212, in Main
    prompt_plugin, waiter, errfmt)
  File "/home/uke/oil/core/main_loop.py", line 221, in Interactive
    result = c_parser.ParseInteractiveLine()
  File "/home/uke/oil/osh/cmd_parse.py", line 2857, in ParseInteractiveLine
    node = self._ParseCommandLine()
  File "/home/uke/oil/osh/cmd_parse.py", line 2695, in _ParseCommandLine
    child = self.ParseAndOr()
  File "/home/uke/oil/osh/cmd_parse.py", line 2619, in ParseAndOr
    return self._ParseAndOr()
  File "/home/uke/oil/osh/cmd_parse.py", line 2630, in _ParseAndOr
    child = self.ParsePipeline()
  File "/home/uke/oil/osh/cmd_parse.py", line 2578, in ParsePipeline
    child = self.ParseCommand()
  File "/home/uke/oil/osh/cmd_parse.py", line 2554, in ParseCommand
    return self.ParseSimpleCommand()
  File "/home/uke/oil/osh/cmd_parse.py", line 1222, in ParseSimpleCommand
    redirects, words, typed_args, block = self._ScanSimpleCommand()
  File "/home/uke/oil/osh/cmd_parse.py", line 904, in _ScanSimpleCommand
    self._GetWord()
  File "/home/uke/oil/osh/cmd_parse.py", line 670, in _GetWord
    w = self.w_parser.ReadWord(self.next_lex_mode)
  File "/home/uke/oil/osh/word_parse.py", line 2327, in ReadWord
    w = self._ReadWord(word_mode)
  File "/home/uke/oil/osh/word_parse.py", line 2244, in _ReadWord
    return self._ReadCompoundOrRedir(lex_mode)
  File "/home/uke/oil/osh/word_parse.py", line 1892, in _ReadCompoundOrRedir
    return self._ReadCompoundOrRedir3(lex_mode, Id.Undefined_Tok, True)
  File "/home/uke/oil/osh/word_parse.py", line 1997, in _ReadCompoundOrRedir3
    part = self._ReadUnquotedLeftParts(is_triple_quoted)
  File "/home/uke/oil/osh/word_parse.py", line 910, in _ReadUnquotedLeftParts
    dq_part = self._ReadDoubleQuoted(self.cur_token)
  File "/home/uke/oil/osh/word_parse.py", line 1189, in _ReadDoubleQuoted
    self._ReadLikeDQ(left_token, False, parts)
  File "/home/uke/oil/osh/word_parse.py", line 1100, in _ReadLikeDQ
    elif self.token_type == Id.Lit_EscapedDoubleQuote:
AttributeError: type object 'Id' has no attribute 'Lit_EscapedDoubleQuote'
  $[ENV.SH] -i -c 'echo "/$[get(ENV, "PS1")]/  /$[get(__defaults__, "PS1")]/"'
  ^~
[ stdin ]:2: errexit PID 5810: Command failed with status 1
ysh3 ysh respects PS1

[ysh stdout] Expected 'hi\n^D\n' Got ''
[ysh stderr] Expected u'ysh myprompt$ ysh myprompt$ ' Got 'Traceback (most recent call last):\n File "/home/uke/oil/bin/oils_for_unix.py", line 263, in <module>\n sys.exit(main(sys.argv))\n File "/home/uke/oil/bin/oils_for_unix.py", line 232, in main\n return AppBundleMain(argv)\n File "/home/uke/oil/bin/oils_for_unix.py", line 186, in AppBundleMain\n return shell.Main(lang, arg_r, environ, login_shell, loader, readline)\n File "/home/uke/oil/core/shell.py", line 1212, in Main\n prompt_plugin, waiter, errfmt)\n File "/home/uke/oil/core/main_loop.py", line 221, in Interactive\n result = c_parser.ParseInteractiveLine()\n File "/home/uke/oil/osh/cmd_parse.py", line 2851, in ParseInteractiveLine\n self._GetWord()\n File "/home/uke/oil/osh/cmd_parse.py", line 670, in _GetWord\n w = self.w_parser.ReadWord(self.next_lex_mode)\n File "/home/uke/oil/osh/word_parse.py", line 2327, in ReadWord\n w = self._ReadWord(word_mode)\n File "/home/uke/oil/osh/word_parse.py", line 2125, in _ReadWord\n self._GetToken()\n File "/home/uke/oil/osh/word_parse.py", line 251, in _GetToken\n self.cur_token = self.lexer.Read(real_mode)\n File "/home/uke/oil/frontend/lexer.py", line 503, in Read\n t = self._Read(lex_mode)\n File "/home/uke/oil/frontend/lexer.py", line 477, in _Read\n src_line, line_pos = self.line_reader.GetLine()\n File "/home/uke/oil/frontend/reader.py", line 50, in GetLine\n line_str = self._GetLine()\n File "/home/uke/oil/frontend/reader.py", line 245, in _GetLine\n self.prompt_str = self.prompt_ev.EvalFirstPrompt()\n File "/home/uke/oil/osh/prompt.py", line 316, in EvalFirstPrompt\n return self.EvalPrompt(ps1_val.s)\n File "/home/uke/oil/osh/prompt.py", line 278, in EvalPrompt\n ps1_word = w_parser.ReadForPlugin()\n File "/home/uke/oil/osh/word_parse.py", line 2358, in ReadForPlugin\n self._ReadLikeDQ(None, False, w.parts)\n File "/home/uke/oil/osh/word_parse.py", line 1100, in _ReadLikeDQ\n elif self.token_type == Id.Lit_EscapedDoubleQuote:\nAttributeError: type object \'Id\' has no attribute \'Lit_EscapedDoubleQuote\'\n echo \'echo hi\' | $[ENV.SH] -i\n ^~\n[ stdin ]:2: errexit PID 5823: Command failed with status 1\n echo \'echo hi\' | $[ENV.SH] -i\n ^~\n[ stdin ]:2: errexit PID 5823: Pipeline failed with status 1\n'
[ysh status] Expected 0 Got 1
[ysh stderr] Found 'Traceback (most recent'

stdout:
stderr: 
Traceback (most recent call last):
  File "/home/uke/oil/bin/oils_for_unix.py", line 263, in <module>
    sys.exit(main(sys.argv))
  File "/home/uke/oil/bin/oils_for_unix.py", line 232, in main
    return AppBundleMain(argv)
  File "/home/uke/oil/bin/oils_for_unix.py", line 186, in AppBundleMain
    return shell.Main(lang, arg_r, environ, login_shell, loader, readline)
  File "/home/uke/oil/core/shell.py", line 1212, in Main
    prompt_plugin, waiter, errfmt)
  File "/home/uke/oil/core/main_loop.py", line 221, in Interactive
    result = c_parser.ParseInteractiveLine()
  File "/home/uke/oil/osh/cmd_parse.py", line 2851, in ParseInteractiveLine
    self._GetWord()
  File "/home/uke/oil/osh/cmd_parse.py", line 670, in _GetWord
    w = self.w_parser.ReadWord(self.next_lex_mode)
  File "/home/uke/oil/osh/word_parse.py", line 2327, in ReadWord
    w = self._ReadWord(word_mode)
  File "/home/uke/oil/osh/word_parse.py", line 2125, in _ReadWord
    self._GetToken()
  File "/home/uke/oil/osh/word_parse.py", line 251, in _GetToken
    self.cur_token = self.lexer.Read(real_mode)
  File "/home/uke/oil/frontend/lexer.py", line 503, in Read
    t = self._Read(lex_mode)
  File "/home/uke/oil/frontend/lexer.py", line 477, in _Read
    src_line, line_pos = self.line_reader.GetLine()
  File "/home/uke/oil/frontend/reader.py", line 50, in GetLine
    line_str = self._GetLine()
  File "/home/uke/oil/frontend/reader.py", line 245, in _GetLine
    self.prompt_str = self.prompt_ev.EvalFirstPrompt()
  File "/home/uke/oil/osh/prompt.py", line 316, in EvalFirstPrompt
    return self.EvalPrompt(ps1_val.s)
  File "/home/uke/oil/osh/prompt.py", line 278, in EvalPrompt
    ps1_word = w_parser.ReadForPlugin()
  File "/home/uke/oil/osh/word_parse.py", line 2358, in ReadForPlugin
    self._ReadLikeDQ(None, False, w.parts)
  File "/home/uke/oil/osh/word_parse.py", line 1100, in _ReadLikeDQ
    elif self.token_type == Id.Lit_EscapedDoubleQuote:
AttributeError: type object 'Id' has no attribute 'Lit_EscapedDoubleQuote'
  echo 'echo hi' | $[ENV.SH] -i
                   ^~
[ stdin ]:2: errexit PID 5823: Command failed with status 1
  echo 'echo hi' | $[ENV.SH] -i
                   ^~
[ stdin ]:2: errexit PID 5823: Pipeline failed with status 1