Results for extglob-files.test.sh

statusbashmkshkshtoyshsushbrushosh
pass 2218182141918
ok 0200002
N-I 1200002
BUG 0100000
FAIL 00521941
total23232323232323
casebashmkshkshtoyshsushbrushoshdescription
0pass pass pass FAIL pass pass pass @() matches exactly one of the patterns
details
1pass pass pass FAIL pass pass pass ?() matches 0 or 1
details
2pass pass pass FAIL pass pass pass *() matches 0 or more
details
3pass pass pass FAIL pass pass pass +() matches 1 or more
details
4pass pass pass FAIL pass FAIL pass !(*.h|*.cc) to match everything except C++
detailsdetails
5pass pass pass FAIL pass pass pass Two adjacent alternations
details
6pass pass pass FAIL pass pass pass Nested extended glob pattern
details
7pass pass pass FAIL pass FAIL pass Extended glob patterns with spaces
detailsdetails
8pass pass pass FAIL pass pass pass Filenames with spaces
details
9pass BUG FAIL FAIL pass pass pass nullglob with extended glob
detailsdetailsdetails
10pass pass pass FAIL FAIL pass pass Glob other punctuation chars (lexer mode)
detailsdetails
11pass pass pass FAIL FAIL pass pass More glob escaping
detailsdetails
12pass pass pass FAIL FAIL pass FAIL Escaping of pipe (glibc bug, see demo/glibc_fnmatch.c)
detailsdetailsdetails
13pass ok FAIL FAIL pass pass ok Extended glob as argument to ${undef:-} (dynamic globbing)
detailsdetailsdetailsdetails
14pass ok FAIL FAIL FAIL pass ok Extended glob in assignment builtin
detailsdetailsdetailsdetailsdetails
15pass pass pass FAIL FAIL pass N-I Extended glob in same word as array
detailsdetailsdetails
16pass pass pass FAIL pass pass N-I Extended glob with word splitting
detailsdetails
17pass pass pass FAIL pass pass pass In Array Literal and for loop
details
18pass pass pass FAIL pass pass pass No extended glob with simple_word_eval (Oil evaluation)
details
19pass pass pass pass FAIL pass pass no match
details
20N-I N-I FAIL FAIL FAIL FAIL pass dashglob
detailsdetailsdetailsdetailsdetailsdetails
21pass pass pass pass FAIL pass pass noglob
details
22pass N-I FAIL FAIL FAIL FAIL pass failglob
detailsdetailsdetailsdetailsdetails
111 passed, 4 OK, 5 not implemented, 1 BUG, 40 failed, 0 timeouts, 0 cases skipped
1 failed under osh

Details on runs that didn't PASS

toysh0 @() matches exactly one of the patterns

[toysh stdout] Expected 'bar.cc bar.h baz.h foo.cc foo.h\n', got '@(*.cc|*.h)\n'

stdout:
@(*.cc|*.h)
stderr:
sh: shopt: No such file or directory
toysh1 ?() matches 0 or 1

[toysh stdout] Expected 'foo. foo.cc foo.h\n', got 'foo.?(cc|h)\n'

stdout:
foo.?(cc|h)
stderr:
sh: shopt: No such file or directory
toysh2 *() matches 0 or more

[toysh stdout] Expected 'eg1/_ eg1/_One eg1/_OneOne eg1/_OneTwo eg1/_TwoTwo\n' Got 'eg1/_*(One|Two)\n'

stdout:
eg1/_*(One|Two)
stderr:
sh: shopt: No such file or directory
toysh3 +() matches 1 or more

[toysh stdout] Expected 'eg2/_One eg2/_OneOne eg2/_OneTwo eg2/_TwoTwo\n' Got 'eg2/_+(One|Two)\n'

stdout:
eg2/_+(One|Two)
stderr:
sh: shopt: No such file or directory
toysh4 !(*.h|*.cc) to match everything except C++

[toysh stdout] Expected 'extglob2/bar.py extglob2/baz.py extglob2/foo.py\n' Got 'extglob2/!(*.h|*.cc)\n'

stdout:
extglob2/!(*.h|*.cc)
stderr:
sh: shopt: No such file or directory
brush4 !(*.h|*.cc) to match everything except C++

[brush stdout] Expected 'extglob2/bar.py extglob2/baz.py extglob2/foo.py\n' Got 'extglob2/!(*.h|*.cc)\n'

stdout:
extglob2/!(*.h|*.cc)
stderr:
extglob2/foo.py: not found
toysh5 Two adjacent alternations

[toysh stdout] Expected '2/ab 2/ac 2/cb 2/cc\n2/ab 2/ac 2/bb 2/bc 2/cb 2/cc\n2/ab 2/ac\n' Got '2/!(b)@(b|c)\n2/!(b)?@(b|c)\n2/!(b)a@(b|c)\n'

stdout:
2/!(b)@(b|c)
2/!(b)?@(b|c)
2/!(b)a@(b|c)
stderr:
sh: shopt: No such file or directory
toysh6 Nested extended glob pattern

[toysh stdout] Expected 'eg6/ab eg6/az\neg6/ac eg6/ad eg6/az\n', got 'eg6/a@(!(c|d))\neg6/a!(@(ab|b*))\n'

stdout:
eg6/a@(!(c|d))
eg6/a!(@(ab|b*))
stderr:
sh: shopt: No such file or directory
toysh7 Extended glob patterns with spaces

[toysh stdout] Expected "['eg4/a b', 'eg4/foo']\n", got "['eg4/@(a b|foo)']\n"

stdout:
['eg4/@(a b|foo)']
stderr:
sh: shopt: No such file or directory
brush7 Extended glob patterns with spaces

[brush stdout] Expected "['eg4/a b', 'eg4/foo']\n", got "['eg4/@(a', 'b|foo)']\n"

stdout:
['eg4/@(a', 'b|foo)']
stderr:
toysh8 Filenames with spaces

[toysh stdout] Expected "['eg5/a bcd', 'eg5/a bde']\n", got "['eg5/a @(bcd|bde|zzz)']\n"

stdout:
['eg5/a @(bcd|bde|zzz)']
stderr:
sh: shopt: No such file or directory
mksh9 nullglob with extended glob

stdout:
['eg6/@(no|matches)']
['eg6/@(no|matches)']
stderr:
mksh: <stdin>[1]: shopt: not found
mksh: <stdin>[4]: shopt: not found
ksh9 nullglob with extended glob

[ksh stdout] Expected "['eg6/@(no|matches)']\n[]\n", got "['eg6/@(no|matches)']\n['eg6/@(no|matches)']\n"

stdout:
['eg6/@(no|matches)']
['eg6/@(no|matches)']
stderr:
E: ksh: <stdin>[1]: shopt: inaccessible or not found
E: ksh: <stdin>[4]: shopt: inaccessible or not found
toysh9 nullglob with extended glob

[toysh stdout] Expected "['eg6/@(no|matches)']\n[]\n", got "['eg6/@(no|matches)']\n['eg6/@(no|matches)']\n"

stdout:
['eg6/@(no|matches)']
['eg6/@(no|matches)']
stderr:
sh: shopt: No such file or directory
sh: shopt: No such file or directory
toysh10 Glob other punctuation chars (lexer mode)

[toysh stdout] Expected "['__#', '__&&', '__<>', '__aa', '__{}']\n" Got "['@(__aa|__<>|__{}|__#|__&&|)']\n"

stdout:
['@(__aa|__<>|__{}|__#|__&&|)']
stderr:
sh: shopt: No such file or directory
sush10 Glob other punctuation chars (lexer mode)

[sush stdout] Expected "['__#', '__&&', '__<>', '__aa', '__{}']\n" Got "['__#', '__&&', '__aa', '__{}']\n"

stdout:
['__#', '__&&', '__aa', '__{}']
stderr:
toysh11 More glob escaping

[toysh stdout] Expected "['_*', '_?', '_[:]']\n['_*', '_?', '_[:]']\n" Got "['@(_[:]|_*|_?)']\n['@(nested|_?|@(_[:]|_*))']\n"

stdout:
['@(_[:]|_*|_?)']
['@(nested|_?|@(_[:]|_*))']
stderr:
sh: shopt: No such file or directory
sush11 More glob escaping

[sush stdout] Expected "['_*', '_?', '_[:]']\n['_*', '_?', '_[:]']\n" Got '["@(\'_[:]\'|\'_*\'|\'_?\')"]\n["@(nested|\'_?\'|@(\'_[:]\'|\'_*\'))"]\n'

stdout:
["@('_[:]'|'_*'|'_?')"]
["@(nested|'_?'|@('_[:]'|'_*'))"]
stderr:
toysh12 Escaping of pipe (glibc bug, see demo/glibc_fnmatch.c)

[toysh stdout] Expected "['__|', 'foo']\n['__|', 'foo']\n", got "['@(foo|__||bar)']\n['@(foo|__||bar)']\n"

stdout:
['@(foo|__||bar)']
['@(foo|__||bar)']
stderr:
sh: shopt: No such file or directory
sush12 Escaping of pipe (glibc bug, see demo/glibc_fnmatch.c)

[sush stdout] Expected "['__|', 'foo']\n['__|', 'foo']\n", got '[\'__|\']\n["@(\'foo\'|\'__|\'|bar)"]\n'

