/home/uke/oil/bin/osh
| status | osh | |
| pass | 16 | |
| FAIL | 1 | |
| total | 17 | |
| case | osh | description |
| 0 | pass | sh -c |
| 1 | pass | empty -c input |
| 2 | pass | sh +c is accepted |
| 3 | pass | empty stdin |
| 4 | FAIL | sh - and sh -- stop flag processing |
| details | ||
| 5 | pass | shell obeys --help (regression for OSH) |
| 6 | pass | args are passed |
| 7 | pass | args that look like flags are passed after script |
| 8 | pass | args that look like flags are passed after -c |
| 9 | pass | exit with explicit arg |
| 10 | pass | exit with no args |
| 11 | pass | --rcfile in non-interactive shell prints warnings |
| 12 | pass | accepts -l flag |
| 13 | pass | accepts --login flag (dash and mksh don't accept long flags) |
| 14 | pass | osh --eval |
| 15 | pass | Set LC_ALL LC_CTYPE LC_COLLATE LANG - affects glob ? |
| 16 | pass | LC_CTYPE=invalid |
16 passed, 0 OK, 0 not implemented, 0 BUG, 1 failed, 0 timeouts, 0 cases skipped 1 failed under osh
| osh | 0 sh -c stdout: histderr: |
| osh | 1 empty -c input stdout: stderr: |
| osh | 2 sh +c is accepted stdout: histderr: |
| osh | 3 empty stdin stdout: stderr: |
| osh | 4 sh - and sh -- stop flag processing [osh stderr] Expected '+ echo foo\n-\n+ echo foo\n' 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 198, in AppBundleMain\n bash_compat=(applet == \'bash\'))\n File "/home/uke/oil/core/shell.py", line 1296, in Main\n cmd_flags=cmd_eval.IsMainProgram)\n File "/home/uke/oil/core/main_loop.py", line 336, in Batch\n was_parsed, status = Batch2(cmd_ev, c_parser, errfmt, cmd_flags=cmd_flags)\n File "/home/uke/oil/core/main_loop.py", line 401, in Batch2\n is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, cmd_flags)\n File "/home/uke/oil/osh/cmd_eval.py", line 2365, in ExecuteAndCatch\n status = self._Execute(node)\n File "/home/uke/oil/osh/cmd_eval.py", line 2164, in _Execute\n status = self._Dispatch(node, cmd_st)\n File "/home/uke/oil/osh/cmd_eval.py", line 1891, in _Dispatch\n status = self._DoSimple(node, cmd_st)\n File "/home/uke/oil/osh/cmd_eval.py", line 1153, in _DoSimple\n status = self._RunSimpleCommand(cmd_val, cmd_st, run_flags)\n File "/home/uke/oil/osh/cmd_eval.py", line 764, in _RunSimpleCommand\n self.tracer.OnSimpleCommand(cmd_val.argv)\n File "/home/uke/oil/core/dev.py", line 660, in OnSimpleCommand\n buf = self._ShTraceBegin()\n File "/home/uke/oil/core/dev.py", line 499, in _ShTraceBegin\n prefix = self._EvalPS4(\'+\')\n File "/home/uke/oil/core/dev.py", line 454, in _EvalPS4\n ps4_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-\nTraceback (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 198, in AppBundleMain\n bash_compat=(applet == \'bash\'))\n File "/home/uke/oil/core/shell.py", line 1296, in Main\n cmd_flags=cmd_eval.IsMainProgram)\n File "/home/uke/oil/core/main_loop.py", line 336, in Batch\n was_parsed, status = Batch2(cmd_ev, c_parser, errfmt, cmd_flags=cmd_flags)\n File "/home/uke/oil/core/main_loop.py", line 401, in Batch2\n is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, cmd_flags)\n File "/home/uke/oil/osh/cmd_eval.py", line 2365, in ExecuteAndCatch\n status = self._Execute(node)\n File "/home/uke/oil/osh/cmd_eval.py", line 2164, in _Execute\n status = self._Dispatch(node, cmd_st)\n File "/home/uke/oil/osh/cmd_eval.py", line 1891, in _Dispatch\n status = self._DoSimple(node, cmd_st)\n File "/home/uke/oil/osh/cmd_eval.py", line 1153, in _DoSimple\n status = self._RunSimpleCommand(cmd_val, cmd_st, run_flags)\n File "/home/uke/oil/osh/cmd_eval.py", line 764, in _RunSimpleCommand\n self.tracer.OnSimpleCommand(cmd_val.argv)\n File "/home/uke/oil/core/dev.py", line 660, in OnSimpleCommand\n buf = self._ShTraceBegin()\n File "/home/uke/oil/core/dev.py", line 499, in _ShTraceBegin\n prefix = self._EvalPS4(\'+\')\n File "/home/uke/oil/core/dev.py", line 454, in _EvalPS4\n ps4_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' [osh stdout] Expected 'foo\n-\nfoo\n' Got '-\n' [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 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 198, in AppBundleMain
bash_compat=(applet == 'bash'))
File "/home/uke/oil/core/shell.py", line 1296, 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 2365, in ExecuteAndCatch
status = self._Execute(node)
File "/home/uke/oil/osh/cmd_eval.py", line 2164, in _Execute
status = self._Dispatch(node, cmd_st)
File "/home/uke/oil/osh/cmd_eval.py", line 1891, in _Dispatch
status = self._DoSimple(node, cmd_st)
File "/home/uke/oil/osh/cmd_eval.py", line 1153, in _DoSimple
status = self._RunSimpleCommand(cmd_val, cmd_st, run_flags)
File "/home/uke/oil/osh/cmd_eval.py", line 764, in _RunSimpleCommand
self.tracer.OnSimpleCommand(cmd_val.argv)
File "/home/uke/oil/core/dev.py", line 660, in OnSimpleCommand
buf = self._ShTraceBegin()
File "/home/uke/oil/core/dev.py", line 499, in _ShTraceBegin
prefix = self._EvalPS4('+')
File "/home/uke/oil/core/dev.py", line 454, in _EvalPS4
ps4_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'
-
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 198, in AppBundleMain
bash_compat=(applet == 'bash'))
File "/home/uke/oil/core/shell.py", line 1296, 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 2365, in ExecuteAndCatch
status = self._Execute(node)
File "/home/uke/oil/osh/cmd_eval.py", line 2164, in _Execute
status = self._Dispatch(node, cmd_st)
File "/home/uke/oil/osh/cmd_eval.py", line 1891, in _Dispatch
status = self._DoSimple(node, cmd_st)
File "/home/uke/oil/osh/cmd_eval.py", line 1153, in _DoSimple
status = self._RunSimpleCommand(cmd_val, cmd_st, run_flags)
File "/home/uke/oil/osh/cmd_eval.py", line 764, in _RunSimpleCommand
self.tracer.OnSimpleCommand(cmd_val.argv)
File "/home/uke/oil/core/dev.py", line 660, in OnSimpleCommand
buf = self._ShTraceBegin()
File "/home/uke/oil/core/dev.py", line 499, in _ShTraceBegin
prefix = self._EvalPS4('+')
File "/home/uke/oil/core/dev.py", line 454, in _EvalPS4
ps4_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'
|
| osh | 5 shell obeys --help (regression for OSH) stdout: yesstderr: |
| osh | 6 args are passed stdout: ['a', 'b']stderr: |
| osh | 7 args that look like flags are passed after script stdout: ['--help', '--help', '-h']stderr: |
| osh | 8 args that look like flags are passed after -c stdout: ['--help', '-h']stderr: |
| osh | 9 exit with explicit arg stdout: stderr: |
| osh | 10 exit with no args stdout: stderr: |
| osh | 11 --rcfile in non-interactive shell prints warnings stdout: rc
==> interactive.txt <==
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 198, in AppBundleMain
bash_compat=(applet == 'bash'))
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
==> non-interactive.txt <==
osh warning: --rcfile ignored in non-interactive shell
stderr: warned=1 warned=0 |
| osh | 12 accepts -l flag stdout: stderr: |
| osh | 13 accepts --login flag (dash and mksh don't accept long flags) stdout: stderr: |
| osh | 14 osh --eval stdout: one x y z status=0 flag -c x y z one x y z fail x y z status=42 flag -c x y z status=0stderr: |
| osh | 15 Set LC_ALL LC_CTYPE LC_COLLATE LANG - affects glob ? stdout: LC_ALL _x_ LC_ALL _x_ _μ_ LC_CTYPE _x_ LC_CTYPE _x_ _μ_ LC_COLLATE _x_ LC_COLLATE _x_ LANG _x_ LANG _x_ _μ_stderr: |
| osh | 16 LC_CTYPE=invalid stdout: LC_CTYPE _x_ 1 err.txtstderr: |