spec test index / oilshell.org
82 passed, 2 OK, 0 not implemented, 0 BUG, 48 failed, 0 timeouts, 0 cases skipped 2 failed under osh
osh_.py | 0 Env value doesn't persist [osh_.py stdout] Expected 'foo\n--\n', got '--\n' stdout: --stderr: FOO=foo printenv.py FOO ^~~~~~~~~~~ [ stdin ]:1: 'printenv.py' not found |
osh_.cc | 0 Env value doesn't persist [osh_.cc stdout] Expected 'foo\n--\n', got '--\n' stdout: --stderr: FOO=foo printenv.py FOO ^~~~~~~~~~~ [ stdin ]:1: 'printenv.py' not found |
osh_.py | 1 Env value with equals [osh_.py stdout] Expected 'foo=foo\n', got '' [osh_.py status] Expected 0, got 127 stdout: stderr: FOO=foo=foo printenv.py FOO ^~~~~~~~~~~ [ stdin ]:1: 'printenv.py' not found |
osh_.cc | 1 Env value with equals [osh_.cc stdout] Expected 'foo=foo\n', got '' [osh_.cc status] Expected 0, got 127 stdout: stderr: FOO=foo=foo printenv.py FOO ^~~~~~~~~~~ [ stdin ]:1: 'printenv.py' not found |
osh_.py | 2 Env binding can use preceding bindings, but not subsequent ones [osh_.py stdout] Expected 'foo\n[foo][]\nbaz\n', got '' [osh_.py status] Expected 0, got 127 stdout: stderr: FOO="foo" BAR="[$FOO][$BAZ]" BAZ=baz printenv.py FOO BAR BAZ ^~~~~~~~~~~ [ stdin ]:1: 'printenv.py' not found |
osh_.cc | 2 Env binding can use preceding bindings, but not subsequent ones [osh_.cc stdout] Expected 'foo\n[foo][]\nbaz\n', got '' [osh_.cc status] Expected 0, got 127 stdout: stderr: FOO="foo" BAR="[$FOO][$BAZ]" BAZ=baz printenv.py FOO BAR BAZ ^~~~~~~~~~~ [ stdin ]:1: 'printenv.py' not found |
osh_.py | 3 Env value with two quotes [osh_.py stdout] Expected 'fooadjacent\n', got '' [osh_.py status] Expected 0, got 127 stdout: stderr: FOO='foo'"adjacent" printenv.py FOO ^~~~~~~~~~~ [ stdin ]:1: 'printenv.py' not found |
osh_.cc | 3 Env value with two quotes [osh_.cc stdout] Expected 'fooadjacent\n', got '' [osh_.cc status] Expected 0, got 127 stdout: stderr: FOO='foo'"adjacent" printenv.py FOO ^~~~~~~~~~~ [ stdin ]:1: 'printenv.py' not found |
osh_.py | 4 Env value with escaped < [osh_.py stdout] Expected 'foo<foo\n', got '' [osh_.py status] Expected 0, got 127 stdout: stderr: FOO=foo\<foo printenv.py FOO ^~~~~~~~~~~ [ stdin ]:1: 'printenv.py' not found |
osh_.cc | 4 Env value with escaped < [osh_.cc stdout] Expected 'foo<foo\n', got '' [osh_.cc status] Expected 0, got 127 stdout: stderr: FOO=foo\<foo printenv.py FOO ^~~~~~~~~~~ [ stdin ]:1: 'printenv.py' not found |
osh_.py | 7 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 'f [] [A]\n--- g() ---\n--- f() ---\n' [osh_.py status] Expected 0, got 127 stdout: f [] [A] --- g() --- --- f() ---stderr: P=p printenv.py F G1 G2 A P ^~~~~~~~~~~ [ stdin ]:4: 'printenv.py' not found printenv.py F G1 G2 A P ^~~~~~~~~~~ [ stdin ]:9: 'printenv.py' not found |
osh_.cc | 7 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() ---\n' [osh_.cc status] Expected 0, got 127 stdout: f [] [A] --- g() --- --- f() ---stderr: P=p printenv.py F G1 G2 A P ^~~~~~~~~~~ [ stdin ]:4: 'printenv.py' not found printenv.py F G1 G2 A P ^~~~~~~~~~~ [ stdin ]:9: 'printenv.py' not found |
osh_.py | 8 Escaped = in command name [osh_.py stdout] Expected 'HI\n', got '' [osh_.py status] Expected 0, got 127 stdout: stderr: foo\=bar ^~~ [ stdin ]:1: 'foo=bar' not found |
osh_.cc | 8 Escaped = in command name [osh_.cc stdout] Expected 'HI\n', got '' [osh_.cc status] Expected 0, got 127 stdout: stderr: foo\=bar ^~~ [ stdin ]:1: 'foo=bar' not found |
osh_.py | 11 Empty env binding [osh_.py stdout] Expected '\n', got '' [osh_.py status] Expected 0, got 127 stdout: stderr: EMPTY= printenv.py EMPTY ^~~~~~~~~~~ [ stdin ]:1: 'printenv.py' not found |
osh_.cc | 11 Empty env binding [osh_.cc stdout] Expected '\n', got '' [osh_.cc status] Expected 0, got 127 stdout: stderr: EMPTY= printenv.py EMPTY ^~~~~~~~~~~ [ stdin ]:1: 'printenv.py' not found |
osh_.py | 12 Assignment doesn't do word splitting [osh_.py stdout] Expected "['one two']\n", got '' [osh_.py status] Expected 0, got 127 stdout: stderr: argv.py "$a" ^~~~~~~ [ stdin ]:3: 'argv.py' not found |
osh_.cc | 12 Assignment doesn't do word splitting [osh_.cc stdout] Expected "['one two']\n", got '' [osh_.cc status] Expected 0, got 127 stdout: stderr: argv.py "$a" ^~~~~~~ [ stdin ]:3: 'argv.py' not found |
osh_.py | 13 Assignment doesn't do glob expansion [osh_.py stdout] Expected "['_tmp/*.Z']\n", got '' [osh_.py status] Expected 0, got 127 stdout: stderr: argv.py "$a" ^~~~~~~ [ stdin ]:3: 'argv.py' not found |
osh_.cc | 13 Assignment doesn't do glob expansion [osh_.cc stdout] Expected "['_tmp/*.Z']\n", got '' [osh_.cc status] Expected 0, got 127 stdout: stderr: argv.py "$a" ^~~~~~~ [ stdin ]:3: 'argv.py' not found |
osh_.py | 14 Env binding in readonly/declare is NOT exported! (pitfall) [osh_.py stdout] Expected 'v=None\nv2=foo\n', got 'v=\nv2=foo\n' stdout: v= v2=foostderr: FOO=foo readonly v=$(printenv.py FOO) ^~~~~~~~~~~ [ stdin ]:1: 'printenv.py' not found |
osh_.cc | 14 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.dbg: cpp/posix.h:106: Tuple2<int, int> posix::pipe(): Assertion `0' failed. |
osh_.py | 17 readonly x= gives empty string (regression) [osh_.py stdout] Expected "['']\n", got '' [osh_.py status] Expected 0, got 127 stdout: stderr: argv.py "$x" ^~~~~~~ [ stdin ]:2: 'argv.py' not found |
osh_.cc | 17 readonly x= gives empty string (regression) [osh_.cc stdout] Expected "['']\n", got '' [osh_.cc status] Expected 0, got 127 stdout: stderr: argv.py "$x" ^~~~~~~ [ stdin ]:2: 'argv.py' not found |
osh_.py | 28 static assignment doesn't split [osh_.py stdout] Expected "['a b c', 'a b c', 'a b c']\n", got '' [osh_.py status] Expected 0, got 127 stdout: stderr: argv.py "$ex" "$glo" "$ro" ^~~~~~~ [ stdin ]:5: 'argv.py' not found |
osh_.cc | 28 static assignment doesn't split [osh_.cc stdout] Expected "['a b c', 'a b c', 'a b c']\n", got '' [osh_.cc status] Expected 0, got 127 stdout: stderr: argv.py "$ex" "$glo" "$ro" ^~~~~~~ [ stdin ]:5: 'argv.py' not found |
osh_.py | 29 aliased assignment doesn't split [osh_.py stdout] Expected "['a b c', 'a b c']\n", got '' [osh_.py status] Expected 0, got 127 stdout: stderr: argv.py "$ex" "$ro" ^~~~~~~ [ stdin ]:7: 'argv.py' not found |
osh_.cc | 29 aliased assignment doesn't split [osh_.cc stdout] Expected "['a b c', 'a b c']\n", got '' [osh_.cc status] Expected 0, got 127 stdout: stderr: argv.py "$ex" "$ro" ^~~~~~~ [ stdin ]:7: 'argv.py' not found |
osh_.py | 30 assignment using dynamic keyword (splits in most shells, not in zsh/osh) [osh_.py stdout] Expected "['a b c', 'a b c']\n", got '' [osh_.py status] Expected 0, got 127 stdout: stderr: argv.py "$ex" "$ro" ^~~~~~~ [ stdin ]:6: 'argv.py' not found |
osh_.cc | 30 assignment using dynamic keyword (splits in most shells, not in zsh/osh) [osh_.cc stdout] Expected "['a b c', 'a b c']\n", got '' [osh_.cc status] Expected 0, got 127 stdout: stderr: argv.py "$ex" "$ro" ^~~~~~~ [ stdin ]:6: 'argv.py' not found |
osh_.py | 31 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 '' [osh_.py status] Expected 0, got 127 stdout: stderr: argv.py "$ex" "$ro" ^~~~~~~ [ stdin ]:6: 'argv.py' not found argv.py "$ex2" "$ro2" ^~~~~~~ [ stdin ]:11: 'argv.py' not found |
osh_.cc | 31 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 '' [osh_.cc status] Expected 0, got 127 stdout: stderr: argv.py "$ex" "$ro" ^~~~~~~ [ stdin ]:6: 'argv.py' not found argv.py "$ex2" "$ro2" ^~~~~~~ [ stdin ]:11: 'argv.py' not found |
osh_.py | 32 assign and glob [osh_.py stdout] Expected "['*']\n['*']\n", got '' stdout: stderr: cd $TMP ^~ [ stdin ]:1: $HOME isn't defined argv.py "$foo" ^~~~~~~ [ stdin ]:4: 'argv.py' not found argv.py "$foo" ^~~~~~~ [ stdin ]:7: 'argv.py' not found |
osh_.cc | 32 assign and glob [osh_.cc stdout] Expected "['*']\n['*']\n", got '' stdout: stderr: cd $TMP ^~ [ stdin ]:1: $HOME isn't defined argv.py "$foo" ^~~~~~~ [ stdin ]:4: 'argv.py' not found argv.py "$foo" ^~~~~~~ [ stdin ]:7: 'argv.py' not found |
osh_.py | 33 declare and glob [osh_.py stdout] Expected "['*']\n", got '' stdout: stderr: cd $TMP ^~ [ stdin ]:1: $HOME isn't defined argv.py "$foo" ^~~~~~~ [ stdin ]:4: 'argv.py' not found |
osh_.cc | 33 declare and glob [osh_.cc stdout] Expected "['*']\n", got '' stdout: stderr: cd $TMP ^~ [ stdin ]:1: $HOME isn't defined argv.py "$foo" ^~~~~~~ [ stdin ]:4: 'argv.py' not found |
osh_.py | 36 export a=1 no_value c=2 [osh_.py stdout] Expected 'foo\n', got '' [osh_.py status] Expected 0, got 127 stdout: stderr: printenv.py no_value ^~~~~~~~~~~ [ stdin ]:3: 'printenv.py' not found |
osh_.cc | 36 export a=1 no_value c=2 [osh_.cc stdout] Expected 'foo\n', got '' [osh_.cc status] Expected 0, got 127 stdout: stderr: printenv.py no_value ^~~~~~~~~~~ [ stdin ]:3: 'printenv.py' not found |
osh_.py | 37 local a=loc $var c=loc [osh_.py stdout] Expected "global\n['loc', '', 'loc']\n", got 'global\n' [osh_.py status] Expected 0, got 127 stdout: globalstderr: argv.py "$a" "$b" "$c" ^~~~~~~ [ stdin ]:6: 'argv.py' not found |
osh_.cc | 37 local a=loc $var c=loc [osh_.cc stdout] Expected "global\n['loc', '', 'loc']\n", got 'global\n' [osh_.cc status] Expected 0, got 127 stdout: globalstderr: argv.py "$a" "$b" "$c" ^~~~~~~ [ stdin ]:6: 'argv.py' not found |
osh | 38 redirect after assignment builtin (what's going on with dash/bash/mksh here?) [osh stderr] Expected 'STDERR\n', got '' stdout: donestderr: |
osh_.py | 38 redirect after assignment builtin (what's going on with dash/bash/mksh here?) [osh_.py stderr] Expected 'STDERR\n', got '' stdout: donestderr: |
osh_.cc | 38 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.dbg: cpp/posix.h:143: void posix::dup2(int, int): Assertion `0' failed.\n" [osh_.cc status] Expected 0, got -6 stdout: stderr: osh_eval.dbg: cpp/posix.h:143: void posix::dup2(int, int): Assertion `0' failed. |
osh | 39 redirect after command sub (like case above but without assignment builtin) [osh stderr] Expected 'STDERR\n', got '' stdout: stdout=STDOUTstderr: |
osh_.py | 39 redirect after command sub (like case above but without assignment builtin) [osh_.py stdout] Expected 'stdout=STDOUT\n', got 'stdout=\n' [osh_.py stderr] Expected 'STDERR\n', got '' stdout: stdout=stderr: |
osh_.cc | 39 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.dbg: cpp/posix.h:143: void posix::dup2(int, int): Assertion `0' failed.\n" [osh_.cc status] Expected 0, got -6 stdout: stderr: osh_eval.dbg: cpp/posix.h:143: void posix::dup2(int, int): Assertion `0' failed. |
osh_.cc | 40 redirect after bare assignment [osh_.cc stdout] Expected 'done\n', got '' [osh_.cc stderr] Expected u'', got "osh_eval.dbg: cpp/posix.h:143: void posix::dup2(int, int): Assertion `0' failed.\n" [osh_.cc status] Expected 0, got -6 stdout: stderr: osh_eval.dbg: cpp/posix.h:143: void posix::dup2(int, int): Assertion `0' failed. |
osh | 41 redirect after declare -p stdout: stderr: declare -- foo=bar |
osh_.py | 41 redirect after declare -p stdout: stderr: declare -- foo=bar |
osh_.cc | 41 redirect after declare -p [osh_.cc stderr] Expected 'declare -- foo=bar\n', got "osh_eval.dbg: cpp/posix.h:143: void posix::dup2(int, int): Assertion `0' failed.\n" [osh_.cc status] Expected 0, got -6 stdout: stderr: osh_eval.dbg: cpp/posix.h:143: void posix::dup2(int, int): Assertion `0' failed. |