Results for brace-expansion.test.sh

casebashmkshzshoshdescription
0pass pass pass pass no expansion
1pass pass pass ok incomplete trailing expansion
details
2pass pass pass ok partial leading expansion
details
3pass pass pass ok partial leading expansion 2
details
4pass pass ok ok } in expansion
detailsdetails
5pass pass pass pass single expansion
6pass pass pass pass double expansion
7pass pass pass pass triple expansion
8pass pass pass pass double expansion with single and double quotes
9pass pass pass pass expansion with mixed quotes
10pass pass pass pass expansion with simple var
11BUG pass pass pass double expansion with simple var -- bash bug
details
12pass pass pass pass double expansion with braced variable
13BUG pass pass pass double expansion with literal and simple var
details
14pass pass pass pass expansion with command sub
15pass pass pass pass expansion with arith sub
16pass pass pass pass double expansion with escaped literals
17BUG pass BUG pass { in expansion
detailsdetails
18pass pass pass pass quoted { in expansion
19pass pass pass pass Empty expansion
20pass ok ok pass Empty alternative
detailsdetails
21pass pass pass pass Empty alternative with empty string suffix
22pass pass pass pass nested brace expansion
23pass pass pass pass triple nested brace expansion
24pass pass pass pass nested and double brace expansion
25pass BUG pass pass expansion on RHS of assignment
details
26pass pass ok pass no expansion with RHS assignment
details
27pass pass pass pass Tilde expansion
28pass ok pass FAIL Tilde expansion with brace expansion
detailsdetails
29pass ok pass FAIL Two kinds of tilde expansion
detailsdetails
30pass pass pass pass Tilde expansion come before var expansion
31pass N-I pass FAIL Number range expansion
detailsdetails
32pass N-I ok FAIL Ascending number range expansion with negative step
detailsdetailsdetails
33pass N-I pass FAIL Descending number range expansion
detailsdetails
34pass N-I ok FAIL Descending number range expansion with negative step
detailsdetailsdetails
35pass N-I N-I FAIL Char range expansion
detailsdetailsdetails
36pass N-I N-I FAIL Char range expansion with step
detailsdetailsdetails
37pass N-I N-I FAIL Descending char range expansion
detailsdetailsdetails
38pass N-I pass FAIL Fixed width number range expansion
detailsdetails
39pass N-I ok FAIL Inconsistent fixed width number range expansion
detailsdetailsdetails
40pass N-I pass FAIL Inconsistent fixed width number range expansion
detailsdetails
41pass ok ok FAIL Side effect in expansion
detailsdetailsdetails

122 passed, 15 ok, 13 known unimplemented, 5 known bugs, 13 failed, 0 skipped

Details on runs that didn't PASS

osh1 incomplete trailing expansion

stdout:
{a,b}_{
stderr:
osh2 partial leading expansion

stdout:
}_{a,b}
stderr:
osh3 partial leading expansion 2

stdout:
{x}_{a,b}
stderr:
zsh4 } in expansion

stdout:
stderr: 
zsh: parse error near `}'
osh4 } in expansion

stdout:
{a,b}}
stderr:
bash11 double expansion with simple var -- bash bug

stdout:
b_c b_d
stderr:
bash13 double expansion with literal and simple var

stdout:
_ _ b_c b_d
stderr:
bash17 { in expansion

stdout:
{a {b
stderr:
zsh17 { in expansion

stdout:
{a {b
stderr:
mksh20 Empty alternative

stdout:
['X', '', 'Y', '']
stderr:
zsh20 Empty alternative

stdout:
['X', '', 'Y', '']
stderr:
mksh25 expansion on RHS of assignment

stdout:
X Y
stderr:
zsh26 no expansion with RHS assignment

stdout:
stderr: 
zsh: parse error near `\n'
mksh28 Tilde expansion with brace expansion

stdout:
foo~/bar ~/bar
stderr:
osh28 Tilde expansion with brace expansion

[osh stdout] Expected b'foo~/bar /home/bob/bar\n', got b'foo~/bar ~/bar\n'

stdout:
foo~/bar ~/bar
stderr:
mksh29 Two kinds of tilde expansion

stdout:
~/src ~root
stderr:
osh29 Two kinds of tilde expansion

[osh stdout] Expected b'/home/bob/src /root\n', got b'~/src ~root\n'

stdout:
~/src ~root
stderr:
mksh31 Number range expansion

stdout:
-{1..8..3}-
stderr:
osh31 Number range expansion

[osh stdout] Expected b'-1- -4- -7-\n', got b'-{1..8..3}-\n'

stdout:
-{1..8..3}-
stderr:
mksh32 Ascending number range expansion with negative step

stdout:
-{1..8..-3}-
stderr:
zsh32 Ascending number range expansion with negative step

stdout:
-7- -4- -1-
stderr:
osh32 Ascending number range expansion with negative step

[osh stdout] Expected b'-1- -4- -7-\n', got b'-{1..8..-3}-\n'

stdout:
-{1..8..-3}-
stderr:
mksh33 Descending number range expansion

stdout:
-{8..1..3}-
stderr:
osh33 Descending number range expansion

[osh stdout] Expected b'-8- -5- -2-\n', got b'-{8..1..3}-\n'

stdout:
-{8..1..3}-
stderr:
mksh34 Descending number range expansion with negative step

stdout:
-{8..1..-3}-
stderr:
zsh34 Descending number range expansion with negative step

stdout:
-2- -5- -8-
stderr:
osh34 Descending number range expansion with negative step

[osh stdout] Expected b'-8- -5- -2-\n', got b'-{8..1..-3}-\n'

stdout:
-{8..1..-3}-
stderr:
mksh35 Char range expansion

stdout:
-{a..e}-
stderr:
zsh35 Char range expansion

stdout:
-{a..e}-
stderr:
osh35 Char range expansion

[osh stdout] Expected b'-a- -b- -c- -d- -e-\n', got b'-{a..e}-\n'

stdout:
-{a..e}-
stderr:
mksh36 Char range expansion with step

stdout:
-{a..e..2}- -{a..e..-2}-
stderr:
zsh36 Char range expansion with step

stdout:
-{a..e..2}- -{a..e..-2}-
stderr:
osh36 Char range expansion with step

[osh stdout] Expected b'-a- -c- -e- -a- -c- -e-\n', got b'-{a..e..2}- -{a..e..-2}-\n'

stdout:
-{a..e..2}- -{a..e..-2}-
stderr:
mksh37 Descending char range expansion

stdout:
-{e..a..2}- -{e..a..-2}-
stderr:
zsh37 Descending char range expansion

stdout:
-{e..a..2}- -{e..a..-2}-
stderr:
osh37 Descending char range expansion

[osh stdout] Expected b'-e- -c- -a- -e- -c- -a-\n', got b'-{e..a..2}- -{e..a..-2}-\n'

stdout:
-{e..a..2}- -{e..a..-2}-
stderr:
mksh38 Fixed width number range expansion

stdout:
-{01..03}-
stderr:
osh38 Fixed width number range expansion

[osh stdout] Expected b'-01- -02- -03-\n', got b'-{01..03}-\n'

stdout:
-{01..03}-
stderr:
mksh39 Inconsistent fixed width number range expansion

stdout:
-{01..003}-
stderr:
zsh39 Inconsistent fixed width number range expansion

stdout:
-01- -02- -03-
stderr:
osh39 Inconsistent fixed width number range expansion

[osh stdout] Expected b'-001- -002- -003-\n', got b'-{01..003}-\n'

stdout:
-{01..003}-
stderr:
mksh40 Inconsistent fixed width number range expansion

stdout:
-{01..3}-
stderr:
osh40 Inconsistent fixed width number range expansion

[osh stdout] Expected b'-01- -02- -03-\n', got b'-{01..3}-\n'

stdout:
-{01..3}-
stderr:
mksh41 Side effect in expansion

stdout:
a-0 b-0 c-0
stderr:
zsh41 Side effect in expansion

stdout:
a-0 b-0 c-0
stderr:
osh41 Side effect in expansion

[osh stdout] Expected b'a-0 b-1 c-2\n', got b''

stdout:
stderr: 
Traceback (most recent call last):
  File "bin/osh", line 388, in <module>
    sys.exit(main(sys.argv))
  File "bin/osh", line 378, in main
    return OshMain(main_argv)
  File "bin/osh", line 337, in OshMain
    status = ex.Execute(node)
  File "/home/andy/git/oil2/bin/../core/cmd_exec.py", line 1111, in Execute
    status = self._Execute(node)
  File "/home/andy/git/oil2/bin/../core/cmd_exec.py", line 974, in _Execute
    status = self._Execute(child)  # last status wins
  File "/home/andy/git/oil2/bin/../core/cmd_exec.py", line 869, in _Execute
    argv = self.ev.EvalWordSequence(words)
  File "/home/andy/git/oil2/bin/../core/word_eval.py", line 1056, in EvalWordSequence
    return self._EvalWordSequence(words)
  File "/home/andy/git/oil2/bin/../core/word_eval.py", line 1039, in _EvalWordSequence
    args = self._EvalWordAndReframe(w)
  File "/home/andy/git/oil2/bin/../core/word_eval.py", line 992, in _EvalWordAndReframe
    part_vals = self._EvalParts(word)
  File "/home/andy/git/oil2/bin/../core/word_eval.py", line 885, in _EvalParts
    for v in self.part_ev._EvalWordPart(p, quoted=quoted):
  File "/home/andy/git/oil2/bin/../core/word_eval.py", line 839, in _EvalWordPart
    if arith_ev.Eval(part.anode):
  File "/home/andy/git/oil2/bin/../core/expr_eval.py", line 64, in Eval
    result = self._Eval(node)
  File "/home/andy/git/oil2/bin/../core/expr_eval.py", line 238, in _Eval
    raise AssertionError("Shouldn't get here")
AssertionError: Shouldn't get here