Results for assign.test.sh

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

Details on runs that didn't PASS

osh_.py0 Env value doesn't persist

[osh_.py stdout] Expected 'foo\n--\n', got '(cmd_value.Argv argv:[printenv.py FOO] arg_spids:[3 5])\n--\n'

stdout:
(cmd_value.Argv argv:[printenv.py FOO] arg_spids:[3 5])
--
stderr:
Unhandled SimpleCommand
osh_.cc0 Env value doesn't persist

[osh_.cc stdout] Expected 'foo\n--\n', got '(cmd_value.Argv argv:[printenv.py FOO] arg_spids:[3 5])\n-foo-\n'

stdout:
(cmd_value.Argv argv:[printenv.py FOO] arg_spids:[3 5])
-foo-
stderr:
Unhandled SimpleCommand
osh_.py1 Env value with equals

[osh_.py stdout] Expected 'foo=foo\n', got '(cmd_value.Argv argv:[printenv.py FOO] arg_spids:[4 6])\n'

stdout:
(cmd_value.Argv argv:[printenv.py FOO] arg_spids:[4 6])
stderr:
Unhandled SimpleCommand
osh_.cc1 Env value with equals

[osh_.cc stdout] Expected 'foo=foo\n', got '(cmd_value.Argv argv:[printenv.py FOO] arg_spids:[4 6])\n'

stdout:
(cmd_value.Argv argv:[printenv.py FOO] arg_spids:[4 6])
stderr:
Unhandled SimpleCommand
osh_.py2 Env binding can use preceding bindings, but not subsequent ones

[osh_.py stdout] Expected 'foo\n[foo][]\nbaz\n', got '(cmd_value.Argv argv:[printenv.py FOO BAR BAZ] arg_spids:[17 19 21 23])\n'

stdout:
(cmd_value.Argv argv:[printenv.py FOO BAR BAZ] arg_spids:[17 19 21 23])
stderr:
Unhandled SimpleCommand
osh_.cc2 Env binding can use preceding bindings, but not subsequent ones

[osh_.cc stdout] Expected 'foo\n[foo][]\nbaz\n', got '(cmd_value.Argv argv:[printenv.py FOO BAR BAZ] arg_spids:[17 19 21 23])\n'

stdout:
(cmd_value.Argv argv:[printenv.py FOO BAR BAZ] arg_spids:[17 19 21 23])
stderr:
Unhandled SimpleCommand
osh_.py3 Env value with two quotes

[osh_.py stdout] Expected 'fooadjacent\n', got '(cmd_value.Argv argv:[printenv.py FOO] arg_spids:[8 10])\n'

stdout:
(cmd_value.Argv argv:[printenv.py FOO] arg_spids:[8 10])
stderr:
Unhandled SimpleCommand
osh_.cc3 Env value with two quotes

[osh_.cc stdout] Expected 'fooadjacent\n', got '(cmd_value.Argv argv:[printenv.py FOO] arg_spids:[8 10])\n'

stdout:
(cmd_value.Argv argv:[printenv.py FOO] arg_spids:[8 10])
stderr:
Unhandled SimpleCommand
osh_.py4 Env value with escaped <

[osh_.py stdout] Expected 'foo<foo\n', got '(cmd_value.Argv argv:[printenv.py FOO] arg_spids:[5 7])\n'

stdout:
(cmd_value.Argv argv:[printenv.py FOO] arg_spids:[5 7])
stderr:
Unhandled SimpleCommand
osh_.cc4 Env value with escaped <

[osh_.cc stdout] Expected 'foo<foo\n', got '(cmd_value.Argv argv:[printenv.py FOO] arg_spids:[5 7])\n'

stdout:
(cmd_value.Argv argv:[printenv.py FOO] arg_spids:[5 7])
stderr:
Unhandled SimpleCommand
osh_.py6 FOO=foo fun

[osh_.py stdout] Expected '[foo]\n', got '(cmd_value.Argv argv:[fun] arg_spids:[20])\n'

stdout:
(cmd_value.Argv argv:[fun] arg_spids:[20])
stderr:
Unhandled SimpleCommand
osh_.cc6 FOO=foo fun

[osh_.cc stdout] Expected '[foo]\n', got '(cmd_value.Argv argv:[fun] arg_spids:[20])\n'

stdout:
(cmd_value.Argv argv:[fun] arg_spids:[20])
stderr:
Unhandled SimpleCommand
osh_.py7 Multiple temporary envs on the stack

[osh_.py stdout] Expected 'f [] [A]\n--- g() ---\nf\n[]\n[A]\nNone\np\n--- f() ---\nf\nNone\nNone\nNone\nNone\n', got '(cmd_value.Argv argv:[f] arg_spids:[93])\n'

