spec test index / oilshell.org
case | dash | bash | mksh | ash | osh | osh_ALT | osh-byterun | description |
0 | pass | pass | pass | pass | pass | pass | pass | glob double quote escape |
1 | pass | pass | pass | pass | pass | pass | pass | glob single quote escape |
2 | pass | pass | pass | pass | pass | pass | pass | glob backslash escape |
3 | pass | pass | pass | pass | pass | pass | pass | 1 char glob |
4 | pass | pass | pass | pass | pass | pass | pass | 0 char glob -- does NOT work |
5 | pass | pass | pass | pass | pass | pass | pass | looks like glob at the start, but isn't |
6 | pass | pass | pass | pass | pass | pass | pass | looks like glob plus negation at the start, but isn't |
7 | pass | pass | pass | pass | pass | pass | pass | glob can expand to command and arg |
8 | pass | pass | pass | pass | pass | pass | pass | glob after var expansion |
9 | pass | pass | pass | pass | pass | pass | pass | quoted var expansion with glob meta characters |
10 | pass | pass | pass | pass | pass | pass | pass | glob after "$@" expansion |
11 | pass | pass | pass | pass | pass | pass | pass | glob after $@ expansion |
12 | pass | pass | pass | pass | pass | pass | pass | no glob after ~ expansion |
13 | N-I | pass | pass | N-I | pass | pass | pass | store literal globs in array then expand |
details | details | |||||||
14 | N-I | pass | pass | N-I | pass | pass | pass | glob inside array |
details | details | |||||||
15 | pass | pass | pass | pass | pass | pass | pass | glob with escaped - in char class |
16 | pass | pass | BUG | pass | pass | pass | pass | glob with char class expression |
details | ||||||||
17 | pass | pass | pass | pass | pass | pass | pass | glob double quotes |
18 | pass | pass | pass | pass | pass | pass | pass | glob escaped |
19 | pass | pass | BUG | pass | pass | pass | pass | : escaped |
details | ||||||||
20 | pass | BUG | pass | pass | pass | pass | pass | Redirect to glob, not evaluated |
details | ||||||||
21 | pass | pass | pass | pass | pass | pass | pass | Glob after var manipulation |
22 | pass | pass | pass | pass | pass | pass | pass | Glob after part joining |
23 | pass | pass | pass | pass | pass | pass | pass | Glob flags on file system |
24 | pass | pass | pass | pass | pass | pass | pass | set -o noglob |
25 | N-I | pass | N-I | N-I | pass | pass | pass | shopt -s nullglob |
details | details | details | ||||||
26 | N-I | pass | N-I | N-I | FAIL | FAIL | FAIL | shopt -s failglob |
details | details | details | details | details | details | |||
27 | N-I | pass | N-I | N-I | FAIL | FAIL | FAIL | Don't glob flags on file system with GLOBIGNORE |
details | details | details | details | details | details | |||
28 | BUG | pass | pass | pass | pass | pass | pass | Splitting/Globbing doesn't happen on local assignment |
details | ||||||||
29 | pass | pass | pass | pass | pass | pass | pass | Glob of unescaped [[] and []] |
30 | BUG | pass | BUG | pass | pass | pass | pass | Glob of negated unescaped [[] and []] |
details | details | |||||||
31 | N-I | pass | pass | pass | FAIL | FAIL | FAIL | PatSub of unescaped [[] and []] |
details | details | details | details | |||||
32 | N-I | pass | BUG | pass | FAIL | FAIL | FAIL | PatSub of negated unescaped [[] and []] |
details | details | details | details | details |
197 passed, 0 ok, 15 known unimplemented, 7 known bugs, 4 failed, 0 skipped
dash | 13 store literal globs in array then expand stdout: stderr: _tmp/spec-bin/dash: 2: Syntax error: "(" unexpected |
ash | 13 store literal globs in array then expand stdout: stderr: _tmp/spec-bin/ash: syntax error: unexpected "(" |
dash | 14 glob inside array stdout: stderr: _tmp/spec-bin/dash: 2: Syntax error: "(" unexpected |
ash | 14 glob inside array stdout: stderr: _tmp/spec-bin/ash: syntax error: unexpected "(" |
mksh | 16 glob with char class expression stdout: _tmp/*.[[:punct:]E]stderr: |
mksh | 19 : escaped stdout: _tmp/*.[[:punct:]] _tmp/*.[[:punct:]]stderr: |
bash | 20 Redirect to glob, not evaluated stdout: stderr: cat: '_tmp/*.F': No such file or directory |
dash | 25 shopt -s nullglob stdout: ['_tmp/spec-tmp/*.nonexistent'] ['_tmp/spec-tmp/*.nonexistent']stderr: _tmp/spec-bin/dash: 2: shopt: not found |
mksh | 25 shopt -s nullglob stdout: ['_tmp/spec-tmp/*.nonexistent'] ['_tmp/spec-tmp/*.nonexistent']stderr: _tmp/spec-bin/mksh: <stdin>[2]: shopt: not found |
ash | 25 shopt -s nullglob stdout: ['_tmp/spec-tmp/*.nonexistent'] ['_tmp/spec-tmp/*.nonexistent']stderr: _tmp/spec-bin/ash: shopt: not found |
dash | 26 shopt -s failglob stdout: ['*.ZZ'] ['*.ZZ'] status=0stderr: _tmp/spec-bin/dash: 2: shopt: not found |
mksh | 26 shopt -s failglob stdout: ['*.ZZ'] ['*.ZZ'] status=0stderr: _tmp/spec-bin/mksh: <stdin>[2]: shopt: not found |
ash | 26 shopt -s failglob stdout: ['*.ZZ'] ['*.ZZ'] status=0stderr: _tmp/spec-bin/ash: shopt: not found |
osh | 26 shopt -s failglob [osh stdout] Expected u"['*.ZZ']\nstatus=1\n", got "['*.ZZ']\n" [osh status] Expected 0, got 1 stdout: ['*.ZZ']stderr: Traceback (most recent call last): File "/home/andy/git/oilshell/oil/bin/oil.py", line 732, in <module> main(sys.argv) File "/home/andy/git/oilshell/oil/bin/oil.py", line 701, in main sys.exit(AppBundleMain(argv)) File "/home/andy/git/oilshell/oil/bin/oil.py", line 675, in AppBundleMain status = ShellMain('osh', argv0, main_argv, login_shell) File "/home/andy/git/oilshell/oil/bin/oil.py", line 507, in ShellMain status = main_loop.Batch(ex, c_parser, arena, nodes_out=nodes_out) File "/home/andy/git/oilshell/oil/core/main_loop.py", line 124, in Batch is_control_flow, is_fatal = ex.ExecuteAndCatch(node) File "/home/andy/git/oilshell/oil/osh/cmd_exec.py", line 1241, in ExecuteAndCatch status = self._Execute(node, fork_external=fork_external) File "/home/andy/git/oilshell/oil/osh/cmd_exec.py", line 1189, in _Execute status, check_errexit = self._Dispatch(node, fork_external) File "/home/andy/git/oilshell/oil/osh/cmd_exec.py", line 718, in _Dispatch argv = self.word_ev.EvalWordSequence(words) File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1123, in EvalWordSequence return self._EvalWordSequence(words) File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1113, in _EvalWordSequence self._EvalWordFrame(frame, argv) File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1066, in _EvalWordFrame results = self.globber.Expand(a) File "/home/andy/git/oilshell/oil/osh/glob_.py", line 345, in Expand raise NotImplementedError NotImplementedError |
osh_ALT | 26 shopt -s failglob [osh_ALT stdout] Expected u"['*.ZZ']\nstatus=1\n", got "['*.ZZ']\n" [osh_ALT status] Expected 0, got 1 stdout: ['*.ZZ']stderr: Traceback (most recent call last): File "/home/andy/git/oilshell/oil/bin/oil.py", line 719, in _cpython_main_hook main(sys.argv) File "/home/andy/git/oilshell/oil/bin/oil.py", line 701, in main sys.exit(AppBundleMain(argv)) File "/home/andy/git/oilshell/oil/bin/oil.py", line 694, in AppBundleMain return readlink.main(main_argv) File "/home/andy/git/oilshell/oil/bin/oil.py", line 507, in ShellMain status = main_loop.Batch(ex, c_parser, arena, nodes_out=nodes_out) File "/home/andy/git/oilshell/oil/core/main_loop.py", line 131, in Batch return ex.LastStatus() File "/home/andy/git/oilshell/oil/osh/cmd_exec.py", line 1241, in ExecuteAndCatch status = self._Execute(node, fork_external=fork_external) File "/home/andy/git/oilshell/oil/osh/cmd_exec.py", line 1189, in _Execute status, check_errexit = self._Dispatch(node, fork_external) File "/home/andy/git/oilshell/oil/osh/cmd_exec.py", line 1134, in _Dispatch libc.print_time(real, user, sys_) File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1123, in EvalWordSequence return self._EvalWordSequence(words) File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1113, in _EvalWordSequence self._EvalWordFrame(frame, argv) File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1066, in _EvalWordFrame results = self.globber.Expand(a) File "/home/andy/git/oilshell/oil/osh/glob_.py", line 345, in Expand raise NotImplementedError NotImplementedError FATAL: couldn't import from app bundle '_tmp/oil-tar-test/oil-0.6.pre15/_bin/osh' (1) Stripping the oil.ovm binary may cause this error. See https://github.com/oilshell/oil/issues/47 |
osh-byterun | 26 shopt -s failglob [osh-byterun stdout] Expected u"['*.ZZ']\nstatus=1\n", got "['*.ZZ']\n" [osh-byterun status] Expected 0, got 1 stdout: ['*.ZZ']stderr: FATAL: |
dash | 27 Don't glob flags on file system with GLOBIGNORE stdout: hello zzzzzstderr: |
mksh | 27 Don't glob flags on file system with GLOBIGNORE stdout: hello zzzzzstderr: |
ash | 27 Don't glob flags on file system with GLOBIGNORE stdout: hello zzzzzstderr: |
osh | 27 Don't glob flags on file system with GLOBIGNORE [osh stdout] Expected u'-* hello zzzz?\n', got 'hello zzzzz' stdout: hello zzzzzstderr: |
osh_ALT | 27 Don't glob flags on file system with GLOBIGNORE [osh_ALT stdout] Expected u'-* hello zzzz?\n', got '' [osh_ALT status] Expected 0, got 99 stdout: stderr: |
osh-byterun | 27 Don't glob flags on file system with GLOBIGNORE [osh-byterun stdout] Expected u'-* hello zzzz?\n', got 'hello zzzzz' stdout: hello zzzzzstderr: |
dash | 28 Splitting/Globbing doesn't happen on local assignment stdout: stderr: _tmp/spec-bin/dash: 2: local: INSTALL.txt: bad variable name |
dash | 30 Glob of negated unescaped [[] and []] stdout: _[^[z] _[^]z] _[^[z] _[^]z]stderr: |
mksh | 30 Glob of negated unescaped [[] and []] stdout: _[^[z] _[^]z] _[^[z] _[^]z]stderr: |
dash | 31 PatSub of unescaped [[] and []] stdout: stderr: _tmp/spec-bin/dash: 2: Bad substitution |
osh | 31 PatSub of unescaped [[] and []] [osh stdout] Expected '<foo]\n[foo>\n<foo]\n[foo>\n', got '<foo]\n[foo]\n[foo]\n[foo>\n' stdout: <foo] [foo] [foo] [foo>stderr: |
osh_ALT | 31 PatSub of unescaped [[] and []] [osh_ALT stdout] Expected '<foo]\n[foo>\n<foo]\n[foo>\n', got '<foo]\n[foo]\n[foo]\n[foo>\n' stdout: <foo] [foo] [foo] [foo>stderr: |
osh-byterun | 31 PatSub of unescaped [[] and []] [osh-byterun stdout] Expected '<foo]\n[foo>\n<foo]\n[foo>\n', got '<foo]\n[foo]\n[foo]\n[foo>\n' stdout: <foo] [foo] [foo] [foo>stderr: |
dash | 32 PatSub of negated unescaped [[] and []] stdout: stderr: _tmp/spec-bin/dash: 2: Bad substitution |
mksh | 32 PatSub of negated unescaped [[] and []] stdout: <foo] [foo> <foo]stderr: |
osh | 32 PatSub of negated unescaped [[] and []] [osh stdout] Expected '[<<<<\n>>>>]\n[<<<<\n', got '[<<<<\n[foo]\n' [osh status] Expected 0, got 1 stdout: [<<<< [foo]stderr: Traceback (most recent call last): File "/home/andy/git/oilshell/oil/bin/oil.py", line 732, in <module> main(sys.argv) File "/home/andy/git/oilshell/oil/bin/oil.py", line 701, in main sys.exit(AppBundleMain(argv)) File "/home/andy/git/oilshell/oil/bin/oil.py", line 675, in AppBundleMain status = ShellMain('osh', argv0, main_argv, login_shell) File "/home/andy/git/oilshell/oil/bin/oil.py", line 507, in ShellMain status = main_loop.Batch(ex, c_parser, arena, nodes_out=nodes_out) File "/home/andy/git/oilshell/oil/core/main_loop.py", line 124, in Batch is_control_flow, is_fatal = ex.ExecuteAndCatch(node) File "/home/andy/git/oilshell/oil/osh/cmd_exec.py", line 1241, in ExecuteAndCatch status = self._Execute(node, fork_external=fork_external) File "/home/andy/git/oilshell/oil/osh/cmd_exec.py", line 1189, in _Execute status, check_errexit = self._Dispatch(node, fork_external) File "/home/andy/git/oilshell/oil/osh/cmd_exec.py", line 718, in _Dispatch argv = self.word_ev.EvalWordSequence(words) File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1123, in EvalWordSequence return self._EvalWordSequence(words) File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1096, in _EvalWordSequence self._EvalWordToParts(w, False, part_vals) # not double quoted File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 897, in _EvalWordToParts self._EvalWordPart(p, part_vals, quoted=quoted) File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 860, in _EvalWordPart self._EvalBracedVarSub(part, part_vals, quoted) File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 681, in _EvalBracedVarSub regex, warnings = glob_.GlobToERE(pat_val.s) File "/home/andy/git/oilshell/oil/osh/glob_.py", line 297, in GlobToERE regex = _GenerateERE(parts) File "/home/andy/git/oilshell/oil/osh/glob_.py", line 254, in _GenerateERE raise AssertionError(part.id) AssertionError: <Id_t Glob_Caret 250> |
osh_ALT | 32 PatSub of negated unescaped [[] and []] [osh_ALT stdout] Expected '[<<<<\n>>>>]\n[<<<<\n', got '[<<<<\n[foo]\n' [osh_ALT status] Expected 0, got 1 stdout: [<<<< [foo]stderr: Traceback (most recent call last): File "/home/andy/git/oilshell/oil/bin/oil.py", line 719, in _cpython_main_hook main(sys.argv) File "/home/andy/git/oilshell/oil/bin/oil.py", line 701, in main sys.exit(AppBundleMain(argv)) File "/home/andy/git/oilshell/oil/bin/oil.py", line 694, in AppBundleMain return readlink.main(main_argv) File "/home/andy/git/oilshell/oil/bin/oil.py", line 507, in ShellMain status = main_loop.Batch(ex, c_parser, arena, nodes_out=nodes_out) File "/home/andy/git/oilshell/oil/core/main_loop.py", line 131, in Batch return ex.LastStatus() File "/home/andy/git/oilshell/oil/osh/cmd_exec.py", line 1241, in ExecuteAndCatch status = self._Execute(node, fork_external=fork_external) File "/home/andy/git/oilshell/oil/osh/cmd_exec.py", line 1189, in _Execute status, check_errexit = self._Dispatch(node, fork_external) File "/home/andy/git/oilshell/oil/osh/cmd_exec.py", line 1134, in _Dispatch libc.print_time(real, user, sys_) File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1123, in EvalWordSequence return self._EvalWordSequence(words) File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1096, in _EvalWordSequence self._EvalWordToParts(w, False, part_vals) # not double quoted File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 897, in _EvalWordToParts self._EvalWordPart(p, part_vals, quoted=quoted) File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 860, in _EvalWordPart self._EvalBracedVarSub(part, part_vals, quoted) File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 708, in _EvalBracedVarSub begin = self.arith_ev.Eval(op.begin) File "/home/andy/git/oilshell/oil/osh/glob_.py", line 297, in GlobToERE regex = _GenerateERE(parts) File "/home/andy/git/oilshell/oil/osh/glob_.py", line 258, in _GenerateERE out.append('.') AssertionError: <Id_t Glob_Caret 250> FATAL: couldn't import from app bundle '_tmp/oil-tar-test/oil-0.6.pre15/_bin/osh' (1) Stripping the oil.ovm binary may cause this error. See https://github.com/oilshell/oil/issues/47 |
osh-byterun | 32 PatSub of negated unescaped [[] and []] [osh-byterun stdout] Expected '[<<<<\n>>>>]\n[<<<<\n', got '[<<<<\n[foo]\n' [osh-byterun status] Expected 0, got 1 stdout: [<<<< [foo]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 502, 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 AssertionError: <Id_t Glob_Caret 250> |