status | bash | dash | mksh | zsh | osh | |
pass | 12 | 9 | 12 | 11 | 12 | |
ok | 0 | 0 | 0 | 2 | 1 | |
N-I | 1 | 3 | 1 | 1 | 0 | |
BUG | 1 | 2 | 1 | 0 | 0 | |
FAIL | 0 | 0 | 0 | 0 | 1 | |
total | 14 | 14 | 14 | 14 | 14 | |
case | bash | dash | mksh | zsh | osh | description |
0 | pass | pass | pass | pass | pass | ~ expansion in assignment |
1 | pass | BUG | pass | pass | pass | ~ expansion in readonly assignment |
details | ||||||
2 | pass | pass | pass | pass | pass | No ~ expansion in dynamic assignment |
3 | BUG | pass | BUG | pass | pass | No tilde expansion in word that looks like assignment but isn't |
details | details | |||||
4 | pass | pass | pass | pass | pass | tilde expansion of word after redirect |
5 | pass | pass | pass | ok | pass | other user |
details | ||||||
6 | pass | pass | pass | pass | pass | ${undef:-~} |
7 | pass | N-I | pass | pass | pass | ${x//~/~root} |
details | ||||||
8 | pass | pass | pass | pass | pass | x=foo:~ has tilde expansion |
9 | pass | N-I | pass | N-I | FAIL | a[x]=foo:~ has tilde expansion |
details | details | details | ||||
10 | pass | BUG | pass | pass | pass | tilde expansion an assignment keyword |
details | ||||||
11 | pass | pass | pass | pass | ok | x=${undef-~:~} |
details | ||||||
12 | N-I | N-I | N-I | ok | pass | strict tilde |
details | details | details | details | |||
13 | pass | pass | pass | pass | pass | temp assignment x=~ env |
56 passed, 3 OK, 6 not implemented, 4 BUG, 1 failed, 0 timeouts, 0 cases skipped 1 failed under osh
dash | 1 ~ expansion in readonly assignment stdout: ~/srcstderr: |
bash | 3 No tilde expansion in word that looks like assignment but isn't stdout: x=/home/bobstderr: |
mksh | 3 No tilde expansion in word that looks like assignment but isn't stdout: x=/home/bobstderr: |
zsh | 5 other user stdout: stderr: zsh: no such user or named directory: nonexistent |
dash | 7 ${x//~/~root} stdout: stderr: dash: 3: Bad substitution |
dash | 9 a[x]=foo:~ has tilde expansion stdout: stderr: |
zsh | 9 a[x]=foo:~ has tilde expansion stdout: stderr: |
osh | 9 a[x]=foo:~ has tilde expansion [osh stdout] Expected 'foo:/home/bar\nfoo:/home/bar\n', got '' [osh status] Expected 0, got 1 [osh stderr] Found 'Traceback (most recent' stdout: stderr: Traceback (most recent call last): File "/home/uke/oil/bin/oils_for_unix.py", line 202, in <module> sys.exit(main(sys.argv)) File "/home/uke/oil/bin/oils_for_unix.py", line 171, in main return AppBundleMain(argv) File "/home/uke/oil/bin/oils_for_unix.py", line 141, in AppBundleMain return shell.Main('osh', arg_r, environ, login_shell, loader, readline) File "/home/uke/oil/core/shell.py", line 1253, in Main cmd_flags=cmd_eval.IsMainProgram) File "/home/uke/oil/core/main_loop.py", line 336, in Batch was_parsed, status = Batch2(cmd_ev, c_parser, errfmt, cmd_flags=cmd_flags) File "/home/uke/oil/core/main_loop.py", line 401, in Batch2 is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, cmd_flags) File "/home/uke/oil/osh/cmd_eval.py", line 2175, in ExecuteAndCatch status = self._Execute(node) File "/home/uke/oil/osh/cmd_eval.py", line 1974, in _Execute status = self._Dispatch(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 1701, in _Dispatch status = self._DoSimple(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 904, in _DoSimple allow_assign=True) File "/home/uke/oil/osh/word_eval.py", line 2566, in EvalWordSequence2 self._EvalWordToParts(w, part_vals, EXTGLOB_FILES) File "/home/uke/oil/osh/word_eval.py", line 2048, in _EvalWordToParts self._EvalWordPart(p, word_part_vals, eval_flags) File "/home/uke/oil/osh/word_eval.py", line 1956, in _EvalWordPart self._EvalBracedVarSub(part, part_vals, quoted) File "/home/uke/oil/osh/word_eval.py", line 1661, in _EvalBracedVarSub val = self._EvalBracketOp(val, part, quoted, vsub_state, vtest_place) File "/home/uke/oil/osh/word_eval.py", line 1524, in _EvalBracketOp val = self._ArrayIndex(val, part, vtest_place) File "/home/uke/oil/osh/word_eval.py", line 1390, in _ArrayIndex s, error_code = bash_impl.BashArray_GetElement( NameError: global name 'bash_impl' is not defined |
dash | 10 tilde expansion an assignment keyword stdout: foo:~stderr: |
osh | 11 x=${undef-~:~} stdout: /home/bar:~:~stderr: |
bash | 12 strict tilde stdout: ~nonexistent ~nonexistent status=0stderr: bash: line 3: shopt: strict_tilde: invalid shell option name |
dash | 12 strict tilde stdout: ~nonexistent ~nonexistent status=0stderr: dash: 3: shopt: not found |
mksh | 12 strict tilde stdout: ~nonexistent ~nonexistent status=0stderr: mksh: <stdin>[3]: shopt: not found |
zsh | 12 strict tilde stdout: stderr: zsh: no such user or named directory: nonexistent |