stdout:
(cmd_value.Argv argv:[f] arg_spids:[93])
stderr:
Unhandled SimpleCommand
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 '(cmd_value.Argv argv:[f] arg_spids:[93])\n'

stdout:
(cmd_value.Argv argv:[f] arg_spids:[93])
stderr:
Unhandled SimpleCommand
osh_.py8 Escaped = in command name

[osh_.py stdout] Expected 'HI\n', got "(cmd_value.Argv argv:['foo=bar'] arg_spids:[0])\n"

stdout:
(cmd_value.Argv argv:['foo=bar'] arg_spids:[0])
stderr:
Unhandled SimpleCommand
osh_.cc8 Escaped = in command name

[osh_.cc stdout] Expected 'HI\n', got "(cmd_value.Argv argv:['foo=bar'] arg_spids:[0])\n"

stdout:
(cmd_value.Argv argv:['foo=bar'] arg_spids:[0])
stderr:
Unhandled SimpleCommand
osh_.py10 Trying to run keyword 'for'

[osh_.py status] Expected 127, got 0

stdout:
(cmd_value.Argv argv:[for] arg_spids:[3])
stderr:
Unhandled SimpleCommand
osh_.cc10 Trying to run keyword 'for'

[osh_.cc status] Expected 127, got 0

stdout:
(cmd_value.Argv argv:[for] arg_spids:[3])
stderr:
Unhandled SimpleCommand
osh_.py11 Empty env binding

[osh_.py stdout] Expected '\n', got '(cmd_value.Argv argv:[printenv.py EMPTY] arg_spids:[2 4])\n'

stdout:
(cmd_value.Argv argv:[printenv.py EMPTY] arg_spids:[2 4])
stderr:
Unhandled SimpleCommand
osh_.cc11 Empty env binding

[osh_.cc stdout] Expected '\n', got '(cmd_value.Argv argv:[printenv.py EMPTY] arg_spids:[2 4])\n'

stdout:
(cmd_value.Argv argv:[printenv.py EMPTY] arg_spids:[2 4])
stderr:
Unhandled SimpleCommand
osh_.py12 Assignment doesn't do word splitting

[osh_.py stdout] Expected "['one two']\n", got "(cmd_value.Argv argv:[argv.py 'one two'] arg_spids:[8 10])\n"

stdout:
(cmd_value.Argv argv:[argv.py 'one two'] arg_spids:[8 10])
stderr:
Unhandled SimpleCommand
osh_.cc12 Assignment doesn't do word splitting

[osh_.cc stdout] Expected "['one two']\n", got "(cmd_value.Argv argv:[argv.py 'one two'] arg_spids:[8 10])\n"

stdout:
(cmd_value.Argv argv:[argv.py 'one two'] arg_spids:[8 10])
stderr:
Unhandled SimpleCommand
osh_.py13 Assignment doesn't do glob expansion

[osh_.py stdout] Expected "['_tmp/*.Z']\n", got "(cmd_value.Argv argv:[touch '_tmp/z.Z' '_tmp/zz.Z'] arg_spids:[0 2 4])\n(cmd_value.Argv argv:[argv.py '_tmp/*.Z'] arg_spids:[11 13])\n"

stdout:
(cmd_value.Argv argv:[touch '_tmp/z.Z' '_tmp/zz.Z'] arg_spids:[0 2 4])
(cmd_value.Argv argv:[argv.py '_tmp/*.Z'] arg_spids:[11 13])
stderr:
Unhandled SimpleCommand
Unhandled SimpleCommand
osh_.cc13 Assignment doesn't do glob expansion

[osh_.cc stdout] Expected "['_tmp/*.Z']\n", got "(cmd_value.Argv argv:[touch '_tmp/z.Z' '_tmp/zz.Z'] arg_spids:[0 2 4])\n(cmd_value.Argv argv:[argv.py '_tmp/*.Z'] arg_spids:[11 13])\n"

stdout:
(cmd_value.Argv argv:[touch '_tmp/z.Z' '_tmp/zz.Z'] arg_spids:[0 2 4])
(cmd_value.Argv argv:[argv.py '_tmp/*.Z'] arg_spids:[11 13])
stderr:
Unhandled SimpleCommand
Unhandled SimpleCommand
osh_.py14 Env binding in readonly/declare is NOT exported! (pitfall)

[osh_.py stdout] Expected 'v=None\nv2=foo\n', got ''
[osh_.py status] Expected 0, got 1
[osh_.py stderr] Found 'Traceback (most recent'

stdout:
stderr: 
Traceback (most recent call last):
  File "/home/andy/git/oilshell/oil/bin/osh_eval.py", line 341, in <module>
    status = main(sys.argv)
  File "/home/andy/git/oilshell/oil/bin/osh_eval.py", line 228, in main
    status = main_loop.Batch(cmd_ev, c_parser, arena, is_main=True)
  File "/home/andy/git/oilshell/oil/core/main_loop.py", line 165, in Batch
    is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, optimize=optimize)
  File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 1450, in ExecuteAndCatch
    status = self._Execute(node)
  File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 1334, in _Execute
    status, check_errexit = self._Dispatch(node)
  File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 538, in _Dispatch
    cmd_val = self.word_ev.EvalWordSequence2(words, allow_assign=True)
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1874, in EvalWordSequence2
    return self._EvalAssignBuiltin(builtin_id, val0.s, words)
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1725, in _EvalAssignBuiltin
    right = self.EvalRhsWord(rhs_word)
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1588, in EvalRhsWord
    return self.EvalWordToString(w)
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1484, in EvalWordToString
    self._EvalWordPart(p, part_vals, quoted=False)
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1318, in _EvalWordPart
    sv = self._EvalCommandSub(part.child, quoted) # type: part_value_t
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1945, in _EvalCommandSub
    stdout = self.shell_ex.RunCommandSub(node)
AttributeError: 'NoneType' object has no attribute 'RunCommandSub'
osh_.cc14 Env binding in readonly/declare is NOT exported! (pitfall)

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

stdout:
v=
v2=foo
stderr:
osh_.cc15 assignments / array assignments not interpreted after 'echo'

[osh_.cc stdout] Expected 'b[0]=2 c=3\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/libc.h:37: List<Str *> *libc::glob(Str *): Assertion `0' failed.
osh_.py16 dynamic local variables (and splitting)

[osh_.py stdout] Expected "x='y a=b'\na=''\nx='y a=b'\na=''\n", got "(cmd_value.Argv argv:[f 'x=y a=b'] arg_spids:[58 60])\n"

stdout:
(cmd_value.Argv argv:[f 'x=y a=b'] arg_spids:[58 60])
stderr:
Unhandled SimpleCommand
osh_.cc16 dynamic local variables (and splitting)

[osh_.cc stdout] Expected "x='y a=b'\na=''\nx='y a=b'\na=''\n", got "(cmd_value.Argv argv:[f 'x=y a=b'] arg_spids:[58 60])\n"

stdout:
(cmd_value.Argv argv:[f 'x=y a=b'] arg_spids:[58 60])
stderr:
Unhandled SimpleCommand
osh_.py17 readonly x= gives empty string (regression)

[osh_.py stdout] Expected "['']\n", got "(cmd_value.Argv argv:[argv.py ''] arg_spids:[4 6])\n"

stdout:
(cmd_value.Argv argv:[argv.py ''] arg_spids:[4 6])
stderr:
Unhandled SimpleCommand
osh_.cc17 readonly x= gives empty string (regression)

[osh_.cc stdout] Expected "['']\n", got "(cmd_value.Argv argv:[argv.py ''] arg_spids:[4 6])\n"

stdout:
(cmd_value.Argv argv:[argv.py ''] arg_spids:[4 6])
stderr:
Unhandled SimpleCommand
osh_.py18 'local x' does not set variable

[osh_.py status] Expected 1, got 0

stdout:
(cmd_value.Argv argv:[f] arg_spids:[24])
stderr:
Unhandled SimpleCommand
osh_.cc18 'local x' does not set variable

[osh_.cc status] Expected 1, got 0

stdout:
(cmd_value.Argv argv:[f] arg_spids:[24])
stderr:
Unhandled SimpleCommand
osh_.py19 'local -a x' does not set variable

[osh_.py status] Expected 1, got 0

stdout:
(cmd_value.Argv argv:[f] arg_spids:[26])
stderr:
Unhandled SimpleCommand
osh_.cc19 'local -a x' does not set variable

[osh_.cc status] Expected 1, got 0

stdout:
(cmd_value.Argv argv:[f] arg_spids:[26])
stderr:
Unhandled SimpleCommand
osh_.py20 'local x' and then array assignment

[osh_.py stdout] Expected 'foo\n', got '(cmd_value.Argv argv:[f] arg_spids:[31])\n'

stdout:
(cmd_value.Argv argv:[f] arg_spids:[31])
stderr:
Unhandled SimpleCommand
osh_.cc20 'local x' and then array assignment

[osh_.cc stdout] Expected 'foo\n', got '(cmd_value.Argv argv:[f] arg_spids:[31])\n'

stdout:
(cmd_value.Argv argv:[f] arg_spids:[31])
stderr:
Unhandled SimpleCommand
osh_.py22 declare in an if statement

[osh_.py stdout] Expected 'bar\neggs\n', got '\n\n'

stdout:

stderr:
osh_.cc22 declare in an if statement

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

stdout:

stderr:
osh_.py23 Modify a temporary binding

[osh_.py stdout] Expected 'x before = 5\nx after = 6\n', got '(cmd_value.Argv argv:[f] arg_spids:[36])\n'

stdout:
(cmd_value.Argv argv:[f] arg_spids:[36])
stderr:
Unhandled SimpleCommand
osh_.cc23 Modify a temporary binding

[osh_.cc stdout] Expected 'x before = 5\nx after = 6\n', got '(cmd_value.Argv argv:[f] arg_spids:[36])\n'

stdout:
(cmd_value.Argv argv:[f] arg_spids:[36])
stderr:
Unhandled SimpleCommand
osh_.py24 Reveal existence of "temp frame" (All shells disagree here!!!)

[osh_.py stdout] Expected 'x=temp-binding\nx=mutated-temp\nx=local\nx=mutated-temp\nx=global\n', got '(cmd_value.Argv argv:[f] arg_spids:[66])\nx=global\n'

stdout:
(cmd_value.Argv argv:[f] arg_spids:[66])
x=global
stderr:
Unhandled SimpleCommand
osh_.cc24 Reveal existence of "temp frame" (All shells disagree here!!!)

[osh_.cc stdout] Expected 'x=temp-binding\nx=mutated-temp\nx=local\nx=mutated-temp\nx=global\n', got '(cmd_value.Argv argv:[f] arg_spids:[66])\nx=temp-binding\n'

stdout:
(cmd_value.Argv argv:[f] arg_spids:[66])
x=temp-binding
stderr:
Unhandled SimpleCommand
osh_.py25 Test above without 'local' (which is not POSIX)

[osh_.py stdout] Expected 'x=temp-binding\nx=mutated-temp\nx=global\nx=global\n', got '(cmd_value.Argv argv:[f] arg_spids:[50])\nx=global\n'

stdout:
(cmd_value.Argv argv:[f] arg_spids:[50])
x=global
stderr:
Unhandled SimpleCommand
osh_.cc25 Test above without 'local' (which is not POSIX)

[osh_.cc stdout] Expected 'x=temp-binding\nx=mutated-temp\nx=global\nx=global\n', got '(cmd_value.Argv argv:[f] arg_spids:[50])\nx=temp-binding\n'

stdout:
(cmd_value.Argv argv:[f] arg_spids:[50])
x=temp-binding
stderr:
Unhandled SimpleCommand
osh_.py26 Using ${x-default} after unsetting local shadowing a global

[osh_.py stdout] Expected 'x=global\nx=local\n- operator = global\n:- operator = global\n', got '(cmd_value.Argv argv:[f] arg_spids:[64])\n'

stdout:
(cmd_value.Argv argv:[f] arg_spids:[64])
stderr:
Unhandled SimpleCommand
osh_.cc26 Using ${x-default} after unsetting local shadowing a global

[osh_.cc stdout] Expected 'x=global\nx=local\n- operator = global\n:- operator = global\n', got '(cmd_value.Argv argv:[f] arg_spids:[64])\n'

stdout:
(cmd_value.Argv argv:[f] arg_spids:[64])
stderr:
Unhandled SimpleCommand
osh_.py27 Using ${x-default} after unsetting a temp binding shadowing a global

[osh_.py stdout] Expected 'x=temp-binding\nx=local\n- operator = temp-binding\n:- operator = temp-binding\n', got '(cmd_value.Argv argv:[f] arg_spids:[67])\n'

stdout:
(cmd_value.Argv argv:[f] arg_spids:[67])
stderr:
Unhandled SimpleCommand
osh_.cc27 Using ${x-default} after unsetting a temp binding shadowing a global

[osh_.cc stdout] Expected 'x=temp-binding\nx=local\n- operator = temp-binding\n:- operator = temp-binding\n', got '(cmd_value.Argv argv:[f] arg_spids:[67])\n'

stdout:
(cmd_value.Argv argv:[f] arg_spids:[67])
stderr:
Unhandled SimpleCommand
osh_.py28 static assignment doesn't split

[osh_.py stdout] Expected "['a b c', 'a b c', 'a b c']\n", got "(cmd_value.Argv argv:[argv.py 'a b c' 'a b c' 'a b c'] arg_spids:[18 20 24 28])\n"

stdout:
(cmd_value.Argv argv:[argv.py 'a b c' 'a b c' 'a b c'] arg_spids:[18 20 24 28])
stderr:
Unhandled SimpleCommand
osh_.cc28 static assignment doesn't split

[osh_.cc stdout] Expected "['a b c', 'a b c', 'a b c']\n", got "(cmd_value.Argv argv:[argv.py 'a b c' 'a b c' 'a b c'] arg_spids:[18 20 24 28])\n"

stdout:
(cmd_value.Argv argv:[argv.py 'a b c' 'a b c' 'a b c'] arg_spids:[18 20 24 28])
stderr:
Unhandled SimpleCommand
osh_.py29 aliased assignment doesn't split

[osh_.py stdout] Expected "['a b c', 'a b c']\n", got ''
[osh_.py status] Expected 0, got 1
[osh_.py stderr] Found 'Traceback (most recent'

stdout:
stderr: 
Traceback (most recent call last):
  File "/home/andy/git/oilshell/oil/bin/osh_eval.py", line 341, in <module>
    status = main(sys.argv)
  File "/home/andy/git/oilshell/oil/bin/osh_eval.py", line 228, in main
    status = main_loop.Batch(cmd_ev, c_parser, arena, is_main=True)
  File "/home/andy/git/oilshell/oil/core/main_loop.py", line 165, in Batch
    is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, optimize=optimize)
  File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 1450, in ExecuteAndCatch
    status = self._Execute(node)
  File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 1334, in _Execute
    status, check_errexit = self._Dispatch(node)
  File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 573, in _Dispatch
    status = self._RunSimpleCommand(cmd_val, node.do_fork)
  File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 481, in _RunSimpleCommand
    return self.shell_ex.RunSimpleCommand(cmd_val, do_fork)
  File "/home/andy/git/oilshell/oil/bin/osh_eval.py", line 321, in RunSimpleCommand
    return self.RunBuiltin(builtin_id, cmd_val)
  File "/home/andy/git/oilshell/oil/bin/osh_eval.py", line 302, in RunBuiltin
    builtin_func = self.builtins[builtin_id]
KeyError: 45
osh_.cc29 aliased assignment doesn't split

[osh_.cc stdout] Expected "['a b c', 'a b c']\n", got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: mycpp/mylib.h:578: V Dict<int, vm::_Builtin *>::index(K) [K = int, V = vm::_Builtin *]: Assertion `0' failed.
osh_.py30 assignment using dynamic keyword (splits in most shells, not in zsh/osh)

[osh_.py stdout] Expected "['a b c', 'a b c']\n", got "(cmd_value.Argv argv:[argv.py 'a b c' 'a b c'] arg_spids:[21 23 27])\n"

stdout:
(cmd_value.Argv argv:[argv.py 'a b c' 'a b c'] arg_spids:[21 23 27])
stderr:
Unhandled SimpleCommand
osh_.cc30 assignment using dynamic keyword (splits in most shells, not in zsh/osh)

[osh_.cc stdout] Expected "['a b c', 'a b c']\n", got "(cmd_value.Argv argv:[argv.py 'a b c' 'a b c'] arg_spids:[21 23 27])\n"

stdout:
(cmd_value.Argv argv:[argv.py 'a b c' 'a b c'] arg_spids:[21 23 27])
stderr:
Unhandled SimpleCommand
osh_.py31 assignment using dynamic var names doesn't split

[osh_.py stdout] Expected "['a b c', 'a b c']\n['a b c', 'a b c']\n", got "(cmd_value.Argv argv:[argv.py 'a b c' 'a b c'] arg_spids:[21 23 27])\n(cmd_value.Argv argv:[argv.py 'a b c' 'a b c'] arg_spids:[51 53 57])\n"

stdout:
(cmd_value.Argv argv:[argv.py 'a b c' 'a b c'] arg_spids:[21 23 27])
(cmd_value.Argv argv:[argv.py 'a b c' 'a b c'] arg_spids:[51 53 57])
stderr:
Unhandled SimpleCommand
Unhandled SimpleCommand
osh_.cc31 assignment using dynamic var names doesn't split

[osh_.cc stdout] Expected "['a b c', 'a b c']\n['a b c', 'a b c']\n", got "(cmd_value.Argv argv:[argv.py 'a b c' 'a b c'] arg_spids:[21 23 27])\n(cmd_value.Argv argv:[argv.py 'a b c' 'a b c'] arg_spids:[51 53 57])\n"

stdout:
(cmd_value.Argv argv:[argv.py 'a b c' 'a b c'] arg_spids:[21 23 27])
(cmd_value.Argv argv:[argv.py 'a b c' 'a b c'] arg_spids:[51 53 57])
stderr:
Unhandled SimpleCommand
Unhandled SimpleCommand
osh_.py32 assign and glob

[osh_.py stdout] Expected "['*']\n['*']\n", got ''
[osh_.py status] Expected 0, got 1
[osh_.py stderr] Found 'Traceback (most recent'

stdout:
stderr: 
Traceback (most recent call last):
  File "/home/andy/git/oilshell/oil/bin/osh_eval.py", line 341, in <module>
    status = main(sys.argv)
  File "/home/andy/git/oilshell/oil/bin/osh_eval.py", line 228, in main
    status = main_loop.Batch(cmd_ev, c_parser, arena, is_main=True)
  File "/home/andy/git/oilshell/oil/core/main_loop.py", line 165, in Batch
    is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, optimize=optimize)
  File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 1450, in ExecuteAndCatch
    status = self._Execute(node)
  File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 1334, in _Execute
    status, check_errexit = self._Dispatch(node)
  File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 573, in _Dispatch
    status = self._RunSimpleCommand(cmd_val, node.do_fork)
  File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 481, in _RunSimpleCommand
    return self.shell_ex.RunSimpleCommand(cmd_val, do_fork)
  File "/home/andy/git/oilshell/oil/bin/osh_eval.py", line 321, in RunSimpleCommand
    return self.RunBuiltin(builtin_id, cmd_val)
  File "/home/andy/git/oilshell/oil/bin/osh_eval.py", line 302, in RunBuiltin
    builtin_func = self.builtins[builtin_id]
KeyError: 23
osh_.cc32 assign and glob

[osh_.cc stdout] Expected "['*']\n['*']\n", got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: mycpp/mylib.h:578: V Dict<int, vm::_Builtin *>::index(K) [K = int, V = vm::_Builtin *]: Assertion `0' failed.
osh_.py33 declare and glob

