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

Results for ysh-proc.test.sh

statusoshosh-cpp
pass 2323
total2323
caseoshosh-cppdescription
0pass pass Open proc (any number of args)
1pass pass Closed proc with no args, passed too many
2pass pass Open proc has ARGV
3pass pass Closed proc has empty "$@" or ARGV
4pass pass Proc with default args
5pass pass Proc with word params
6pass pass Proc with ... "rest" word params
7pass pass word rest params 2
8pass pass proc with typed args
9pass pass Proc name-with-hyphen
10pass pass Proc with block arg
11pass pass proc returning wrong type
12pass pass proc returning invalid string
13pass pass 'return' doesn't accept expressions
14pass pass procs are in same namespace as shell functions
15pass pass Nested proc is disallowed at parse time
16pass pass Procs defined inside compound statements (with redefine_proc)
17pass pass Block can be passed literally, or as expression in third arg group
18pass pass Pass through all 4 kinds of args
19pass pass Global and local ARGV, like "$@"
20pass pass Mutating global ARGV
21pass pass Mutating local ARGV
22pass pass typed proc allows all kinds of args
46 passed, 0 OK, 0 not implemented, 0 BUG, 0 failed, 0 timeouts, 0 cases skipped