Results for assign.test.sh

statusoshosh_.pyosh_.cc
pass 414122
ok 110
FAIL 2222
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 FAIL Escaped = in command name
details
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 FAIL Assignment doesn't do word splitting
details
13pass pass FAIL Assignment doesn't do glob expansion
details
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 FAIL readonly x= gives empty string (regression)
details
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 FAIL static assignment doesn't split
details
29pass pass FAIL aliased assignment doesn't split
details
30pass pass FAIL assignment using dynamic keyword (splits in most shells, not in zsh/osh)
details
31pass pass FAIL assignment using dynamic var names doesn't split
details
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)
104 passed, 2 OK, 0 not implemented, 0 BUG, 26 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 '--\nNone\n'

stdout:
--
None
stderr:
dumb_alloc:
	gNumNew = 1935
	gNumDelete = 152
	gMemPos = 66576

	gNumMalloc = 122
	gNumFree = 0
	gMemPos2 = 10544
osh_.cc1 Env value with equals

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

stdout:
None
stderr:
dumb_alloc:
	gNumNew = 1807
	gNumDelete = 127
	gMemPos = 63408

	gNumMalloc = 86
	gNumFree = 0
	gMemPos2 = 9968
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'
[osh_.cc status] Expected 0, got 255

stdout:
None
None
None
stderr:
dumb_alloc:
	gNumNew = 1934
	gNumDelete = 155
	gMemPos = 67088

	gNumMalloc = 135
	gNumFree = 0
	gMemPos2 = 10752
osh_.cc3 Env value with two quotes

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

stdout:
None
stderr:
dumb_alloc:
	gNumNew = 1823
	gNumDelete = 131
	gMemPos = 63776

	gNumMalloc = 91
	gNumFree = 0
	gMemPos2 = 10048
osh_.cc4 Env value with escaped <

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

stdout:
None
stderr:
dumb_alloc:
	gNumNew = 1813
	gNumDelete = 130
	gMemPos = 63600

	gNumMalloc = 88
	gNumFree = 0
	gMemPos2 = 10000
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 'f [] [A]\n--- g() ---\n--- f() ---\nNone\nNone\nNone\nNone\nNone\nNone\nNone\nNone\nNone\nNone\n'
[osh_.cc status] Expected 0, got 255

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

	gNumMalloc = 355
	gNumFree = 0
	gMemPos2 = 14288
osh_.cc8 Escaped = in command name

[osh_.cc status] Expected 0, got 255

stdout:
HI
stderr:
dumb_alloc:
	gNumNew = 1752
	gNumDelete = 121
	gMemPos = 61648

	gNumMalloc = 60
	gNumFree = 0
	gMemPos2 = 9536
osh_.cc11 Empty env binding

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

stdout:
None
stderr:
dumb_alloc:
	gNumNew = 1801
	gNumDelete = 122
	gMemPos = 63264

	gNumMalloc = 89
	gNumFree = 0
	gMemPos2 = 10016
osh_.cc12 Assignment doesn't do word splitting

[osh_.cc status] Expected 0, got 255

stdout:
['one two']
stderr:
dumb_alloc:
	gNumNew = 1837
	gNumDelete = 131
	gMemPos = 63584

	gNumMalloc = 72
	gNumFree = 0
	gMemPos2 = 9728
osh_.cc13 Assignment doesn't do glob expansion

[osh_.cc status] Expected 0, got 255

stdout:
['_tmp/*.Z']
stderr:
dumb_alloc:
	gNumNew = 1999
	gNumDelete = 167
	gMemPos = 68832

	gNumMalloc = 150
	gNumFree = 0
	gMemPos2 = 10992
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: cpp/posix.h:74: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
osh_.cc17 readonly x= gives empty string (regression)

[osh_.cc status] Expected 0, got 255

stdout:
['']
stderr:
dumb_alloc:
	gNumNew = 1824
	gNumDelete = 132
	gMemPos = 63408

	gNumMalloc = 63
	gNumFree = 0
	gMemPos2 = 9584
osh_.cc28 static assignment doesn't split

[osh_.cc status] Expected 0, got 255

stdout:
['a b c', 'a b c', 'a b c']
stderr:
dumb_alloc:
	gNumNew = 2037
	gNumDelete = 177
	gMemPos = 69584

	gNumMalloc = 98
	gNumFree = 0
	gMemPos2 = 10144
osh_.cc29 aliased assignment doesn't split

[osh_.cc status] Expected 0, got 255

stdout:
['a b c', 'a b c']
stderr:
dumb_alloc:
	gNumNew = 2566
	gNumDelete = 269
	gMemPos = 84416

	gNumMalloc = 300
	gNumFree = 0
	gMemPos2 = 13456
osh_.cc30 assignment using dynamic keyword (splits in most shells, not in zsh/osh)

[osh_.cc status] Expected 0, got 255

stdout:
['a b c', 'a b c']
stderr:
dumb_alloc:
	gNumNew = 2049
	gNumDelete = 178
	gMemPos = 69888

	gNumMalloc = 97
	gNumFree = 0
	gMemPos2 = 10128
osh_.cc31 assignment using dynamic var names doesn't split

[osh_.cc status] Expected 0, got 255

stdout:
['a b c', 'a b c']
['a b c', 'a b c']
stderr:
dumb_alloc:
	gNumNew = 2430
	gNumDelete = 259
	gMemPos = 81408

	gNumMalloc = 169
	gNumFree = 0
	gMemPos2 = 11280
osh_.cc36 export a=1 no_value c=2

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

stdout:
None
stderr:
dumb_alloc:
	gNumNew = 1946
	gNumDelete = 153
	gMemPos = 67232

	gNumMalloc = 115
	gNumFree = 0
	gMemPos2 = 10432
osh_.cc37 local a=loc $var c=loc

[osh_.cc status] Expected 0, got 255

stdout:
global
['loc', '', 'loc']
stderr:
dumb_alloc:
	gNumNew = 2252
	gNumDelete = 208
	gMemPos = 75520

	gNumMalloc = 156
	gNumFree = 0
	gMemPos2 = 11072
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: cpp/posix.h:111: void posix::dup2(int, int): Assertion `0' failed.\n"
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.opt: cpp/posix.h:111: void posix::dup2(int, int): Assertion `0' failed.
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: cpp/posix.h:111: void posix::dup2(int, int): Assertion `0' failed.\n"
[osh_.cc status] Expected 0, got -6

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

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

stdout:
stderr: 
osh_eval.opt: cpp/posix.h:111: void posix::dup2(int, int): Assertion `0' failed.
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: cpp/posix.h:111: void posix::dup2(int, int): Assertion `0' failed.\n"
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.opt: cpp/posix.h:111: void posix::dup2(int, int): Assertion `0' failed.