[osh_.py stdout] Expected "['*']\n", got ''
[osh_.py status] Expected 0, got 1
[osh_.py stderr] Found 'Traceback (most recent'

stdout:
stderr: 
Traceback (most recent call last):
  File "/home/andy/git/oilshell/oil/bin/osh_eval.py", line 341, in <module>
    status = main(sys.argv)
  File "/home/andy/git/oilshell/oil/bin/osh_eval.py", line 228, in main
    status = main_loop.Batch(cmd_ev, c_parser, arena, is_main=True)
  File "/home/andy/git/oilshell/oil/core/main_loop.py", line 165, in Batch
    is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, optimize=optimize)
  File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 1450, in ExecuteAndCatch
    status = self._Execute(node)
  File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 1334, in _Execute
    status, check_errexit = self._Dispatch(node)
  File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 573, in _Dispatch
    status = self._RunSimpleCommand(cmd_val, node.do_fork)
  File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 481, in _RunSimpleCommand
    return self.shell_ex.RunSimpleCommand(cmd_val, do_fork)
  File "/home/andy/git/oilshell/oil/bin/osh_eval.py", line 321, in RunSimpleCommand
    return self.RunBuiltin(builtin_id, cmd_val)
  File "/home/andy/git/oilshell/oil/bin/osh_eval.py", line 302, in RunBuiltin
    builtin_func = self.builtins[builtin_id]
KeyError: 23
osh_.cc33 declare and glob

[osh_.cc stdout] Expected "['*']\n", got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: mycpp/mylib.h:578: V Dict<int, vm::_Builtin *>::index(K) [K = int, V = vm::_Builtin *]: Assertion `0' failed.
osh_.py36 export a=1 no_value c=2

[osh_.py stdout] Expected 'foo\n', got '(cmd_value.Argv argv:[printenv.py no_value] arg_spids:[13 15])\n'

stdout:
(cmd_value.Argv argv:[printenv.py no_value] arg_spids:[13 15])
stderr:
Unhandled SimpleCommand
osh_.cc36 export a=1 no_value c=2

[osh_.cc stdout] Expected 'foo\n', got '(cmd_value.Argv argv:[printenv.py no_value] arg_spids:[13 15])\n'

stdout:
(cmd_value.Argv argv:[printenv.py no_value] arg_spids:[13 15])
stderr:
Unhandled SimpleCommand
osh_.py37 local a=loc $var c=loc

[osh_.py stdout] Expected "global\n['loc', '', 'loc']\n", got 'global\n(cmd_value.Argv argv:[f] arg_spids:[46])\n'

stdout:
global
(cmd_value.Argv argv:[f] arg_spids:[46])
stderr:
Unhandled SimpleCommand
osh_.cc37 local a=loc $var c=loc

[osh_.cc stdout] Expected "global\n['loc', '', 'loc']\n", got 'global\n(cmd_value.Argv argv:[f] arg_spids:[46])\n'

stdout:
global
(cmd_value.Argv argv:[f] arg_spids:[46])
stderr:
Unhandled SimpleCommand
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 stdout] Expected 'done\n', got ''
[osh_.py stderr] Expected 'STDERR\n', got 'Traceback (most recent call last):\n File "/home/andy/git/oilshell/oil/bin/osh_eval.py", line 341, in <module>\n status = main(sys.argv)\n File "/home/andy/git/oilshell/oil/bin/osh_eval.py", line 228, in main\n status = main_loop.Batch(cmd_ev, c_parser, arena, is_main=True)\n File "/home/andy/git/oilshell/oil/core/main_loop.py", line 165, in Batch\n is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, optimize=optimize)\n File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 1450, in ExecuteAndCatch\n status = self._Execute(node)\n File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 1326, in _Execute\n status, check_errexit = self._Dispatch(node)\n File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 538, in _Dispatch\n cmd_val = self.word_ev.EvalWordSequence2(words, allow_assign=True)\n File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1874, in EvalWordSequence2\n return self._EvalAssignBuiltin(builtin_id, val0.s, words)\n File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1725, in _EvalAssignBuiltin\n right = self.EvalRhsWord(rhs_word)\n File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1588, in EvalRhsWord\n return self.EvalWordToString(w)\n File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1484, in EvalWordToString\n self._EvalWordPart(p, part_vals, quoted=False)\n File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1318, in _EvalWordPart\n sv = self._EvalCommandSub(part.child, quoted) # type: part_value_t\n File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1945, in _EvalCommandSub\n stdout = self.shell_ex.RunCommandSub(node)\nAttributeError: \'NoneType\' object has no attribute \'RunCommandSub\'\n'
[osh_.py status] Expected 0, got 1
[osh_.py stderr] Found 'Traceback (most recent'

stdout:
stderr: 
Traceback (most recent call last):
  File "/home/andy/git/oilshell/oil/bin/osh_eval.py", line 341, in <module>
    status = main(sys.argv)
  File "/home/andy/git/oilshell/oil/bin/osh_eval.py", line 228, in main
    status = main_loop.Batch(cmd_ev, c_parser, arena, is_main=True)
  File "/home/andy/git/oilshell/oil/core/main_loop.py", line 165, in Batch
    is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, optimize=optimize)
  File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 1450, in ExecuteAndCatch
    status = self._Execute(node)
  File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 1326, in _Execute
    status, check_errexit = self._Dispatch(node)
  File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 538, in _Dispatch
    cmd_val = self.word_ev.EvalWordSequence2(words, allow_assign=True)
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1874, in EvalWordSequence2
    return self._EvalAssignBuiltin(builtin_id, val0.s, words)
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1725, in _EvalAssignBuiltin
    right = self.EvalRhsWord(rhs_word)
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1588, in EvalRhsWord
    return self.EvalWordToString(w)
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1484, in EvalWordToString
    self._EvalWordPart(p, part_vals, quoted=False)
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1318, in _EvalWordPart
    sv = self._EvalCommandSub(part.child, quoted) # type: part_value_t
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1945, in _EvalCommandSub
    stdout = self.shell_ex.RunCommandSub(node)
AttributeError: 'NoneType' object has no attribute 'RunCommandSub'
osh_.cc38 redirect after assignment builtin (what's going on with dash/bash/mksh here?)

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

stdout:
done
stderr:
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 stdout] Expected 'stdout=STDOUT\n', got ''
[osh_.py stderr] Expected 'STDERR\n', got 'Traceback (most recent call last):\n File "/home/andy/git/oilshell/oil/bin/osh_eval.py", line 341, in <module>\n status = main(sys.argv)\n File "/home/andy/git/oilshell/oil/bin/osh_eval.py", line 228, in main\n status = main_loop.Batch(cmd_ev, c_parser, arena, is_main=True)\n File "/home/andy/git/oilshell/oil/core/main_loop.py", line 165, in Batch\n is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, optimize=optimize)\n File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 1450, in ExecuteAndCatch\n status = self._Execute(node)\n File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 1326, in _Execute\n status, check_errexit = self._Dispatch(node)\n File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 538, in _Dispatch\n cmd_val = self.word_ev.EvalWordSequence2(words, allow_assign=True)\n File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1854, in EvalWordSequence2\n self._EvalWordToParts(w, False, part_vals) # not double quoted\n File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1441, in _EvalWordToParts\n self._EvalWordPart(p, part_vals, quoted=quoted, is_subst=is_subst)\n File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1318, in _EvalWordPart\n sv = self._EvalCommandSub(part.child, quoted) # type: part_value_t\n File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1945, in _EvalCommandSub\n stdout = self.shell_ex.RunCommandSub(node)\nAttributeError: \'NoneType\' object has no attribute \'RunCommandSub\'\n'
[osh_.py status] Expected 0, got 1
[osh_.py stderr] Found 'Traceback (most recent'

stdout:
stderr: 
Traceback (most recent call last):
  File "/home/andy/git/oilshell/oil/bin/osh_eval.py", line 341, in <module>
    status = main(sys.argv)
  File "/home/andy/git/oilshell/oil/bin/osh_eval.py", line 228, in main
    status = main_loop.Batch(cmd_ev, c_parser, arena, is_main=True)
  File "/home/andy/git/oilshell/oil/core/main_loop.py", line 165, in Batch
    is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, optimize=optimize)
  File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 1450, in ExecuteAndCatch
    status = self._Execute(node)
  File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 1326, in _Execute
    status, check_errexit = self._Dispatch(node)
  File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 538, in _Dispatch
    cmd_val = self.word_ev.EvalWordSequence2(words, allow_assign=True)
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1854, in EvalWordSequence2
    self._EvalWordToParts(w, False, part_vals)  # not double quoted
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1441, in _EvalWordToParts
    self._EvalWordPart(p, part_vals, quoted=quoted, is_subst=is_subst)
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1318, in _EvalWordPart
    sv = self._EvalCommandSub(part.child, quoted) # type: part_value_t
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1945, in _EvalCommandSub
    stdout = self.shell_ex.RunCommandSub(node)
AttributeError: 'NoneType' object has no attribute 'RunCommandSub'
osh_.cc39 redirect after command sub (like case above but without assignment builtin)

[osh_.cc stdout] Expected 'stdout=STDOUT\n', got 'stdout=\n'
[osh_.cc stderr] Expected 'STDERR\n', got ''

stdout:
stdout=
stderr:
osh_.py40 redirect after bare assignment

[osh_.py stdout] Expected 'done\n', got ''
[osh_.py stderr] Expected u'', got 'Traceback (most recent call last):\n File "/home/andy/git/oilshell/oil/bin/osh_eval.py", line 341, in <module>\n status = main(sys.argv)\n File "/home/andy/git/oilshell/oil/bin/osh_eval.py", line 228, in main\n status = main_loop.Batch(cmd_ev, c_parser, arena, is_main=True)\n File "/home/andy/git/oilshell/oil/core/main_loop.py", line 165, in Batch\n is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, optimize=optimize)\n File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 1450, in ExecuteAndCatch\n status = self._Execute(node)\n File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 1326, in _Execute\n status, check_errexit = self._Dispatch(node)\n File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 830, in _Dispatch\n val = self.word_ev.EvalRhsWord(pair.rhs)\n File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1588, in EvalRhsWord\n return self.EvalWordToString(w)\n File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1484, in EvalWordToString\n self._EvalWordPart(p, part_vals, quoted=False)\n File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1318, in _EvalWordPart\n sv = self._EvalCommandSub(part.child, quoted) # type: part_value_t\n File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1945, in _EvalCommandSub\n stdout = self.shell_ex.RunCommandSub(node)\nAttributeError: \'NoneType\' object has no attribute \'RunCommandSub\'\n'
[osh_.py status] Expected 0, got 1
[osh_.py stderr] Found 'Traceback (most recent'

stdout:
stderr: 
Traceback (most recent call last):
  File "/home/andy/git/oilshell/oil/bin/osh_eval.py", line 341, in <module>
    status = main(sys.argv)
  File "/home/andy/git/oilshell/oil/bin/osh_eval.py", line 228, in main
    status = main_loop.Batch(cmd_ev, c_parser, arena, is_main=True)
  File "/home/andy/git/oilshell/oil/core/main_loop.py", line 165, in Batch
    is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, optimize=optimize)
  File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 1450, in ExecuteAndCatch
    status = self._Execute(node)
  File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 1326, in _Execute
    status, check_errexit = self._Dispatch(node)
  File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 830, in _Dispatch
    val = self.word_ev.EvalRhsWord(pair.rhs)
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1588, in EvalRhsWord
    return self.EvalWordToString(w)
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1484, in EvalWordToString
    self._EvalWordPart(p, part_vals, quoted=False)
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1318, in _EvalWordPart
    sv = self._EvalCommandSub(part.child, quoted) # type: part_value_t
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1945, in _EvalCommandSub
    stdout = self.shell_ex.RunCommandSub(node)
AttributeError: 'NoneType' object has no attribute 'RunCommandSub'
osh41 redirect after declare -p

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

[osh_.py stderr] Expected 'declare -- foo=bar\n', got ''
[osh_.py stdout] Expected u'', got 'declare -- foo=bar\n'

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

[osh_.cc stderr] Expected 'declare -- foo=bar\n', got ''
[osh_.cc status] Expected 0, got -11

stdout:
stderr: 
osh_.cc43 declare -A dict does not remove existing arrays (OSH regression)

[osh_.cc stdout] Expected 'dict:3\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: mycpp/mylib.h:721: int len(const Dict<K, V> *) [K = Str *, V = Str *]: Assertion `0' failed.