/home/uke/oil/bin/osh
35 passed, 0 OK, 1 not implemented, 0 BUG, 3 failed, 0 timeouts, 0 cases skipped 3 failed under osh
| osh | 0 $- with -c stdout: ustderr: |
| osh | 1 $- with pipefail stdout: ustderr: |
| osh | 2 $- and more options stdout: yes yes yes yesstderr: |
| osh | 3 $- with interactive shell stdout: FALSE TRUEstderr: |
| osh | 4 pass short options like sh -e stdout: stderr: |
| osh | 5 pass long options like sh -o errexit stdout: stderr: |
| osh | 6 pass shopt options like sh -O nullglob stdout: foo *.nonexistent bar foo barstderr: |
| osh | 7 set -o vi/emacs stdout: 0 0stderr: |
| osh | 8 vi and emacs are mutually exclusive stdout: set +o emacs set +o vi ___ set -o emacs set +o vi ___ set +o emacs set -o vi ___stderr: |
| osh | 9 interactive shell starts with emacs mode on stdout: non-interactive 1 1 interactive 0 1stderr: osh warning: --rcfile ignored in non-interactive shell |
| osh | 10 nounset [osh stdout] Expected '[]\n' Got '' [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 375, in Batch2
node = c_parser.ParseLogicalLine() # can raise ParseError
File "/home/uke/oil/osh/cmd_parse.py", line 2839, in ParseLogicalLine
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'
|
| osh | 11 -u is nounset [osh stdout] Expected '[]\n' Got '' [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 375, in Batch2
node = c_parser.ParseLogicalLine() # can raise ParseError
File "/home/uke/oil/osh/cmd_parse.py", line 2839, in ParseLogicalLine
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'
|
| osh | 12 -n for no execution (useful with --ast-output) [osh stdout] Expected '1\n' Got '1\n2\n3\n' stdout: 1 2 3stderr: |
| osh | 13 pipefail stdout: 0 2stderr: |
| osh | 14 shopt -p -o prints 'set' options stdout: set +o nounset set -o nounset -- errexit noglob nounsetstderr: |
| osh | 15 shopt -o prints 'set' options stdout: errexit noglob nounset --stderr: |
| osh | 16 shopt -p prints 'shopt' options stdout: shopt -u nullglob shopt -s nullglobstderr: |
| osh | 17 shopt with no flags prints options stdout: 2 one.txt nullglob failglob 1stderr: |
| osh | 18 noclobber off stdout: status=0 status=0 status=0 foostderr: |
| osh | 19 noclobber on stdout: create=0 overwrite=1 force=0 forcestderr: [ stdin ]:7: I/O error applying redirect: File exists |
| osh | 20 noclobber on <> stdout: f.ostderr: |
| osh | 21 noclobber on >> stdout: status=0 foostderr: |
| osh | 22 noclobber on &> > stdout: stdout=0 again=1 foo both=0 again=1 bazstderr: [ stdin ]:8: I/O error applying redirect: File exists [ stdin ]:15: I/O error applying redirect: File exists |
| osh | 23 noclobber on &>> >> stdout: stdout=0 again=0 foo bar both=0 again=0 baz foostderr: |
| osh | 24 set without args lists variables stdout: __GLOBAL=mutated __OTHERLOCAL=L __mylocal=L __var_in_parent_scope=Dstderr: |
| osh | 25 set without args and array variables stdout: __array=(1 2 '3 4')stderr: |
| osh | 26 set without args and assoc array variables (not in OSH) stdout: stderr: __assoc[a]=b ^~~~~~~~ [ stdin ]:3: fatal: Assoc array keys must be strings: $x 'x' "$x" etc. (OILS-ERR-101) |
| osh | 27 shopt -q stdout: nullglob=1 nullglob=0 nullglob,failglob=1 nullglob,failglob=0stderr: |
| osh | 28 shopt -q invalid stdout: invalidZZ=2stderr: |
| osh | 29 shopt -s strict:all stdout: shopt -u strict_arg_parse shopt -u strict_argv - shopt -s strict_arg_parse shopt -s strict_argv - shopt -s strict_arg_parse shopt -u strict_argv -stderr: |
| osh | 30 shopt allows for backward compatibility like bash stdout: shopt -u nullglob status=0 shopt -s nullglobstderr: |
| osh | 31 shopt -p validates option names stdout: status=2 status=2stderr: shopt -p nullglob invalid failglob ^~~~~ [ stdin ]:1: 'shopt' got invalid option 'invalid' shopt nullglob invalid failglob > $TMP/out.txt ^~~~~ [ stdin ]:3: 'shopt' got invalid option 'invalid' |
| osh | 32 shopt -p -o validates option names stdout: set +o errexit status=2stderr: shopt -p -o errexit invalid nounset ^~~~~ [ stdin ]:1: 'shopt' got invalid option 'invalid' |
| osh | 33 stubbed out bash options stdout: 2 0 0 0stderr: shopt -s $name
^~~~~
[ stdin ]:3: 'shopt' got invalid option 'foo'
|
| osh | 34 shopt -s nounset works in YSH, not in bash stdout: status=0 set -o nounsetstderr: |
| osh | 35 Unimplemented options - print, query, set, unset stdout: q=2 p=2 noflag=2 set=1stderr: shopt -p xpg_echo ^~~~~ [ stdin ]:5: 'shopt' got invalid option 'xpg_echo' shopt -s xpg_echo ^~~~~ [ stdin ]:8: 'shopt' got invalid option 'xpg_echo' shopt -p xpg_echo ^~~~~ [ stdin ]:9: 'shopt' got invalid option 'xpg_echo' shopt -u xpg_echo ^~~~~ [ stdin ]:11: 'shopt' got invalid option 'xpg_echo' shopt -p xpg_echo ^~~~~ [ stdin ]:12: 'shopt' got invalid option 'xpg_echo' shopt xpg_echo >/dev/null ^~~~~ [ stdin ]:15: 'shopt' got invalid option 'xpg_echo' |
| osh | 36 Unimplemented options - OSH shopt -s ignore_shopt_not_impl stdout: shopt -u xpg_echo q=1 shopt -s xpg_echo shopt -u xpg_echo p=1 noflag=1 set=1stderr: |
| osh | 37 shopt -p exit code (regression) stdout: status=0stderr: |
| osh | 38 no-ops not shown by shopt -p stdout: --stderr: |