sh-usage () { run-file sh-usage "$@" } run-file () { local spec_name=$1; shift; sh-spec spec/$spec_name.test.sh --compare-shells --oils-bin-dir $PWD/bin "$@" } sh-usage: spec test case results

Results for sh-usage.test.sh

statusbashdashmkshzshosh
pass 121091213
ok 01100
N-I 12310
total1313131313
casebashdashmkshzshoshdescription
0pass pass pass pass pass sh -c
1pass pass pass pass pass empty -c input
2pass pass N-I pass pass sh +c is accepted
details
3pass pass pass pass pass empty stdin
4pass N-I N-I pass pass shell obeys --help (regression for OSH)
detailsdetails
5pass pass pass pass pass args are passed
6pass pass pass pass pass args that look like flags are passed after script
7pass pass pass pass pass args that look like flags are passed after -c
8pass pass pass pass pass exit with explicit arg
9pass pass pass pass pass exit with no args
10N-I N-I N-I N-I pass --rcfile in non-interactive shell prints warnings
detailsdetailsdetailsdetails
11pass pass pass pass pass accepts -l flag
12pass ok ok pass pass accepts --login flag (dash and mksh don't accept long flags)
detailsdetails
56 passed, 2 OK, 7 not implemented, 0 BUG, 0 failed, 0 timeouts, 0 cases skipped

Details on runs that didn't PASS

mksh2 sh +c is accepted

stdout:
stderr: 
mksh: echo hi: No such file or directory
dash4 shell obeys --help (regression for OSH)

stdout:
stderr: 
dash: 0: Illegal option --
mksh4 shell obeys --help (regression for OSH)

stdout:
stderr: 
mksh: mksh: --: unknown option
bash10 --rcfile in non-interactive shell prints warnings

stdout:
rc
==> interactive.txt <==
bash: cannot set terminal process group (2392): Inappropriate ioctl for device
bash: no job control in this shell
bash-5.2$ exit

==> non-interactive.txt <==
stderr:
warned=1
warned=1
dash10 --rcfile in non-interactive shell prints warnings

stdout:
==> interactive.txt <==
dash: 0: Illegal option --

==> non-interactive.txt <==
dash: 0: Illegal option --
stderr:
warned=1
warned=1
mksh10 --rcfile in non-interactive shell prints warnings

stdout:
==> interactive.txt <==
mksh: mksh: --: unknown option

==> non-interactive.txt <==
mksh: mksh: --: unknown option
stderr:
warned=1
warned=1
zsh10 --rcfile in non-interactive shell prints warnings

stdout:
==> interactive.txt <==
zsh: no such option: rcfile

==> non-interactive.txt <==
zsh: no such option: rcfile
stderr:
warned=1
warned=1
dash12 accepts --login flag (dash and mksh don't accept long flags)

stdout:
stderr: 
dash: 0: Illegal option --
mksh12 accepts --login flag (dash and mksh don't accept long flags)

stdout:
stderr: 
mksh: mksh: --: unknown option