run-file () { local spec_name=$1; shift; local spec_file=spec/$spec_name.test.sh; local suite; suite=$(test/sh_spec.py --print-spec-suite $spec_file); local spec_subdir; case $suite in osh) spec_subdir='osh-cpp' ;; ysh) spec_subdir='ysh-cpp' ;; *) die "Invalid suite $suite" ;; esac; local base_dir=_tmp/spec/$spec_subdir; mkdir -v -p $base_dir; sh-spec $spec_file --timeout 10 --oils-bin-dir $PWD/bin --oils-cpp-bin-dir $REPO_ROOT/_bin/cxx-asan --tsv-output $base_dir/${spec_name}.tsv "$@" } globignore: spec test case results

Results for globignore.test.sh

statusoshosh-cpp
FAIL 1414
total1414
caseoshosh-cppdescription
0FAIL FAIL Don't glob flags on file system with GLOBIGNORE
detailsdetails
1FAIL FAIL basic star case -> ignore files with txt extension
detailsdetails
2FAIL FAIL basic question mark case -> ignore txt files with one char filename
detailsdetails
3FAIL FAIL multiple patterns -> ignore files with o or h extensions
detailsdetails
4FAIL FAIL ignore specific file
detailsdetails
5FAIL FAIL ignore contents of specific directories
detailsdetails
6FAIL FAIL find files in subdirectory but not the ignored pattern
detailsdetails
7FAIL FAIL basic range cases
detailsdetails
8FAIL FAIL range cases using character classes
detailsdetails
9FAIL FAIL ignore everything
detailsdetails
10FAIL FAIL treat escaped patterns literally
detailsdetails
11FAIL FAIL resetting globignore reverts to default behaviour
detailsdetails
12FAIL FAIL find dotfiles while ignoring . or ..
detailsdetails
13FAIL FAIL different styles
detailsdetails
0 passed, 0 OK, 0 not implemented, 0 BUG, 14 failed, 0 timeouts, 0 cases skipped
14 failed under osh

Details on runs that didn't PASS

osh0 Don't glob flags on file system with GLOBIGNORE

[osh stdout] Expected u'-* hello zzzz?\n', got 'hello zzzzz'

stdout:
hello zzzzz
stderr:
osh-cpp0 Don't glob flags on file system with GLOBIGNORE

[osh-cpp stdout] Expected u'-* hello zzzz?\n', got ''
[osh-cpp status] Expected 0, got 99

stdout:
stderr: 
osh1 basic star case -> ignore files with txt extension

[osh stdout] Expected 'basic.md\n', got 'basic.md basic.txt\n'

stdout:
basic.md basic.txt
stderr:
osh-cpp1 basic star case -> ignore files with txt extension

[osh-cpp stdout] Expected 'basic.md\n', got 'basic.md basic.txt\n'

stdout:
basic.md basic.txt
stderr:
osh2 basic question mark case -> ignore txt files with one char filename

[osh stdout] Expected '10.txt\n', got '1.txt 10.txt\n'

stdout:
1.txt 10.txt
stderr:
osh-cpp2 basic question mark case -> ignore txt files with one char filename

[osh-cpp stdout] Expected '10.txt\n', got '1.txt 10.txt\n'

stdout:
1.txt 10.txt
stderr:
osh3 multiple patterns -> ignore files with o or h extensions

[osh stdout] Expected 'hello hello.c\n', got 'hello hello.c hello.h hello.o\n'

stdout:
hello hello.c hello.h hello.o
stderr:
osh-cpp3 multiple patterns -> ignore files with o or h extensions

[osh-cpp stdout] Expected 'hello hello.c\n', got 'hello hello.c hello.h hello.o\n'

stdout:
hello hello.c hello.h hello.o
stderr:
osh4 ignore specific file

[osh stdout] Expected 'src/__main__.py\n', got 'src/__init__.py src/__main__.py\n'

stdout:
src/__init__.py src/__main__.py
stderr:
osh-cpp4 ignore specific file

[osh-cpp stdout] Expected 'src/__main__.py\n', got 'src/__init__.py src/__main__.py\n'

stdout:
src/__init__.py src/__main__.py
stderr:
osh5 ignore contents of specific directories

[osh stdout] Expected 'compose/base.compose.yaml compose/dev.compose.yaml src/a.js src/b.js\n' Got 'compose/base.compose.yaml compose/dev.compose.yaml dist/index.js node_modules/package.js src/a.js src/b.js\n'

stdout:
compose/base.compose.yaml compose/dev.compose.yaml dist/index.js node_modules/package.js src/a.js src/b.js
stderr:
osh-cpp5 ignore contents of specific directories

[osh-cpp stdout] Expected 'compose/base.compose.yaml compose/dev.compose.yaml src/a.js src/b.js\n' Got 'compose/base.compose.yaml compose/dev.compose.yaml dist/index.js node_modules/package.js src/a.js src/b.js\n'

stdout:
compose/base.compose.yaml compose/dev.compose.yaml dist/index.js node_modules/package.js src/a.js src/b.js
stderr:
osh6 find files in subdirectory but not the ignored pattern

[osh stdout] Expected 'dir1/a.txt dir2/a.txt\n', got 'dir1/a.txt dir1/ignore.txt dir2/a.txt dir2/ignore.txt\n'

