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 "$@" } ble-features: spec test case results

Results for ble-features.test.sh

statusoshosh-cpp
pass 66
ok 88
total1414
caseoshosh-cppdescription
0ok ok [bash_unset] local-unset / dynamic-unset for localvar
detailsdetails
1ok ok [bash_unset] local-unset / dynamic-unset for localvar (mutated from tempenv)
detailsdetails
2pass pass [bash_unset] local-unset / dynamic-unset for tempenv
3ok ok [bash_unset] function call with tempenv vs tempenv-eval
detailsdetails
4ok ok [bash_unset] localvar-inherit from tempenv
detailsdetails
5pass pass [bash_unset] nested context by tempenv-eval
6ok ok [bash_unset] local-unset / dynamic-unset for localvar on nested-context
detailsdetails
7ok ok [bash_unset] dynamic-unset for nested localvars
detailsdetails
8ok ok [bash_unset] dynamic-unset for nested tempenvs
detailsdetails
9ok ok [bash_unset] local-unset for nested tempenvs
detailsdetails
10pass pass [compat_array] ${arr} is ${arr[0]}
11pass pass [compat_array] scalar write to arrays
12pass pass [compat_array] scalar write to associative arrays
13pass pass [compat_array] ${alpha@a}
12 passed, 16 OK, 0 not implemented, 0 BUG, 0 failed, 0 timeouts, 0 cases skipped

Details on runs that didn't PASS

osh0 [bash_unset] local-unset / dynamic-unset for localvar

stdout:
[global,local,(unset)] v: global
[global,local,(unlocal)] v: global
stderr:
osh-cpp0 [bash_unset] local-unset / dynamic-unset for localvar

stdout:
[global,local,(unset)] v: global
[global,local,(unlocal)] v: global
stderr:
osh1 [bash_unset] local-unset / dynamic-unset for localvar (mutated from tempenv)

stdout:
[global,tempenv,local,(unset)] v: tempenv
[global,tempenv,local,(unlocal)] v: tempenv
stderr:
osh-cpp1 [bash_unset] local-unset / dynamic-unset for localvar (mutated from tempenv)

stdout:
[global,tempenv,local,(unset)] v: tempenv
[global,tempenv,local,(unlocal)] v: tempenv
stderr:
osh3 [bash_unset] function call with tempenv vs tempenv-eval

stdout:
[global] v: global
[global,local] v: (unset)
[global,local+unset] v: global
[global,local+unlocal] v: global
[global,tempenv] v: tempenv
[global,tempenv,local] v: (unset)
[global,tempenv,local+unset] v: tempenv
[global,tempenv,local+unlocal] v: tempenv
[global,tempenv,(eval)] v: tempenv
[global,tempenv,(eval),local] v: (unset)
[global,tempenv,(eval),local+unset] v: tempenv
[global,tempenv,(eval),local+unlocal] v: tempenv
stderr:
osh-cpp3 [bash_unset] function call with tempenv vs tempenv-eval

stdout:
[global] v: global
[global,local] v: (unset)
[global,local+unset] v: global
[global,local+unlocal] v: global
[global,tempenv] v: tempenv
[global,tempenv,local] v: (unset)
[global,tempenv,local+unset] v: tempenv
[global,tempenv,local+unlocal] v: tempenv
[global,tempenv,(eval)] v: tempenv
[global,tempenv,(eval),local] v: (unset)
[global,tempenv,(eval),local+unset] v: tempenv
[global,tempenv,(eval),local+unlocal] v: tempenv
stderr:
osh4 [bash_unset] localvar-inherit from tempenv

stdout:
[global,(local)] v: (unset)
[global,tempenv,(local)] v: (unset)
[xglobal,(local)] v: (unset)
[global,(func),(local)] v: (unset)
[global,tempenv,(func),(local)] v: (unset)
[xglobal,(func),(local)] v: (unset)
[global,local,(func),(local)] v: (unset)
stderr:
osh-cpp4 [bash_unset] localvar-inherit from tempenv

stdout:
[global,(local)] v: (unset)
[global,tempenv,(local)] v: (unset)
[xglobal,(local)] v: (unset)
[global,(func),(local)] v: (unset)
[global,tempenv,(func),(local)] v: (unset)
[xglobal,(func),(local)] v: (unset)
[global,local,(func),(local)] v: (unset)
stderr:
osh6 [bash_unset] local-unset / dynamic-unset for localvar on nested-context

stdout:
[global,tempenv1,local1,tempenv2,(eval),local2,(unset)] v: local1
[global,tempenv1,local1,tempenv2,(eval),local2,(unlocal)] v: local1
stderr:
osh-cpp6 [bash_unset] local-unset / dynamic-unset for localvar on nested-context

stdout:
[global,tempenv1,local1,tempenv2,(eval),local2,(unset)] v: local1
[global,tempenv1,local1,tempenv2,(eval),local2,(unlocal)] v: local1
stderr:
osh7 [bash_unset] dynamic-unset for nested localvars

stdout:
[global,tempenv1/local1,tempenv2/local2,tempenv3/local3] v: local3
[global,tempenv1/local1,tempenv2/local2,tempenv3/local3] v: local2 (unlocal 1)
[global,tempenv1/local1,tempenv2/local2,tempenv3/local3] v: local1 (unlocal 2)
[global,tempenv1/local1,tempenv2/local2,tempenv3/local3] v: tempenv1 (unlocal 3)
[global,tempenv1/local1,tempenv2/local2,tempenv3/local3] v: global (unlocal 4)
stderr:
osh-cpp7 [bash_unset] dynamic-unset for nested localvars

stdout:
[global,tempenv1/local1,tempenv2/local2,tempenv3/local3] v: local3
[global,tempenv1/local1,tempenv2/local2,tempenv3/local3] v: local2 (unlocal 1)
[global,tempenv1/local1,tempenv2/local2,tempenv3/local3] v: local1 (unlocal 2)
[global,tempenv1/local1,tempenv2/local2,tempenv3/local3] v: tempenv1 (unlocal 3)
[global,tempenv1/local1,tempenv2/local2,tempenv3/local3] v: global (unlocal 4)
stderr:
osh8 [bash_unset] dynamic-unset for nested tempenvs

stdout:
[global,tempenv1,tempenv2,tempenv3] v: tempenv3
[global,tempenv1,tempenv2,tempenv3] v: tempenv2 (unlocal 1)
[global,tempenv1,tempenv2,tempenv3] v: tempenv1 (unlocal 2)
[global,tempenv1,tempenv2,tempenv3] v: global (unlocal 3)
[global,tempenv1,tempenv2,tempenv3] v: (unset) (unlocal 4)
stderr:
osh-cpp8 [bash_unset] dynamic-unset for nested tempenvs

stdout:
[global,tempenv1,tempenv2,tempenv3] v: tempenv3
[global,tempenv1,tempenv2,tempenv3] v: tempenv2 (unlocal 1)
[global,tempenv1,tempenv2,tempenv3] v: tempenv1 (unlocal 2)
[global,tempenv1,tempenv2,tempenv3] v: global (unlocal 3)
[global,tempenv1,tempenv2,tempenv3] v: (unset) (unlocal 4)
stderr:
osh9 [bash_unset] local-unset for nested tempenvs

stdout:
[global,tempenv1,tempenv2,tempenv3] v: tempenv3
[global,tempenv1,tempenv2,tempenv3] v: tempenv2 (unset 1)
[global,tempenv1,tempenv2,tempenv3] v: tempenv1 (unset 2)
[global,tempenv1,tempenv2,tempenv3] v: global (unset 3)
[global,tempenv1,tempenv2,tempenv3] v: (unset) (unset 4)
stderr:
osh-cpp9 [bash_unset] local-unset for nested tempenvs

stdout:
[global,tempenv1,tempenv2,tempenv3] v: tempenv3
[global,tempenv1,tempenv2,tempenv3] v: tempenv2 (unset 1)
[global,tempenv1,tempenv2,tempenv3] v: tempenv1 (unset 2)
[global,tempenv1,tempenv2,tempenv3] v: global (unset 3)
[global,tempenv1,tempenv2,tempenv3] v: (unset) (unset 4)
stderr: