Results for sh-options.test.sh

statusoshosh-cpp
pass 3939
ok 22
N-I 22
FAIL 33
total4646
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
27FAIL FAIL noclobber on
detailsdetails
28pass pass SHELLOPTS is updated when options are changed
29ok ok SHELLOPTS is readonly
detailsdetails
30FAIL FAIL SHELLOPTS and BASHOPTS are set
detailsdetails
31ok ok set - -
detailsdetails
32pass pass set -o lists options
33pass pass set without args lists variables
34pass pass 'set' and 'eval' round trip
35N-I N-I set without args and array variables (not in OSH)
detailsdetails
36N-I N-I set without args and assoc array variables (not in OSH)
detailsdetails
37pass pass shopt -q
38pass pass shopt -q invalid
39pass pass shopt -s strict:all
40pass pass shopt allows for backward compatibility like bash
41pass pass shopt -p validates option names
42pass pass shopt -p -o validates option names
43pass pass stubbed out bash options
44pass pass shopt -s nounset works in Oil, not in bash
45pass pass no-ops not in shopt -p output
78 passed, 4 OK, 4 not implemented, 0 BUG, 3 failed, 0 timeouts, 0 cases skipped
3 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:
osh27 noclobber on

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

stdout:
0
0
stderr:
rm: cannot remove '/home/uke/oil/_tmp/spec-tmp/sh-options.test.sh.18770/27-osh/no-clobber': No such file or directory
osh-cpp27 noclobber on

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

stdout:
0
0
stderr:
rm: cannot remove '/home/uke/oil/_tmp/spec-tmp/sh-options.test.sh.18770/27-osh-cpp/no-clobber': No such file or directory
osh29 SHELLOPTS is readonly

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

stdout:
stderr: 
  SHELLOPTS=x
  ^~~~~~~~~~
[ stdin ]:1: fatal: Can't assign to readonly value 'SHELLOPTS'
osh30 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-cpp30 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
osh31 set - -

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

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

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

stdout:
stderr: 
osh36 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-cpp36 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)