extglob-files () { run-file extglob-files "$@" } run-file () { local spec_name=$1; shift; sh-spec spec/$spec_name.test.sh --compare-shells --oils-bin-dir $PWD/bin "$@" } extglob-files: spec test case results

Results for extglob-files.test.sh

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

Details on runs that didn't PASS

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
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
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
osh14 Extended glob in assignment builtin

stdout:
stderr: 
  typeset -@(*.py) myvar
          ^
[ stdin ]:5: fatal: Extended glob not allowed in this word
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
osh16 Extended glob with word splitting

stdout:
['a b*.@(cc|h)']
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
mksh22 failglob

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