Results for sh-options.test.sh

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

Details on runs that didn't PASS

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-cpp20 -n for no execution (useful with --ast-output)

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

stdout:
1
2
3
stderr:
osh30 SHELLOPTS is readonly

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

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

[osh status] Expected 0, got 1

stdout:
stderr: 
  echo shellopts ${SHELLOPTS:?} > /dev/null
                   ^~~~~~~~~
[ stdin ]:1: fatal: Var SHELLOPTS is empty
osh-cpp31 SHELLOPTS and BASHOPTS are set

[osh-cpp status] Expected 0, got 1

stdout:
stderr: 
  echo shellopts ${SHELLOPTS:?} > /dev/null
                   ^~~~~~~~~
[ stdin ]:1: fatal: Var SHELLOPTS is empty
osh32 set - -

stdout:
a b
- a b
a b
- -
- +
+ -
--
stderr:
osh-cpp32 set - -

stdout:
a b
- a b
a b
- -
- +
+ -
--
stderr:
osh36 set without args and array variables (not in OSH)

stdout:
stderr: 
osh-cpp36 set without args and array variables (not in OSH)

stdout:
stderr: 
osh37 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-cpp37 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)