stdout:
['__|']
["@('foo'|'__|'|bar)"]
stderr:
osh12 Escaping of pipe (glibc bug, see demo/glibc_fnmatch.c)

[osh stdout] Expected "['__|', 'foo']\n['__|', 'foo']\n", got "['foo']\n['foo']\n"

stdout:
['foo']
['foo']
stderr:
mksh13 Extended glob as argument to ${undef:-} (dynamic globbing)

stdout:
bar.py foo.py spam.py
@(foo|bar).py
stderr:
mksh: <stdin>[1]: shopt: not found
ksh13 Extended glob as argument to ${undef:-} (dynamic globbing)

[ksh stdout] Expected 'bar.py foo.py spam.py\nbar.py foo.py\n', got 'bar.py foo.py spam.py\n@(foo|bar).py\n'

stdout:
bar.py foo.py spam.py
@(foo|bar).py
stderr:
E: ksh: <stdin>[1]: shopt: inaccessible or not found
toysh13 Extended glob as argument to ${undef:-} (dynamic globbing)

[toysh stdout] Expected 'bar.py foo.py spam.py\nbar.py foo.py\n', got 'bar.py spam.py foo.py\n@(foo|bar).py\n'

stdout:
bar.py spam.py foo.py
@(foo|bar).py
stderr:
sh: shopt: No such file or directory
osh13 Extended glob as argument to ${undef:-} (dynamic globbing)

stdout:
bar.py foo.py spam.py
stderr:
  echo ${undef:-@(foo|bar).py}
                ^~
[ stdin ]:9: fatal: Extended glob not allowed in this word
mksh14 Extended glob in assignment builtin

stdout:
status=1
stderr:
mksh: <stdin>[1]: shopt: not found
mksh: <stdin>[5]: typeset: -@: unknown option
ksh14 Extended glob in assignment builtin

[ksh stdout] Expected 'status=2\n', got 'status=1\n'

stdout:
status=1
stderr:
E: ksh: <stdin>[1]: shopt: inaccessible or not found
E: ksh: <stdin>[5]: typeset: -@: unknown option
toysh14 Extended glob in assignment builtin

[toysh stdout] Expected 'status=2\n', got 'status=127\n'

stdout:
status=127
stderr:
sh: shopt: No such file or directory
sh: typeset: No such file or directory
sush14 Extended glob in assignment builtin

[sush stdout] Expected 'status=2\n', got 'status=1\n'

stdout:
status=1
stderr:
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 5: -@: not found
osh14 Extended glob in assignment builtin

stdout:
stderr: 
  typeset -@(*.py) myvar
          ^
[ stdin ]:5: fatal: Extended glob not allowed in this word
toysh15 Extended glob in same word as array

[toysh stdout] Expected "['a b', 'c']\n['star', 'glob', 'a b c.py']\n['star', 'extglob', 'a b c.cc', 'a b c.py']\n['at', 'extglob', 'a b', 'cee.cc', 'cee.py']\n" Got "['']\n['star', 'glob', 'bee.py', 'a b c.py', 'cee.py']\n['star', 'extglob', '*@(.py|cc)']\n['at', 'extglob', '*@(.py|cc)']\n"

stdout:
['']
['star', 'glob', 'bee.py', 'a b c.py', 'cee.py']
['star', 'extglob', '*@(.py|cc)']
['at', 'extglob', '*@(.py|cc)']
stderr:
sh: shopt: No such file or directory
set: bad --
sush15 Extended glob in same word as array

[sush stdout] Expected "['a b', 'c']\n['star', 'glob', 'a b c.py']\n['star', 'extglob', 'a b c.cc', 'a b c.py']\n['at', 'extglob', 'a b', 'cee.cc', 'cee.py']\n" Got "['a b', 'c']\n['star', 'glob', 'a b c.py']\n['star', 'extglob', 'a b c.cc', 'a b c.py']\n['at', 'extglob', 'a b', 'a b c.cc', 'a b c.py', 'bee.cc', 'bee.py', 'cee.cc', 'cee.py']\n"

stdout:
['a b', 'c']
['star', 'glob', 'a b c.py']
['star', 'extglob', 'a b c.cc', 'a b c.py']
['at', 'extglob', 'a b', 'a b c.cc', 'a b c.py', 'bee.cc', 'bee.py', 'cee.cc', 'cee.py']
stderr:
osh15 Extended glob in same word as array

stdout:
['a b', 'c']
['star', 'glob', 'a b c.py']
['star', 'extglob', 'a b c.cc', 'a b c.py']
stderr:
  argv.py at extglob "$@"*@(.py|cc)
                     ^
[ stdin ]:13: fatal: Extended globs and arrays can't appear in the same word
toysh16 Extended glob with word splitting

