Results for assign.test.sh

statusoshosh_.pyosh_.cc
pass 414130
ok 110
FAIL 2214
total444444
caseoshosh_.pyosh_.ccdescription
0pass pass FAIL Env value doesn't persist
details
1pass pass FAIL Env value with equals
details
2pass pass FAIL Env binding can use preceding bindings, but not subsequent ones
details
3pass pass FAIL Env value with two quotes
details
4pass pass FAIL Env value with escaped <
details
5pass pass pass FOO=foo echo [foo]
6pass pass pass FOO=foo fun
7pass pass FAIL Multiple temporary envs on the stack
details
8pass pass pass Escaped = in command name
9pass pass pass Env binding not allowed before compound command
10pass pass pass Trying to run keyword 'for'
11pass pass FAIL Empty env binding
details
12pass pass pass Assignment doesn't do word splitting
13pass pass pass Assignment doesn't do glob expansion
14pass pass FAIL Env binding in readonly/declare is NOT exported! (pitfall)
details
15pass pass pass assignments / array assignments not interpreted after 'echo'
16pass pass pass dynamic local variables (and splitting)
17pass pass pass readonly x= gives empty string (regression)
18pass pass pass 'local x' does not set variable
19pass pass pass 'local -a x' does not set variable
20pass pass pass 'local x' and then array assignment
21pass pass pass 'declare -A' and then dict assignment
22pass pass pass declare in an if statement
23pass pass pass Modify a temporary binding
24pass pass pass Reveal existence of "temp frame" (All shells disagree here!!!)
25pass pass pass Test above without 'local' (which is not POSIX)
26pass pass pass Using ${x-default} after unsetting local shadowing a global
27pass pass pass Using ${x-default} after unsetting a temp binding shadowing a global
28pass pass pass static assignment doesn't split
29pass pass pass aliased assignment doesn't split
30pass pass pass assignment using dynamic keyword (splits in most shells, not in zsh/osh)
31pass pass pass assignment using dynamic var names doesn't split
32pass pass pass assign and glob
33pass pass pass declare and glob
34pass pass pass readonly $x where x='b c'
35pass pass pass readonly a=(1 2) no_value c=(3 4) makes 'no_value' readonly
36pass pass FAIL export a=1 no_value c=2
details
37pass pass FAIL local a=loc $var c=loc
details
38FAIL FAIL FAIL redirect after assignment builtin (what's going on with dash/bash/mksh here?)
detailsdetailsdetails
39FAIL FAIL FAIL redirect after command sub (like case above but without assignment builtin)
detailsdetailsdetails
40pass pass FAIL redirect after bare assignment
details
41ok ok FAIL redirect after declare -p
detailsdetailsdetails
42pass pass pass declare -a arr does not remove existing arrays (OSH regression)
43pass pass pass declare -A dict does not remove existing arrays (OSH regression)
112 passed, 2 OK, 0 not implemented, 0 BUG, 18 failed, 0 timeouts, 0 cases skipped
2 failed under osh

Details on runs that didn't PASS

osh_.cc0 Env value doesn't persist

[osh_.cc stdout] Expected 'foo\n--\n', got 'None\n--\n'

stdout:
None
--
stderr:
dumb_alloc:
	gNumNew = 1965
	gNumDelete = 152
	gMemPos = 67504

	gNumMalloc = 124
	gNumFree = 0
	gMemPos2 = 10560
osh_.cc1 Env value with equals

[osh_.cc stdout] Expected 'foo=foo\n', got 'None\n'

stdout:
None
stderr:
dumb_alloc:
	gNumNew = 1837
	gNumDelete = 127
	gMemPos = 64336

	gNumMalloc = 88
	gNumFree = 0
	gMemPos2 = 9984
osh_.cc2 Env binding can use preceding bindings, but not subsequent ones

[osh_.cc stdout] Expected 'foo\n[foo][]\nbaz\n', got 'None\nNone\nNone\n'

stdout:
None
None
None
stderr:
dumb_alloc:
	gNumNew = 1964
	gNumDelete = 155
	gMemPos = 68016

	gNumMalloc = 137
	gNumFree = 0
	gMemPos2 = 10768
osh_.cc3 Env value with two quotes

[osh_.cc stdout] Expected 'fooadjacent\n', got 'None\n'

stdout:
None
stderr:
dumb_alloc:
	gNumNew = 1853
	gNumDelete = 131
	gMemPos = 64704

	gNumMalloc = 93
	gNumFree = 0
	gMemPos2 = 10064
osh_.cc4 Env value with escaped <

[osh_.cc stdout] Expected 'foo<foo\n', got 'None\n'

stdout:
None
stderr:
dumb_alloc:
	gNumNew = 1843
	gNumDelete = 130
	gMemPos = 64528

	gNumMalloc = 90
	gNumFree = 0
	gMemPos2 = 10016
osh_.cc7 Multiple temporary envs on the stack

[osh_.cc stdout] Expected 'f [] [A]\n--- g() ---\nf\n[]\n[A]\nNone\np\n--- f() ---\nf\nNone\nNone\nNone\nNone\n', got 'None\nNone\nNone\nNone\nNone\nNone\nNone\nNone\nNone\nNone\nf [] [A]\n--- g() ---\n--- f() ---\n'

stdout:
None
None
None
None
None
None
None
None
None
None
f [] [A]
--- g() ---
--- f() ---
stderr:
dumb_alloc:
	gNumNew = 2826
	gNumDelete = 296
	gMemPos = 91840

	gNumMalloc = 357
	gNumFree = 0
	gMemPos2 = 14304
osh_.cc11 Empty env binding

[osh_.cc stdout] Expected '\n', got 'None\n'

stdout:
None
stderr:
dumb_alloc:
	gNumNew = 1831
	gNumDelete = 122
	gMemPos = 64192

	gNumMalloc = 91
	gNumFree = 0
	gMemPos2 = 10032
osh_.cc14 Env binding in readonly/declare is NOT exported! (pitfall)

[osh_.cc stdout] Expected 'v=None\nv2=foo\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.opt.stripped: cpp/posix.h:74: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
timeout: the monitored command dumped core
osh_.cc36 export a=1 no_value c=2

[osh_.cc stdout] Expected 'foo\n', got 'None\n'

stdout:
None
stderr:
dumb_alloc:
	gNumNew = 1985
	gNumDelete = 156
	gMemPos = 68448

	gNumMalloc = 117
	gNumFree = 1
	gMemPos2 = 10480
osh_.cc37 local a=loc $var c=loc

[osh_.cc stdout] Expected "global\n['loc', '', 'loc']\n", got "['loc', '', 'loc']\nglobal\n"

stdout:
['loc', '', 'loc']
global
stderr:
dumb_alloc:
	gNumNew = 2292
	gNumDelete = 212
	gMemPos = 76992

	gNumMalloc = 158
	gNumFree = 1
	gMemPos2 = 11120
osh38 redirect after assignment builtin (what's going on with dash/bash/mksh here?)

[osh stderr] Expected 'STDERR\n', got ''

stdout:
done
stderr:
osh_.py38 redirect after assignment builtin (what's going on with dash/bash/mksh here?)

[osh_.py stderr] Expected 'STDERR\n', got ''

stdout:
done
stderr:
osh_.cc38 redirect after assignment builtin (what's going on with dash/bash/mksh here?)

[osh_.cc stdout] Expected 'done\n', got ''
[osh_.cc stderr] Expected 'STDERR\n', got "osh_eval.opt.stripped: cpp/posix.h:111: void posix::dup2(int, int): Assertion `0' failed.\ntimeout: the monitored command dumped core\n"
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.opt.stripped: cpp/posix.h:111: void posix::dup2(int, int): Assertion `0' failed.
timeout: the monitored command dumped core
osh39 redirect after command sub (like case above but without assignment builtin)

[osh stderr] Expected 'STDERR\n', got ''

stdout:
stdout=STDOUT
stderr:
osh_.py39 redirect after command sub (like case above but without assignment builtin)

[osh_.py stderr] Expected 'STDERR\n', got ''

stdout:
stdout=STDOUT
stderr:
osh_.cc39 redirect after command sub (like case above but without assignment builtin)

[osh_.cc stdout] Expected 'stdout=STDOUT\n', got ''
[osh_.cc stderr] Expected 'STDERR\n', got "osh_eval.opt.stripped: cpp/posix.h:111: void posix::dup2(int, int): Assertion `0' failed.\ntimeout: the monitored command dumped core\n"
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.opt.stripped: cpp/posix.h:111: void posix::dup2(int, int): Assertion `0' failed.
timeout: the monitored command dumped core
osh_.cc40 redirect after bare assignment

[osh_.cc stdout] Expected 'done\n', got ''
[osh_.cc stderr] Expected u'', got "osh_eval.opt.stripped: cpp/posix.h:111: void posix::dup2(int, int): Assertion `0' failed.\ntimeout: the monitored command dumped core\n"
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.opt.stripped: cpp/posix.h:111: void posix::dup2(int, int): Assertion `0' failed.
timeout: the monitored command dumped core
osh41 redirect after declare -p

stdout:
stderr: 
declare -- foo=bar
osh_.py41 redirect after declare -p

stdout:
stderr: 
declare -- foo=bar
osh_.cc41 redirect after declare -p

[osh_.cc stderr] Expected 'declare -- foo=bar\n', got "osh_eval.opt.stripped: cpp/posix.h:111: void posix::dup2(int, int): Assertion `0' failed.\ntimeout: the monitored command dumped core\n"
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.opt.stripped: cpp/posix.h:111: void posix::dup2(int, int): Assertion `0' failed.
timeout: the monitored command dumped core