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-scope: spec test case results

Results for ysh-scope.test.sh

statusoshosh-cpp
pass 2424
total2424
caseoshosh-cppdescription
0pass pass GetValue scope and shopt --unset dynamic_scope
1pass pass SetValue scope and shopt --unset dynamic_scope
2pass pass read scope
3pass pass printf -v x respects dynamic_scope
4pass pass printf -v a[i] respects dynamic_scope
5pass pass ${undef=a} and shopt --unset dynamic_scope
6pass pass declare -p respects it
7pass pass OshLanguageSetValue constructs
8pass pass shell assignments 'neutered' inside 'proc'
9pass pass setglobal still allows setting globals
10pass pass setglobal d[key] inside proc should mutate global (bug #1841)
11pass pass setglobal a[i] inside proc
12pass pass setglobal a[i] += and d.key +=
13pass pass setglobal a[i] - i can be local or global
14pass pass unset inside proc uses local scope
15pass pass unset composes when you turn on dynamic scope
16pass pass Temp Bindings
17pass pass cd blocks don't introduce new scopes
18pass pass IFS=: myproc exports when it doesn't need to
19pass pass shvar usage
20pass pass shvar global
21pass pass shvar local
22pass pass shvar IFS
23pass pass shvarGet()
48 passed, 0 OK, 0 not implemented, 0 BUG, 0 failed, 0 timeouts, 0 cases skipped