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

Results for brace-expansion.test.sh

statusoshosh-cpp
pass 5050
ok 55
total5555
caseoshosh-cppdescription
0pass pass no expansion
1ok ok incomplete trailing expansion
detailsdetails
2ok ok partial leading expansion
detailsdetails
3ok ok partial leading expansion 2
detailsdetails
4ok ok } in expansion
detailsdetails
5pass pass single expansion
6pass pass double expansion
7pass pass triple expansion
8pass pass double expansion with single and double quotes
9pass pass expansion with mixed quotes
10pass pass expansion with simple var
11pass pass double expansion with simple var -- bash bug
12pass pass double expansion with braced variable
13pass pass double expansion with literal and simple var
14pass pass expansion with command sub
15pass pass expansion with arith sub
16pass pass double expansion with escaped literals
17pass pass { in expansion
18pass pass quoted { in expansion
19pass pass Empty expansion
20pass pass Empty alternative
21pass pass Empty alternative with empty string suffix
22pass pass nested brace expansion
23pass pass triple nested brace expansion
24pass pass nested and double brace expansion
25pass pass expansion on RHS of assignment
26pass pass no expansion with RHS assignment
27pass pass Tilde expansion
28pass pass Tilde expansion with brace expansion
29pass pass Two kinds of tilde expansion
30pass pass Tilde expansion come before var expansion
31pass pass Number range expansion
32pass pass Ascending number range expansion with negative step is invalid
33pass pass regression: -1 step disallowed
34pass pass regression: 0 step disallowed
35pass pass Descending number range expansion with positive step is invalid
36pass pass Descending number range expansion with negative step
37pass pass Singleton ranges
38pass pass Singleton char ranges with steps
39pass pass Char range expansion
40pass pass Char range expansion with step
41pass pass Char ranges with steps of the wrong sign
42pass pass Mixed case char expansion is invalid
43pass pass Descending char range expansion
44pass pass Fixed width number range expansion
45pass pass Inconsistent fixed width number range expansion
46pass pass Inconsistent fixed width number range expansion
47pass pass Adjacent comma and range works
48pass pass Range inside comma works
49pass pass Mixed comma and range doesn't work
50ok ok comma and invalid range (adjacent and nested)
detailsdetails
51pass pass OSH provides an alternative to invalid syntax
52pass pass Side effect in expansion
53pass pass Invalid brace expansions don't expand
54pass pass Invalid brace expansions mixing characters and numbers
100 passed, 10 OK, 0 not implemented, 0 BUG, 0 failed, 0 timeouts, 0 cases skipped

Details on runs that didn't PASS

osh1 incomplete trailing expansion

stdout:
{a,b}_{
stderr:
osh-cpp1 incomplete trailing expansion

stdout:
{a,b}_{
stderr:
osh2 partial leading expansion

stdout:
}_{a,b}
stderr:
osh-cpp2 partial leading expansion

stdout:
}_{a,b}
stderr:
osh3 partial leading expansion 2

stdout:
{x}_{a,b}
stderr:
osh-cpp3 partial leading expansion 2

stdout:
{x}_{a,b}
stderr:
osh4 } in expansion

stdout:
{a,b}}
stderr:
osh-cpp4 } in expansion

stdout:
{a,b}}
stderr:
osh50 comma and invalid range (adjacent and nested)

stdout:
-{a,b}{1...3}-
-{a,{1...3}}-
{a,b}{}
stderr:
osh-cpp50 comma and invalid range (adjacent and nested)

stdout:
-{a,b}{1...3}-
-{a,{1...3}}-
{a,b}{}
stderr: