Results for extended-glob.test.sh

statusbashmkshosh
pass 18132
ok 030
N-I 010
BUG 010
FAIL 0016
total181818
casebashmkshoshdescription
0pass pass FAIL @() matches exactly one of the patterns
details
1pass pass FAIL ?() matches 0 or 1
details
2pass pass FAIL *() matches 0 or more
details
3pass pass FAIL +() matches 1 or more
details
4pass pass FAIL !(*.h|*.cc) to match everything except C++
details
5pass pass FAIL Two adjacent alternations
details
6pass pass FAIL Nested extended glob pattern
details
7pass pass FAIL Extended glob patterns with spaces
details
8pass pass FAIL Filenames with spaces
details
9pass BUG pass nullglob with extended glob
details
10pass ok FAIL glob other punctuation chars (lexer mode)
detailsdetails
11pass N-I FAIL dynamic extglob from variable
detailsdetails
12pass pass pass Extended glob syntax in bad redirect context
13pass ok FAIL Extended glob as argument to ${undef:-} (dynamic globbing)
detailsdetails
14pass ok FAIL Extended glob in assignment builtin
detailsdetails
15pass pass FAIL Extended glob in same word as array
details
16pass pass FAIL Extended glob with word splitting
details
17pass pass FAIL In Array Literal and for loop
details
33 passed, 3 OK, 1 not implemented, 1 BUG, 16 failed, 0 timeouts, 0 cases skipped
16 failed under osh

Details on runs that didn't PASS

osh0 @() matches exactly one of the patterns

[osh stdout] Expected 'bar.cc bar.h baz.h foo.cc foo.h\n', got 'bar.ccbar.hbaz.hfoo.ccfoo.h\n'

stdout:
bar.ccbar.hbaz.hfoo.ccfoo.h
stderr:
osh1 ?() matches 0 or 1

[osh stdout] Expected 'foo. foo.cc foo.h\n', got 'foo.foo.ccfoo.h\n'

stdout:
foo.foo.ccfoo.h
stderr:
osh2 *() matches 0 or more

[osh stdout] Expected 'eg1/_ eg1/_One eg1/_OneOne eg1/_OneTwo eg1/_TwoTwo\n', got 'eg1/_eg1/_Oneeg1/_OneOneeg1/_OneTwoeg1/_TwoTwo\n'

stdout:
eg1/_eg1/_Oneeg1/_OneOneeg1/_OneTwoeg1/_TwoTwo
stderr:
osh3 +() matches 1 or more

[osh stdout] Expected 'eg2/_One eg2/_OneOne eg2/_OneTwo eg2/_TwoTwo\n', got 'eg2/_Oneeg2/_OneOneeg2/_OneTwoeg2/_TwoTwo\n'

stdout:
eg2/_Oneeg2/_OneOneeg2/_OneTwoeg2/_TwoTwo
stderr:
osh4 !(*.h|*.cc) to match everything except C++

[osh stdout] Expected 'extglob2/bar.py extglob2/baz.py extglob2/foo.py\n', got 'extglob2/bar.pyextglob2/baz.pyextglob2/foo.py\n'

stdout:
extglob2/bar.pyextglob2/baz.pyextglob2/foo.py
stderr:
osh5 Two adjacent alternations