stdout:
dir1/a.txt dir1/ignore.txt dir2/a.txt dir2/ignore.txt
stderr:
osh-cpp6 find files in subdirectory but not the ignored pattern

[osh-cpp stdout] Expected 'dir1/a.txt dir2/a.txt\n', got 'dir1/a.txt dir1/ignore.txt dir2/a.txt dir2/ignore.txt\n'

stdout:
dir1/a.txt dir1/ignore.txt dir2/a.txt dir2/ignore.txt
stderr:
osh7 basic range cases

[osh stdout] Expected 'A B C D c d\nD a b c d\na b\n', got 'A B C D a b c d\nA B C D a b c d\nA B C D a b c d\n'

stdout:
A B C D a b c d
A B C D a b c d
A B C D a b c d
stderr:
osh-cpp7 basic range cases

[osh-cpp stdout] Expected 'A B C D c d\nD a b c d\na b\n', got 'A B C D a b c d\nA B C D a b c d\nA B C D a b c d\n'

stdout:
A B C D a b c d
A B C D a b c d
A B C D a b c d
stderr:
osh8 range cases using character classes

[osh stdout] Expected '.env _testing.py\n20231114.log has space.docx pyproject.toml\n.env 20231114.log _testing.py pyproject.toml\nhas space.docx pyproject.toml\n' Got '20231114.log _testing.py has space.docx pyproject.toml\n20231114.log _testing.py has space.docx pyproject.toml\n20231114.log _testing.py has space.docx pyproject.toml\n20231114.log _testing.py has space.docx pyproject.toml\n'

stdout:
20231114.log _testing.py has space.docx pyproject.toml
20231114.log _testing.py has space.docx pyproject.toml
20231114.log _testing.py has space.docx pyproject.toml
20231114.log _testing.py has space.docx pyproject.toml
stderr:
osh-cpp8 range cases using character classes

[osh-cpp stdout] Expected '.env _testing.py\n20231114.log has space.docx pyproject.toml\n.env 20231114.log _testing.py pyproject.toml\nhas space.docx pyproject.toml\n' Got '20231114.log _testing.py has space.docx pyproject.toml\n20231114.log _testing.py has space.docx pyproject.toml\n20231114.log _testing.py has space.docx pyproject.toml\n20231114.log _testing.py has space.docx pyproject.toml\n'

stdout:
20231114.log _testing.py has space.docx pyproject.toml
20231114.log _testing.py has space.docx pyproject.toml
20231114.log _testing.py has space.docx pyproject.toml
20231114.log _testing.py has space.docx pyproject.toml
stderr:
osh9 ignore everything

[osh stdout] Expected '*\n', got '1.txt 2.log 3.md _tmp\n'

stdout:
1.txt 2.log 3.md _tmp
stderr:
osh-cpp9 ignore everything

[osh-cpp stdout] Expected '*\n', got '1.txt 2.log 3.md _tmp\n'

stdout:
1.txt 2.log 3.md _tmp
stderr:
osh10 treat escaped patterns literally

[osh stdout] Expected 'escape-10.txt\n', got 'escape*.txt escape-10.txt\n'

stdout:
escape*.txt escape-10.txt
stderr:
osh-cpp10 treat escaped patterns literally

[osh-cpp stdout] Expected 'escape-10.txt\n', got 'escape*.txt escape-10.txt\n'

stdout:
escape*.txt escape-10.txt
stderr:
osh11 resetting globignore reverts to default behaviour

[osh stdout] Expected '*.*\nreset.txt\n', got 'reset.txt\nreset.txt\n'

stdout:
reset.txt
reset.txt
stderr:
osh-cpp11 resetting globignore reverts to default behaviour

[osh-cpp stdout] Expected '*.*\nreset.txt\n', got 'reset.txt\nreset.txt\n'

stdout:
reset.txt
reset.txt
stderr:
osh12 find dotfiles while ignoring . or ..

[osh stdout] Expected '.env\n', got '. .. .env\n'

stdout:
. .. .env
stderr:
  shopt -u globskipdots
  ^~~~~
[ stdin ]:1: 'shopt' got invalid option 'globskipdots'
osh-cpp12 find dotfiles while ignoring . or ..

[osh-cpp stdout] Expected '.env\n', got '. .. .env\n'

stdout:
. .. .env
stderr:
  shopt -u globskipdots
  ^~~~~
[ stdin ]:1: 'shopt' got invalid option 'globskipdots'
osh13 different styles

[osh stdout] Expected '*\n*\n*\n*\n', got '_tmp image.jpeg\n_tmp image.jpeg\n_tmp image.jpeg\n_tmp image.jpeg\n'

stdout:
_tmp image.jpeg
_tmp image.jpeg
_tmp image.jpeg
_tmp image.jpeg
stderr:
osh-cpp13 different styles

[osh-cpp stdout] Expected '*\n*\n*\n*\n', got '_tmp image.jpeg\n_tmp image.jpeg\n_tmp image.jpeg\n_tmp image.jpeg\n'

stdout:
_tmp image.jpeg
_tmp image.jpeg
_tmp image.jpeg
_tmp image.jpeg
stderr: