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

Results for ysh-for.test.sh

statusyshysh-cpp
pass 1616
total1616
caseyshysh-cppdescription
0pass pass For loop over expression: List
1pass pass For loop over expression: Dict, not BashAssoc
2pass pass For loop over range
3pass pass Shell for loop with index (equivalent of enumerate())
4pass pass 3 indices with (mylist) is a runtime error
5pass pass Shell for loop can't have 3 indices
6pass pass Any for loop can't have 4 indiecs
7pass pass Expression for loop with index: List
8pass pass Expression for loop with index: Dict (TODO: define dict iter order)
9pass pass Dict: index key value loop (TODO: define dict iter order)
10pass pass Equivalent of zip()
11pass pass parse_bare_word eliminates confusion
12pass pass Object that's not iterable
13pass pass YSH for with brace substitution and glob
14pass pass for x in <> {
15pass pass I/O error in for x in <> {
32 passed, 0 OK, 0 not implemented, 0 BUG, 0 failed, 0 timeouts, 0 cases skipped