Results for ysh-scope.test.sh

statusosh
pass 19
FAIL 5
total24
caseoshdescription
0pass GetValue scope and shopt --unset dynamic_scope
1pass SetValue scope and shopt --unset dynamic_scope
2pass read scope
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 setglobal d[key] inside proc should mutate global (bug #1841)
11pass setglobal a[i] inside proc
12pass setglobal a[i] += and d.key +=
13pass setglobal a[i] - i can be local or global
14pass unset inside proc uses local scope
15pass unset composes when you turn on dynamic scope
16pass Temp Bindings
17pass cd blocks don't introduce new scopes
18FAIL IFS=: myproc exports when it doesn't need to
details
19FAIL shvar usage
details
20FAIL shvar global
details
21FAIL shvar local
details
22FAIL shvar IFS
details
23pass shvarGet()
19 passed, 0 OK, 0 not implemented, 0 BUG, 5 failed, 0 timeouts, 0 cases skipped
5 failed under osh

Details on runs that didn't PASS

osh18 IFS=: myproc exports when it doesn't need to

[osh stdout] Expected ":\n 20 09 0a 0a\nIFS= z\nmyfunc IFS= x\n['', 'z', 'z', 'z']\nmyproc IFS= z\n['', 'z', 'z', 'z']\nmyproc IFS= x\n['', 'z', 'z', 'z']\n" Got ":\n 20 09 0a 0a\nIFS= z\nmyfunc IFS= x\n['', 'z', 'z', 'z']\nmyproc IFS= z\n['', 'z', 'z', 'z']\n"
[osh status] Expected 0, got 1

stdout:
:
 20 09 0a 0a
IFS= z
myfunc IFS= x
['', 'z', 'z', 'z']
myproc IFS= z
['', 'z', 'z', 'z']
stderr:
    if (len(args) === 0) {
           ^
stdlib/ysh/shvar.ysh:3: Unexpected left paren (might need a space before it)
  shvar IFS=' x' {
                 ^
[ stdin ]:30: fatal: 'shvar' appears to be external. External commands don't accept typed args (OILS-ERR-200)
osh19 shvar usage

[osh stdout] Expected 'status=2\nstatus=2\nstatus=2\n', got ''
[osh status] Expected 0, got 3

stdout:
stderr: 
  shvar
  ^~~~~
[ stdin ]:6: fatal: 'shvar' wasn't passed block param 'block'
osh20 shvar global

[osh stdout] Expected '_ESCAPER=\n_DIALECT=\nblock _ESCAPER=html\nblock _DIALECT=ninja\n_ESCAPER=\n_DIALECT=\n___\n_ESCAPER=foo\n_DIALECT=bar\nblock _ESCAPER=html\nblock _DIALECT=ninja\nnested _ESCAPER=nested\nnested _DIALECT=ninja\n_ESCAPER=foo\n_DIALECT=bar\n' Got '_ESCAPER=\n_DIALECT=\nblock _ESCAPER=html\nblock _DIALECT=ninja\n_ESCAPER=\n_DIALECT=\n___\n_ESCAPER=foo\n_DIALECT=bar\nblock _ESCAPER=html\nblock _DIALECT=ninja\nnested _ESCAPER=nested\nnested _DIALECT=bar\n_ESCAPER=foo\n_DIALECT=bar\n'

stdout:
_ESCAPER=
_DIALECT=
block _ESCAPER=html
block _DIALECT=ninja
_ESCAPER=
_DIALECT=
___
_ESCAPER=foo
_DIALECT=bar
block _ESCAPER=html
block _DIALECT=ninja
nested _ESCAPER=nested
nested _DIALECT=bar
_ESCAPER=foo
_DIALECT=bar
stderr:
osh21 shvar local

[osh stdout] Expected "['a', 'b', 'c']\nIFS=x\n['a b c']\nMYTEMP=foo\n['a', 'b', 'c']\nMYTEMP=undef\n" Got "['a', 'b', 'c']\nIFS=x\n['foo']\nMYTEMP=foo\n['a', 'b', 'c']\nMYTEMP=undef\n"

stdout:
['a', 'b', 'c']
IFS=x
['foo']
MYTEMP=foo
['a', 'b', 'c']
MYTEMP=undef
stderr:
osh22 shvar IFS

[osh stdout] Expected ' 20 09 0a 0a\ninside IFS=w\nmylocal=x\n 20 09 0a 0a\n' Got ' 20 09 0a 0a\ninside IFS=w\n'
[osh status] Expected 0, got 1

stdout:
 20 09 0a 0a
inside IFS=w
stderr:
      echo mylocal="$mylocal"  # I do NOT want a new scope!
                    ^~~~~~~~
[ stdin ]:11: fatal: Undefined variable 'mylocal'