diff options
author | Nicholas Clark <nick@ccl4.org> | 2011-01-18 14:41:38 +0000 |
---|---|---|
committer | Nicholas Clark <nick@ccl4.org> | 2011-01-18 14:41:38 +0000 |
commit | dd2d1456ae6cdb1b6f476dd4923e18c36a45b6ea (patch) | |
tree | 5b141f8ffa8d223261a29ae734bd7de9660a3ca8 /lib/File | |
parent | 7d38af623e05a17d603615a1b08d2ce79680292f (diff) | |
download | perl-dd2d1456ae6cdb1b6f476dd4923e18c36a45b6ea.tar.gz |
Convert DosGlob.t to Test::More.
Diffstat (limited to 'lib/File')
-rw-r--r-- | lib/File/DosGlob.t | 85 |
1 files changed, 27 insertions, 58 deletions
diff --git a/lib/File/DosGlob.t b/lib/File/DosGlob.t index 34f93713c2..f94227218e 100644 --- a/lib/File/DosGlob.t +++ b/lib/File/DosGlob.t @@ -9,79 +9,64 @@ BEGIN { @INC = '../lib'; } -print "1..17\n"; +use Test::More tests => 20; # override it in main:: use File::DosGlob 'glob'; require Cwd; -# test if $_ takes as the default my $expected; $expected = $_ = "op/a*.t"; my @r = glob; -print "not " if $_ ne $expected; -print "ok 1\n"; -print "# |@r|\nnot " if @r < 9; -print "ok 2\n"; +is ($_, $expected, 'test if $_ takes as the default'); +cmp_ok(@r, '>=', 9) or diag("|@r|"); -# check if <*/*> works @r = <*/a*.t>; # atleast {argv,abbrev,anydbm,autoloader,append,arith,array,assignwarn,auto}.t -print "# |@r|\nnot " if @r < 9; -print "ok 3\n"; +cmp_ok(@r, '>=', 9, 'check <*/*>') or diag("|@r|"); my $r = scalar @r; -# check if scalar context works @r = (); while (defined($_ = <*/a*.t>)) { print "# $_\n"; push @r, $_; } -print "not " if @r != $r; -print "ok 4\n"; +is(scalar @r, $r, 'check scalar context'); -# check if list context works @r = (); for (<*/a*.t>) { print "# $_\n"; push @r, $_; } -print "not " if @r != $r; -print "ok 5\n"; +is(scalar @r, $r, 'check list context'); -# test if implicit assign to $_ in while() works @r = (); while (<*/a*.t>) { print "# $_\n"; push @r, $_; } -print "not " if @r != $r; -print "ok 6\n"; +is(scalar @r, $r, 'implicit assign to $_ in while()'); -# test if explicit glob() gets assign magic too my @s = (); my $pat = '*/a*.t'; while (glob ($pat)) { print "# $_\n"; push @s, $_; } -print "not " if "@r" ne "@s"; -print "ok 7\n"; +is("@r", "@s", 'explicit glob() gets assign magic too'); -# how about in a different package, like? package Foo; use File::DosGlob 'glob'; +use Test::More; @s = (); $pat = '*/a*.t'; while (glob($pat)) { print "# $_\n"; push @s, $_; } -print "not " if "@r" ne "@s"; -print "ok 8\n"; +is("@r", "@s", 'in a different package'); -# test if different glob ops maintain independent contexts @s = (); while (<*/a*.t>) { my $i = 0; @@ -93,14 +78,12 @@ while (<*/a*.t>) { } print " >\n"; } -print "not " if "@r" ne "@s"; -print "ok 9\n"; +is("@r", "@s", 'different glob ops maintain independent contexts'); -# how about a global override, hm? +@s = (); eval <<'EOT'; use File::DosGlob 'GLOBAL_glob'; package Bar; -@s = (); while (<*/a*.t>) { my $i = 0; print "# $_ <"; @@ -111,41 +94,27 @@ while (<*/a*.t>) { } print " >\n"; } -print "not " if "@r" ne "@s"; -print "ok 10\n"; EOT +is("@r", "@s", 'global override'); # Test that a glob pattern containing ()'s works. # NB. The spaces in the glob patterns need to be backslash escaped. my $filename_containing_parens = "foo (123) bar"; -if (open(TOUCH, ">", $filename_containing_parens)) { - close(TOUCH); - - @r = (); - eval { @r = File::DosGlob::glob("foo\\ (*") }; - print +($@ ? "not " : ""), "ok 11\n"; - print "not " unless (@r == 1 and $r[0] eq $filename_containing_parens); - print "ok 12\n"; - - @r = (); - eval { @r = File::DosGlob::glob("*)\\ bar") }; - print +($@ ? "not " : ""), "ok 13\n"; - print "not " unless (@r == 1 and $r[0] eq $filename_containing_parens); - print "ok 14\n"; - - @r = (); - eval { @r = File::DosGlob::glob("foo\\ (1*3)\\ bar") }; - print +($@ ? "not " : ""), "ok 15\n"; - print "not " unless (@r == 1 and $r[0] eq $filename_containing_parens); - print "ok 16\n"; +SKIP: { + skip("can't create '$filename_containing_parens': $!", 12) + unless open my $touch, ">", $filename_containing_parens; + close $touch; + + foreach my $pattern ("foo\\ (*", "*)\\ bar", "foo\\ (1*3)\\ bar") { + @r = (); + eval { @r = File::DosGlob::glob($pattern) }; + is($@, "", "eval for glob($pattern)"); + is(scalar @r, 1); + is($r[0], $filename_containing_parens); + } 1 while unlink $filename_containing_parens; } -else { - for (11..16) { - print "ok $_ # skip - can't create '$filename_containing_parens': $!\n"; - } -} # Test the globbing of a drive relative pattern such as "c:*.pl". # NB. previous versions of DosGlob inserted "./ after the drive letter to @@ -157,7 +126,7 @@ if ($cwd =~ /^([a-zA-Z]:)/) { @r = (); # This assumes we're in the "t" directory. eval { @r = File::DosGlob::glob("${drive}io/*.t") }; - print +((@r and !grep !m|^${drive}io/[^/]*\.t$|, @r) ? "" : "not "), "ok 17\n"; + ok(@r and !grep !m|^${drive}io/[^/]*\.t$|, @r); } else { - print "ok 17\n"; + pass(); } |