run-file () { local spec_name=$1; shift; local spec_file=spec/$spec_name.test.sh; local suite; suite=$(test/sh_spec.py --print-spec-suite $spec_file); local spec_subdir; case $suite in osh) spec_subdir='osh-cpp' ;; ysh) spec_subdir='ysh-cpp' ;; *) die "Invalid suite $suite" ;; esac; local base_dir=_tmp/spec/$spec_subdir; mkdir -v -p $base_dir; sh-spec $spec_file --timeout 10 --oils-bin-dir $PWD/bin --oils-cpp-bin-dir $REPO_ROOT/_bin/cxx-asan --tsv-output $base_dir/${spec_name}.tsv "$@" } ysh-options: spec test case results

Results for ysh-options.test.sh

statusoshosh-cpp
pass 4040
total4040
caseoshosh-cppdescription
0pass pass simple_word_eval doesn't split, glob, or elide empty
1pass pass simple_word_eval and strict_array conflict over globs
2pass pass simple_word_eval and glob
3pass pass parse_at
4pass pass parse_at can't be used outside top level
5pass pass sourcing a file that sets parse_at
6pass pass parse_at can be specified through sh -O
7pass pass @a splices into $0
8pass pass shopt -s strict:all
9pass pass shopt -s ysh:upgrade
10pass pass osh -O oil:upgrade
11pass pass osh -O errexit: use -O everywhere, even for Bourne options
12pass pass osh -O invalid
13pass pass osh -o new_option is also accepted
14pass pass oil:upgrade includes inherit_errexit
15pass pass parse_brace: bad block to assignment builtin
16pass pass parse_brace: bad block to external program
17pass pass parse_brace: cd { } in pipeline
18pass pass parse_brace: if accepts blocks
19pass pass parse_brace: brace group in if condition
20pass pass parse_brace: while/until
21pass pass parse_brace: for-in loop
22pass pass parse_brace case
23pass pass parse_paren: if statement
24pass pass parse_paren: while statement
25pass pass while subshell without parse_paren
26pass pass nullglob is on with oil:upgrade
27pass pass nullglob is on with oil:all
28pass pass shopt -s simple_echo
29pass pass shopt -s dashglob
30pass pass shopt -s oil:upgrade turns some options on and others off
31pass pass sigpipe_status_ok
32pass pass printf | head regression (sigpipe_status_ok)
33pass pass Shell functions can't be refined with YSH (redefine_proc_func off)
34pass pass redefine_proc for procs
35pass pass redefine_proc is on in interactive shell
36pass pass redefine_module is on in interactive shell
37pass pass parse options in sourced file (bug #1628)
38pass pass expand_aliases turned off only in ysh:all
39pass pass [[ isn't allowed in ysh
80 passed, 0 OK, 0 not implemented, 0 BUG, 0 failed, 0 timeouts, 0 cases skipped