[toysh stdout] Expected "['a', 'bar.cc', 'bar.h']\n", got "['a', 'b*.@(cc|h)']\n"

stdout:
['a', 'b*.@(cc|h)']
stderr:
sh: shopt: No such file or directory
osh16 Extended glob with word splitting

stdout:
['a b*.@(cc|h)']
stderr:
toysh17 In Array Literal and for loop

[toysh stdout] Expected 'bar.py\nfoo.py\n---\nzzz bar.py foo.py\n', got '@(fo*|bar).py\n---\n'
[toysh status] Expected 0, got 2

stdout:
@(fo*|bar).py
---
stderr:
sh: shopt: No such file or directory
main: line 11: sh: syntax error: zzz
toysh18 No extended glob with simple_word_eval (Oil evaluation)

[toysh status] Expected 1, got 127

stdout:
stderr: 
sh: shopt: No such file or directory
sh: shopt: No such file or directory
sh: builtin: No such file or directory
sh: builtin: No such file or directory
sush19 no match

[sush stdout] Expected '@(__nope__)\n@(__nope__*|__nope__?|*|?|[:alpha:]||)\n' Got "@(__nope__)\n@(__nope__*|__nope__?|'*'|'?'|'[:alpha:]'|'|')\n"

stdout:
@(__nope__)
@(__nope__*|__nope__?|'*'|'?'|'[:alpha:]'|'|')
stderr:
bash20 dashglob

stdout:
-dash bar foo
-dash bar foo
stderr:
bash: line 8: shopt: dashglob: invalid shell option name
mksh20 dashglob

stdout:
-dash bar foo
-dash bar foo
stderr:
mksh: <stdin>[1]: shopt: not found
mksh: <stdin>[8]: shopt: not found
ksh20 dashglob

[ksh stdout] Expected '-dash bar foo\nbar foo\n', got '-dash bar foo\n-dash bar foo\n'

stdout:
-dash bar foo
-dash bar foo
stderr:
E: ksh: <stdin>[1]: shopt: inaccessible or not found
E: ksh: <stdin>[8]: shopt: inaccessible or not found
toysh20 dashglob

[toysh stdout] Expected '-dash bar foo\nbar foo\n', got '@(*)\n@(*)\n'

stdout:
@(*)
@(*)
stderr:
sh: shopt: No such file or directory
sh: shopt: No such file or directory
sush20 dashglob

[sush stdout] Expected '-dash bar foo\nbar foo\n', got '-dash bar foo\n-dash bar foo\n'

stdout:
-dash bar foo
-dash bar foo
stderr:
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 8: dashglob: invalid option name
brush20 dashglob

[brush stdout] Expected '-dash bar foo\nbar foo\n', got '-dash bar foo\n-dash bar foo\n'

stdout:
-dash bar foo
-dash bar foo
stderr:
shopt: dashglob: invalid shell option name
sush21 noglob

[sush stdout] Expected '@(*)\n@(__nope__*|__nope__?|*|?|[:alpha:]||)\n' Got "@(*)\n@(__nope__*|__nope__?|'*'|'?'|'[:alpha:]'|'|')\n"

stdout:
@(*)
@(__nope__*|__nope__?|'*'|'?'|'[:alpha:]'|'|')
stderr:
mksh22 failglob

stdout:
@(*)
status=0
foo
status=0
stderr:
mksh: <stdin>[1]: shopt: not found
mksh: <stdin>[7]: shopt: not found
ksh22 failglob

[ksh stdout] Expected 'status=1\nfoo\nstatus=0\n', got '@(*)\nstatus=0\nfoo\nstatus=0\n'

stdout:
@(*)
status=0
foo
status=0
stderr:
E: ksh: <stdin>[1]: shopt: inaccessible or not found
E: ksh: <stdin>[7]: shopt: inaccessible or not found
toysh22 failglob

[toysh stdout] Expected 'status=1\nfoo\nstatus=0\n', got '@(*)\nstatus=0\n@(*)\nstatus=0\n'

stdout:
@(*)
status=0
@(*)
status=0
stderr:
sh: shopt: No such file or directory
sh: shopt: No such file or directory
sush22 failglob

[sush stdout] Expected 'status=1\nfoo\nstatus=0\n', got '@(*)\nstatus=0\nfoo\nstatus=0\n'

stdout:
@(*)
status=0
foo
status=0
stderr:
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 7: shopt: failglob: not supported yet
brush22 failglob

[brush stdout] Expected 'status=1\nfoo\nstatus=0\n', got '@(*)\nstatus=0\nfoo\nstatus=0\n'

stdout:
@(*)
status=0
foo
status=0
stderr: