spec test index / oilshell.org
case | bash | mksh | osh | osh-byterun | description |
0 | pass | pass | pass | pass | Assignment Causes Array Decay |
1 | pass | pass | FAIL | FAIL | Array Decay with IFS |
details | details | ||||
2 | pass | pass | FAIL | FAIL | User arrays decay |
details | details | ||||
3 | pass | pass | FAIL | FAIL | $a gives first element of array |
details | details | ||||
4 | pass | pass | FAIL | FAIL | Assign to array index without initialization |
details | details | ||||
5 | pass | pass | FAIL | FAIL | a[40] grows array |
details | details | ||||
6 | pass | pass | pass | pass | array decays to string when comparing with [[ a = b ]] |
7 | pass | pass | FAIL | FAIL | Increment array variables |
details | details | ||||
8 | pass | N-I | pass | pass | Apply vectorized operations on ${a[*]} |
details |
23 passed, 0 ok, 1 known unimplemented, 0 known bugs, 6 failed, 0 skipped
osh | 1 Array Decay with IFS [osh stdout] Expected "['[x y z]']\n", got "['[ y z]']\n" stdout: ['[ y z]']stderr: |
osh-byterun | 1 Array Decay with IFS [osh-byterun stdout] Expected "['[x y z]']\n", got "['[ y z]']\n" stdout: ['[ y z]']stderr: |
osh | 2 User arrays decay [osh stdout] Expected "['x', 'y', 'z']\n['x y z']\n['x', 'YYY', 'z']\n", got "['x', 'y', 'z']\n" [osh status] Expected 0, got 1 stdout: ['x', 'y', 'z']stderr: Unexpected error in execvpe('c[1]=YYY', ['c[1]=YYY'], ...): [Errno 2] No such file or directory Line 8 of '<stdin>' argv.py "${b[@]}" ^~ osh failed: Can't index string with @: (Str s:'x y z') |
osh-byterun | 2 User arrays decay [osh-byterun stdout] Expected "['x', 'y', 'z']\n['x y z']\n['x', 'YYY', 'z']\n", got "['x', 'y', 'z']\n" [osh-byterun status] Expected 0, got 1 stdout: ['x', 'y', 'z']stderr: Unexpected error in execvpe('c[1]=YYY', ['c[1]=YYY'], ...): [Errno 2] No such file or directory Line 8 of '<stdin>' argv.py "${b[@]}" ^~ osh failed: Can't index string with @: (Str s:'x y z') |
osh | 3 $a gives first element of array [osh stdout] Expected '1\n', got '1 2 3\n' stdout: 1 2 3stderr: |
osh-byterun | 3 $a gives first element of array [osh-byterun stdout] Expected '1\n', got '1 2 3\n' stdout: 1 2 3stderr: |
osh | 4 Assign to array index without initialization [osh stdout] Expected '5 6 2\n', got '0\n' stdout: 0stderr: Unexpected error in execvpe('a[5]=5', ['a[5]=5'], ...): [Errno 2] No such file or directory Unexpected error in execvpe('a[6]=6', ['a[6]=6'], ...): [Errno 2] No such file or directory |
osh-byterun | 4 Assign to array index without initialization [osh-byterun stdout] Expected '5 6 2\n', got '0\n' stdout: 0stderr: Unexpected error in execvpe('a[5]=5', ['a[5]=5'], ...): [Errno 2] No such file or directory Unexpected error in execvpe('a[6]=6', ['a[6]=6'], ...): [Errno 2] No such file or directory |
osh | 5 a[40] grows array [osh stdout] Expected '1 5 3 20 30 5\n', got '1 2 3 3\n' stdout: 1 2 3 3stderr: Unexpected error in execvpe('a[1]=5', ['a[1]=5'], ...): [Errno 2] No such file or directory Unexpected error in execvpe('a[40]=30', ['a[40]=30'], ...): [Errno 2] No such file or directory Unexpected error in execvpe('a[10]=20', ['a[10]=20'], ...): [Errno 2] No such file or directory |
osh-byterun | 5 a[40] grows array [osh-byterun stdout] Expected '1 5 3 20 30 5\n', got '1 2 3 3\n' stdout: 1 2 3 3stderr: Unexpected error in execvpe('a[1]=5', ['a[1]=5'], ...): [Errno 2] No such file or directory Unexpected error in execvpe('a[40]=30', ['a[40]=30'], ...): [Errno 2] No such file or directory Unexpected error in execvpe('a[10]=20', ['a[10]=20'], ...): [Errno 2] No such file or directory |
osh | 7 Increment array variables [osh stdout] Expected '2 2\n', got '' [osh status] Expected 0, got 1 stdout: stderr: Traceback (most recent call last): File "bin/osh", line 626, in <module> main(sys.argv) File "bin/osh", line 604, in main sys.exit(AppBundleMain(argv)) File "bin/osh", line 578, in AppBundleMain status = OshMain(argv0, main_argv, login_shell) File "bin/osh", line 388, in OshMain status = ex.ExecuteAndRunExitTrap(node) File "/home/andy/git/oilshell/oil/bin/../core/cmd_exec.py", line 1240, in ExecuteAndRunExitTrap status = self.Execute(node) File "/home/andy/git/oilshell/oil/bin/../core/cmd_exec.py", line 1235, in Execute status, _ = self.ExecuteAndCatch(node, fork_external=fork_external) File "/home/andy/git/oilshell/oil/bin/../core/cmd_exec.py", line 1193, in ExecuteAndCatch status = self._Execute(node, fork_external=fork_external) File "/home/andy/git/oilshell/oil/bin/../core/cmd_exec.py", line 1165, in _Execute status, check_errexit = self._Dispatch(node, fork_external) File "/home/andy/git/oilshell/oil/bin/../core/cmd_exec.py", line 898, in _Dispatch status = self._ExecuteList(node.children) File "/home/andy/git/oilshell/oil/bin/../core/cmd_exec.py", line 1186, in _ExecuteList status = self._Execute(child) # last status wins File "/home/andy/git/oilshell/oil/bin/../core/cmd_exec.py", line 1165, in _Execute status, check_errexit = self._Dispatch(node, fork_external) File "/home/andy/git/oilshell/oil/bin/../core/cmd_exec.py", line 771, in _Dispatch i = self.arith_ev.Eval(node.child) File "/home/andy/git/oilshell/oil/bin/../core/expr_eval.py", line 269, in Eval new_int = old_int + 1 TypeError: can only concatenate list (not "int") to list |
osh-byterun | 7 Increment array variables [osh-byterun stdout] Expected '2 2\n', got '' [osh-byterun status] Expected 0, got 1 stdout: stderr: Traceback (most recent call last): File "/home/andy/git/oilshell/oil/bin/opy_.py", line 88, in <module> main(sys.argv) File "/home/andy/git/oilshell/oil/bin/opy_.py", line 72, in main sys.exit(AppBundleMain(argv)) File "/home/andy/git/oilshell/oil/bin/opy_.py", line 64, in AppBundleMain return opy_main.OpyCommandMain(main_argv) File "/home/andy/git/oilshell/oil/opy/opy_main.py", line 351, in OpyCommandMain num_ticks = ovm.run_code_object(co, opy_argv) File "/home/andy/git/oilshell/oil/opy/byterun/execfile.py", line 36, in run_code_object pyvm2.run_code(vm, code, f_globals=main_mod.__dict__) File "/home/andy/git/oilshell/oil/opy/byterun/pyvm2.py", line 88, in run_code val = vm.run_frame(frame) File "/home/andy/git/oilshell/oil/opy/byterun/pyvm2.py", line 327, in run_frame raise exctype, value, tb TypeError: can only concatenate list (not "int") to list |
mksh | 8 Apply vectorized operations on ${a[*]} stdout: stderr: _tmp/spec-bin/mksh: <stdin>[2]: ${a[*]#-}: bad substitution |