[osh 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/ab2/ac2/cb2/cc\n2/ab2/ac2/bb2/bc2/cb2/cc\n2/ab2/ac\n'

stdout:
2/ab2/ac2/cb2/cc
2/ab2/ac2/bb2/bc2/cb2/cc
2/ab2/ac
stderr:
osh6 Nested extended glob pattern

[osh stdout] Expected 'eg6/ab eg6/az\neg6/ac eg6/ad eg6/az\n', got 'eg6/abeg6/az\neg6/aceg6/adeg6/az\n'

stdout:
eg6/abeg6/az
eg6/aceg6/adeg6/az
stderr:
osh7 Extended glob patterns with spaces

[osh stdout] Expected "['eg4/a b', 'eg4/foo']\n", got "['eg4/a beg4/foo']\n"

stdout:
['eg4/a beg4/foo']
stderr:
osh8 Filenames with spaces

[osh stdout] Expected "['eg5/a bcd', 'eg5/a bde']\n", got "['eg5/a bcdeg5/a bde']\n"

stdout:
['eg5/a bcdeg5/a bde']
stderr:
mksh9 nullglob with extended glob

stdout:
['eg6/@(no|matches)']
stderr:
mksh: <stdin>[1]: shopt: not found
mksh: <stdin>[2]: shopt: not found
mkdir: cannot create directory ‘eg6’: File exists
mksh10 glob other punctuation chars (lexer mode)

stdout:
['__#', '__&&', '__<>', '__{}', '__|']
stderr:
mksh: <stdin>[1]: shopt: not found
osh10 glob other punctuation chars (lexer mode)

[osh stdout] Expected "['__<>', '__|', '__{}', '__&&', '__#']\n", got "['__#__&&__<>__{}']\n"

stdout:
['__#__&&__<>__{}']
stderr:
mksh11 dynamic extglob from variable

stdout:
eg3/@(foo|bar) eg3/@(foo|bar)
stderr:
mksh: <stdin>[1]: shopt: not found
osh11 dynamic extglob from variable

[osh stdout] Expected 'eg3/bar eg3/foo eg3/@(foo|bar)\n', got 'eg3/@(foo|bar) eg3/@(foo|bar)\n'

stdout:
eg3/@(foo|bar) eg3/@(foo|bar)
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)

[osh 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:
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

[osh stdout] Expected 'status=2\n', got ''
[osh status] Expected 0, got 1
[osh stderr] Found 'Traceback (most recent'

stdout:
stderr: 
Traceback (most recent call last):
  File "/home/travis/build/oilshell/oil/bin/oil.py", line 358, in <module>
    sys.exit(main(sys.argv))
  File "/home/travis/build/oilshell/oil/bin/oil.py", line 301, in main
    return AppBundleMain(argv)
  File "/home/travis/build/oilshell/oil/bin/oil.py", line 261, in AppBundleMain
    loader, line_input)
  File "/home/travis/build/oilshell/oil/core/shell.py", line 675, in Main
    cmd_flags=cmd_eval.IsMainProgram)
  File "/home/travis/build/oilshell/oil/core/main_loop.py", line 324, in Batch
    is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, cmd_flags=cmd_flags)
  File "/home/travis/build/oilshell/oil/osh/cmd_eval.py", line 1498, in ExecuteAndCatch
    status = self._Execute(node)
  File "/home/travis/build/oilshell/oil/osh/cmd_eval.py", line 1345, in _Execute
    status, check_errexit = self._Dispatch(node, pipeline_st)
  File "/home/travis/build/oilshell/oil/osh/cmd_eval.py", line 599, in _Dispatch
    cmd_val = self.word_ev.EvalWordSequence2(words, allow_assign=True)
  File "/home/travis/build/oilshell/oil/osh/word_eval.py", line 2081, in EvalWordSequence2
    return self._EvalAssignBuiltin(builtin_id, val0.s, words)
  File "/home/travis/build/oilshell/oil/osh/word_eval.py", line 1945, in _EvalAssignBuiltin
    argv = self._EvalWordToArgv(w)
  File "/home/travis/build/oilshell/oil/osh/word_eval.py", line 1873, in _EvalWordToArgv
    frames = _MakeWordFrames(part_vals)
  File "/home/travis/build/oilshell/oil/osh/word_eval.py", line 238, in _MakeWordFrames
    raise AssertionError()
AssertionError
osh15 Extended glob in same word as array

[osh 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.cca b c.py']\n"
[osh status] Expected 0, got 1

stdout:
['a b', 'c']
['star', 'glob', 'a b c.py']
['star', 'extglob', 'a b c.cca 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

[osh stdout] Expected "['a', 'bar.cc', 'bar.h']\n", got '[]\n'

stdout:
[]
stderr:
osh17 In Array Literal and for loop

[osh stdout] Expected 'bar.py\nfoo.py\n---\nzzz bar.py foo.py\n', got 'bar.pyfoo.py\n---\nzzz bar.pyfoo.py\n'

stdout:
bar.pyfoo.py
---
zzz bar.pyfoo.py
stderr: