Results for sh-options.test.sh

statusoshosh_.pyosh_.cc
pass 383418
ok 222
N-I 221
FAIL 2623
total444444
caseoshosh_.pyosh_.ccdescription
0pass pass FAIL $- with -c
details
1pass pass pass $- with pipefail
2pass pass pass $- and more options
3pass FAIL FAIL $- with interactive shell
detailsdetails
4pass pass FAIL pass short options like sh -e
details
5pass pass FAIL pass long options like sh -o errexit
details
6pass pass FAIL pass shopt options like sh -O nullglob
details
7pass pass pass can continue after unknown option
8pass pass pass set with both options and argv
9pass pass pass set -o vi/emacs
10pass FAIL FAIL vi and emacs are mutually exclusive
detailsdetails
11pass FAIL FAIL interactive shell starts with emacs mode on
detailsdetails
12pass pass pass nounset
13pass pass pass -u is nounset
14pass pass pass nounset with "$@"
15pass pass pass set -u -- clears argv
16pass pass pass set -u -- x y z
17pass pass pass reset option with long flag
18pass pass pass reset option with short flag
19pass pass pass set -eu (flag parsing)
20FAIL FAIL FAIL -n for no execution (useful with --ast-output)
detailsdetailsdetails
21pass pass FAIL pipefail
details
22pass pass pass shopt -p -o prints 'set' options
23pass pass FAIL shopt -p prints 'shopt' options
details
24pass pass FAIL shopt with no flags prints options
details
25pass pass FAIL noclobber off
details
26FAIL FAIL FAIL noclobber on
detailsdetailsdetails
27pass pass FAIL SHELLOPTS is updated when options are changed
details
28ok ok ok SHELLOPTS is readonly
detailsdetailsdetails
29ok ok ok set - -
detailsdetailsdetails
30pass pass FAIL set -o lists options
details
31pass pass FAIL set without args lists variables
details
32pass FAIL FAIL 'set' and 'eval' round trip
detailsdetails
33N-I N-I FAIL set without args and array variables (not in OSH)
detailsdetailsdetails
34N-I N-I N-I set without args and assoc array variables (not in OSH)
detailsdetailsdetails
35pass pass pass shopt -q
36pass pass pass shopt -q invalid
37pass pass FAIL shopt -s strict:all
details
38pass pass FAIL shopt allows for backward compatibility like bash
details
39pass pass FAIL shopt -p validates option names
details
40pass pass pass shopt -p -o validates option names
41pass pass pass stubbed out bash options
42pass pass FAIL shopt -s nounset works in Oil, not in bash
details
43pass pass FAIL no-ops not in shopt -p output
details
90 passed, 6 OK, 5 not implemented, 0 BUG, 31 failed, 0 timeouts, 0 cases skipped
2 failed under osh

Details on runs that didn't PASS

osh_.cc0 $- with -c

[osh_.cc stdout] Expected 'u\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.opt.stripped: cpp/pylib_path_stat.h:10: bool path_stat::exists(Str*): Assertion `0' failed.
timeout: the monitored command dumped core
osh_.py3 $- with interactive shell

[osh_.py stdout] Expected 'FALSE\nTRUE\n', got 'FALSE\n'
[osh_.py status] Expected 0, got 1

stdout:
FALSE
stderr:
osh fatal error: 
osh_.cc3 $- with interactive shell

[osh_.cc stdout] Expected 'FALSE\nTRUE\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.opt.stripped: cpp/posix.h:74: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
timeout: the monitored command dumped core
osh_.cc4 pass short options like sh -e

[osh_.cc status] Expected 1, got -6

stdout:
stderr: 
osh_eval.opt.stripped: cpp/pylib_path_stat.h:10: bool path_stat::exists(Str*): Assertion `0' failed.
timeout: the monitored command dumped core
osh_.cc5 pass long options like sh -o errexit

[osh_.cc status] Expected 1, got -6

stdout:
stderr: 
osh_eval.opt.stripped: cpp/pylib_path_stat.h:10: bool path_stat::exists(Str*): Assertion `0' failed.
timeout: the monitored command dumped core
osh_.cc6 pass shopt options like sh -O nullglob

[osh_.cc stdout] Expected 'foo *.nonexistent bar\nfoo bar\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.opt.stripped: cpp/pylib_path_stat.h:10: bool path_stat::exists(Str*): Assertion `0' failed.
timeout: the monitored command dumped core
osh_.py10 vi and emacs are mutually exclusive

[osh_.py stdout] Expected 'set +o emacs\nset +o vi\n___\nset -o emacs\nset +o vi\n___\nset +o emacs\nset -o vi\n___\n', got 'set +o emacs\nset +o vi\n___\nset -o emacs\nset +o vi\n___\nset -o emacs\nset -o vi\n___\n'

stdout:
set +o emacs
set +o vi
___
set -o emacs
set +o vi
___
set -o emacs
set -o vi
___
stderr:
osh_.cc10 vi and emacs are mutually exclusive

[osh_.cc stdout] Expected 'set +o emacs\nset +o vi\n___\nset -o emacs\nset +o vi\n___\nset +o emacs\nset -o vi\n___\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.opt.stripped: cpp/posix.h:74: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
timeout: the monitored command dumped core
osh_.py11 interactive shell starts with emacs mode on

[osh_.py stdout] Expected 'non-interactive\n1\n1\ninteractive\n0\n1\n', got 'non-interactive\n1\n1\ninteractive\n'
[osh_.py status] Expected 0, got 1

stdout:
non-interactive
1
1
interactive
stderr:
osh fatal error: 
osh_.cc11 interactive shell starts with emacs mode on

[osh_.cc stdout] Expected 'non-interactive\n1\n1\ninteractive\n0\n1\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.opt.stripped: cpp/pylib_path_stat.h:10: bool path_stat::exists(Str*): Assertion `0' failed.
timeout: the monitored command dumped core
osh20 -n for no execution (useful with --ast-output)

[osh stdout] Expected '1\n', got '1\n2\n3\n'

stdout:
1
2
3
stderr:
osh_.py20 -n for no execution (useful with --ast-output)

[osh_.py stdout] Expected '1\n', got '1\n2\n3\n'

stdout:
1
2
3
stderr:
osh_.cc20 -n for no execution (useful with --ast-output)

[osh_.cc stdout] Expected '1\n', got '1\n2\n3\n'

stdout:
1
2
3
stderr:
dumb_alloc:
	gNumNew = 2304
	gNumDelete = 193
	gMemPos = 76832

	gNumMalloc = 179
	gNumFree = 0
	gMemPos2 = 11424
osh_.cc21 pipefail

[osh_.cc stdout] Expected '0\n2\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.opt.stripped: cpp/posix.h:74: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
timeout: the monitored command dumped core
osh_.cc23 shopt -p prints 'shopt' options

[osh_.cc stdout] Expected 'shopt -u nullglob\nshopt -s nullglob\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.opt.stripped: _build/cpp/consts.cc:868: Str* consts::OptionName(option_asdl::option_t): Assertion `0' failed.
timeout: the monitored command dumped core
osh_.cc24 shopt with no flags prints options

[osh_.cc stdout] Expected '2 one.txt\nnullglob\nfailglob\n1\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.opt.stripped: cpp/posix.h:111: void posix::dup2(int, int): Assertion `0' failed.
timeout: the monitored command dumped core
osh_.cc25 noclobber off

[osh_.cc stdout] Expected 'foo\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.opt.stripped: cpp/posix.h:111: void posix::dup2(int, int): Assertion `0' failed.
timeout: the monitored command dumped core
osh26 noclobber on

[osh stdout] Expected u'0\n1\n', got '0\n0\n'

stdout:
0
0
stderr:
osh_.py26 noclobber on

[osh_.py stdout] Expected u'0\n1\n', got '0\n0\n'

stdout:
0
0
stderr:
osh_.cc26 noclobber on

[osh_.cc stdout] Expected u'0\n1\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.opt.stripped: cpp/posix.h:111: void posix::dup2(int, int): Assertion `0' failed.
timeout: the monitored command dumped core
osh_.cc27 SHELLOPTS is updated when options are changed

[osh_.cc stdout] Expected u'1\n0\n1\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.opt.stripped: cpp/posix.h:74: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
timeout: the monitored command dumped core
osh28 SHELLOPTS is readonly

stdout:
stderr: 
  SHELLOPTS=x
  ^~~~~~~~~~
[ stdin ]:1: fatal: Can't assign to readonly value 'SHELLOPTS'
osh_.py28 SHELLOPTS is readonly

stdout:
stderr: 
  SHELLOPTS=x
  ^~~~~~~~~~
[ stdin ]:1: fatal: Can't assign to readonly value 'SHELLOPTS'
osh_.cc28 SHELLOPTS is readonly

stdout:
stderr: 
  SHELLOPTS=x
  ^~~~~~~~~~
[ stdin ]:1: fatal: Can't assign to readonly value 'SHELLOPTS'

dumb_alloc:
	gNumNew = 1708
	gNumDelete = 98
	gMemPos = 60240

	gNumMalloc = 30
	gNumFree = 0
	gMemPos2 = 9040
osh29 set - -

stdout:
a b
- a b
a b
- -
- +
+ -
--
stderr:
osh_.py29 set - -

stdout:
a b
- a b
a b
- -
- +
+ -
--
stderr:
osh_.cc29 set - -

stdout:
a b
- a b
a b
- -
- +
+ -
--
stderr:
dumb_alloc:
	gNumNew = 3663
	gNumDelete = 439
	gMemPos = 115344

	gNumMalloc = 468
	gNumFree = 0
	gMemPos2 = 16048
osh_.cc30 set -o lists options

[osh_.cc stdout] Expected 'noexec\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.opt.stripped: cpp/posix.h:74: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
timeout: the monitored command dumped core
osh_.cc31 set without args lists variables

[osh_.cc stdout] Expected '__GLOBAL=mutated\n__OTHERLOCAL=L\n__mylocal=L\n__var_in_parent_scope=D\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.opt.stripped: cpp/posix.h:74: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
timeout: the monitored command dumped core
osh_.py32 'set' and 'eval' round trip

[osh_.py stdout] Expected '[ ]\nOK\nOK\nOK\nOK\nOK\n', got '[ ]\n'
[osh_.py status] Expected 0, got 1
[osh_.py stderr] Found 'Traceback (most recent'

stdout:
[ ]
stderr:
Traceback (most recent call last):
  File "/home/andy/git/oilshell/oil/bin/osh_eval.py", line 68, in <module>
    sys.exit(main(sys.argv))
  File "/home/andy/git/oilshell/oil/bin/osh_eval.py", line 36, in main
    None)
  File "/home/andy/git/oilshell/oil/core/shell_native.py", line 477, in Main
    cmd_flags=cmd_eval.IsMainProgram)
  File "/home/andy/git/oilshell/oil/core/main_loop.py", line 330, in Batch
    is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, cmd_flags=cmd_flags)
  File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 1560, in ExecuteAndCatch
    status = self._Execute(node)
  File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 1398, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 700, in _Dispatch
    status = self._RunSimpleCommand(cmd_val, cmd_st, node.do_fork)
  File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 537, in _RunSimpleCommand
    return self.shell_ex.RunSimpleCommand(cmd_val, cmd_st, do_fork)
  File "/home/andy/git/oilshell/oil/core/executor.py", line 195, in RunSimpleCommand
    status = self.RunBuiltin(builtin_id, cmd_val)
  File "/home/andy/git/oilshell/oil/core/executor.py", line 125, in RunBuiltin
    builtin_func = self.builtins[builtin_id]
KeyError: 2
osh_.cc32 'set' and 'eval' round trip

[osh_.cc stdout] Expected '[ ]\nOK\nOK\nOK\nOK\nOK\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.opt.stripped: cpp/posix.h:74: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
timeout: the monitored command dumped core
osh33 set without args and array variables (not in OSH)

stdout:
stderr: 
osh_.py33 set without args and array variables (not in OSH)

stdout:
stderr: 
osh_.cc33 set without args and array variables (not in OSH)

[osh_.cc status] Expected 1, got -6

stdout:
stderr: 
osh_eval.opt.stripped: cpp/posix.h:74: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
timeout: the monitored command dumped core
osh34 set without args and assoc array variables (not in OSH)

stdout:
stderr: 
  __assoc[a]=b
  ^~~~~~~~
[ stdin ]:3: fatal: Associative array keys must be strings: $x 'x' "$x" etc.
osh_.py34 set without args and assoc array variables (not in OSH)

stdout:
stderr: 
  __assoc[a]=b
  ^~~~~~~~
[ stdin ]:3: fatal: Associative array keys must be strings: $x 'x' "$x" etc.
osh_.cc34 set without args and assoc array variables (not in OSH)

stdout:
stderr: 
  __assoc[a]=b
  ^~~~~~~~
[ stdin ]:3: fatal: Associative array keys must be strings: $x 'x' "$x" etc.

dumb_alloc:
	gNumNew = 1927
	gNumDelete = 151
	gMemPos = 66864

	gNumMalloc = 61
	gNumFree = 1
	gMemPos2 = 9568
osh_.cc37 shopt -s strict:all

[osh_.cc stdout] Expected 'shopt -u strict_argv\nshopt -u strict_arith\n-\nshopt -s strict_argv\nshopt -s strict_arith\n-\nshopt -s strict_argv\nshopt -u strict_arith\n-\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.opt.stripped: cpp/posix.h:74: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
timeout: the monitored command dumped core
osh_.cc38 shopt allows for backward compatibility like bash

[osh_.cc stdout] Expected 'shopt -u nullglob\nstatus=0\nshopt -s nullglob\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.opt.stripped: _build/cpp/consts.cc:868: Str* consts::OptionName(option_asdl::option_t): Assertion `0' failed.
timeout: the monitored command dumped core
osh_.cc39 shopt -p validates option names

[osh_.cc stdout] Expected 'status=2\nstatus=2\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
  shopt -p nullglob invalid failglob
  ^~~~~
[ stdin ]:1: 'shopt' got invalid option 'invalid'
osh_eval.opt.stripped: cpp/posix.h:111: void posix::dup2(int, int): Assertion `0' failed.
timeout: the monitored command dumped core
osh_.cc42 shopt -s nounset works in Oil, not in bash

[osh_.cc stdout] Expected 'status=0\nset -o nounset\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.opt.stripped: cpp/posix.h:74: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
timeout: the monitored command dumped core
osh_.cc43 no-ops not in shopt -p output

[osh_.cc stdout] Expected '--\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.opt.stripped: cpp/posix.h:74: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
timeout: the monitored command dumped core