summaryrefslogtreecommitdiff
path: root/lib/File
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2011-01-18 14:41:38 +0000
committerNicholas Clark <nick@ccl4.org>2011-01-18 14:41:38 +0000
commitdd2d1456ae6cdb1b6f476dd4923e18c36a45b6ea (patch)
tree5b141f8ffa8d223261a29ae734bd7de9660a3ca8 /lib/File
parent7d38af623e05a17d603615a1b08d2ce79680292f (diff)
downloadperl-dd2d1456ae6cdb1b6f476dd4923e18c36a45b6ea.tar.gz
Convert DosGlob.t to Test::More.
Diffstat (limited to 'lib/File')
-rw-r--r--lib/File/DosGlob.t85
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();
}