Results for

pass 25
0pass GetValue scope and shopt --unset dynamic_scope
1pass SetValue scope and shopt --unset dynamic_scope
2pass read scope (setref)
3pass printf -v x respects dynamic_scope
4pass printf -v a[i] respects dynamic_scope
5pass ${undef=a} and shopt --unset dynamic_scope
6pass declare -p respects it
7pass OshLanguageSetValue constructs
8pass shell assignments 'neutered' inside 'proc'
9pass setglobal still allows setting globals
10pass setref with :out param
11pass setref with conflicting variable name
12pass setref of regular param is a fatal error
13pass setref equivalent without pgen2 syntax, using open proc
14pass setref a, b = 'one', 'two'
15FAIL setref a[i]
16pass unset inside proc uses local scope
17pass unset composes when you turn on dynamic scope
18pass Temp Bindings
19pass cd blocks don't introduce new scopes
20pass IFS=: myproc exports when it doesn't need to
21pass shvar usage
22pass shvar global
23pass shvar local
24pass shvar IFS
25pass shvar_get()
25 passed, 0 OK, 0 not implemented, 0 BUG, 1 failed, 0 timeouts, 0 cases skipped
1 failed under osh

Details on runs that didn't PASS

osh15 setref a[i]

[osh stdout] Expected 'a\nz\nc\n', got ''
[osh status] Expected 0, got 1

    setref a[1] = item
[ stdin ]:2: fatal: setref obj[index] not implemented