diff options
Diffstat (limited to 'lib/File/Glob/case.t')
-rwxr-xr-x | lib/File/Glob/case.t | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/lib/File/Glob/case.t b/lib/File/Glob/case.t new file mode 100755 index 0000000000..87f3b9f694 --- /dev/null +++ b/lib/File/Glob/case.t @@ -0,0 +1,60 @@ +#!./perl + +BEGIN { + chdir 't' if -d 't'; + if ($^O eq 'MacOS') { + @INC = qw(: ::lib ::macos:lib); + } else { + @INC = '.'; + push @INC, '../lib'; + } + require Config; import Config; + if ($Config{'extensions'} !~ /\bFile\/Glob\b/i) { + print "1..0\n"; + exit 0; + } + print "1..7\n"; +} +END { + print "not ok 1\n" unless $loaded; +} +use File::Glob qw(:glob csh_glob); +$loaded = 1; +print "ok 1\n"; + +my $pat = $^O eq "MacOS" ? ":op:G*.t" : "op/G*.t"; + +# Test the actual use of the case sensitivity tags, via csh_glob() +import File::Glob ':nocase'; +@a = csh_glob($pat); +print "not " unless @a >= 8; +print "ok 2\n"; + +# This may fail on systems which are not case-PRESERVING +import File::Glob ':case'; +@a = csh_glob($pat); # None should be uppercase +print "not " unless @a == 0; +print "ok 3\n"; + +# Test the explicit use of the GLOB_NOCASE flag +@a = bsd_glob($pat, GLOB_NOCASE); +print "not " unless @a >= 3; +print "ok 4\n"; + +# Test Win32 backslash nastiness... +if ($^O ne 'MSWin32' && $^O ne 'NetWare') { + print "ok 5\nok 6\nok 7\n"; +} +else { + @a = File::Glob::glob("op\\g*.t"); + print "not " unless @a >= 8; + print "ok 5\n"; + mkdir "[]", 0; + @a = File::Glob::glob("\\[\\]", GLOB_QUOTE); + rmdir "[]"; + print "# returned @a\nnot " unless @a == 1; + print "ok 6\n"; + @a = bsd_glob("op\\*", GLOB_QUOTE); + print "not " if @a == 0; + print "ok 7\n"; +} |