| status | ysh | |
| pass | 6 | |
| FAIL | 2 | |
| total | 8 | |
| case | ysh | description |
| 0 | FAIL | default prompt doesn't confuse OSH and YSH |
| details | ||
| 1 | pass | promptVal() with various values |
| 2 | pass | promptVal() with invalid chars |
| 3 | FAIL | ysh respects PS1 |
| details | ||
| 4 | pass | ysh respects renderPrompt() over PS1 |
| 5 | pass | renderPrompt() doesn't return string |
| 6 | pass | renderPrompt() raises error |
| 7 | pass | renderPrompt() has wrong signature |
6 passed, 0 OK, 0 not implemented, 0 BUG, 2 failed, 0 timeouts, 0 cases skipped 2 failed under osh
| ysh | 0 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
|
| ysh | 3 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
|