X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fop%2Fglob.t;h=d03d75fc43da37419dec714edf82a763b9d5b2fd;hb=8a064bd6d0d7a44f3e80bed959e1dc566b57850d;hp=1dd806eb8873495b9c15c45a9df589636284f876;hpb=48beb55fa0a89cedb5fb1dc2234a5526f85daa04;p=p5sagit%2Fp5-mst-13.2.git diff --git a/t/op/glob.t b/t/op/glob.t index 1dd806e..d03d75f 100755 --- a/t/op/glob.t +++ b/t/op/glob.t @@ -5,7 +5,7 @@ BEGIN { @INC = '../lib'; } -print "1..13\n"; +print "1..10\n"; @oops = @ops = ; @@ -17,6 +17,11 @@ elsif ($^O eq 'VMS') { map { $files{lc($_)}++ } <[.op]*>; map { s/;.*$//; delete $files{lc($_)}; } split /[\n]/, `directory/noheading/notrailing/versions=1 [.op]`, } +elsif ($^O eq 'MacOS') { + @oops = @ops = <:op:*>; + map { $files{$_}++ } <:op:*>; + map { delete $files{$_} } split /[\s\n]/, `echo :op:\xc5`; +} else { map { $files{$_}++ } ; map { delete $files{$_} } split /[\s\n]/, `echo op/*`; @@ -27,16 +32,23 @@ if (keys %files) { print $/ eq "\n" ? "ok 2\n" : "not ok 2\n"; -while () { - $not = "not " unless $_ eq shift @ops; - $not = "not at all " if $/ eq "\0"; +if ($^O eq 'MacOS') { + while () { + $not = "not " unless $_ eq shift @ops; + $not = "not at all " if $/ eq "\0"; + } +} else { + while () { + $not = "not " unless $_ eq shift @ops; + $not = "not at all " if $/ eq "\0"; + } } print "${not}ok 3\n"; print $/ eq "\n" ? "ok 4\n" : "not ok 4\n"; # test the "glob" operator -$_ = "op/*"; +$_ = $^O eq 'MacOS' ? ":op:*" : "op/*"; @glops = glob $_; print "@glops" eq "@oops" ? "ok 5\n" : "not ok 5\n"; @@ -53,20 +65,27 @@ for (1..2) { } print $i == 2 ? "ok 7\n" : "not ok 7\n"; -# [ID 20010526.001] localized glob loses value when assigned to - -$j=1; %j=(a=>1); @j=(1); local *j=*j; *j = sub{}; +# ... while ($var = glob(...)) should test definedness not truth -print $j == 1 ? "ok 8\n" : "not ok 8\n"; -print $j{a} == 1 ? "ok 9\n" : "not ok 9\n"; -print $j[0] == 1 ? "ok 10\n" : "not ok 10\n"; +if( $INC{'File/Glob.pm'} ) { + my $ok = "not ok 8\n"; + $ok = "ok 8\n" while my $var = glob("0"); + print $ok; +} +else { + print "ok 8 # skip: File::Glob emulated Unixism\n"; +} -# ... while ($var = glob(...)) should test definedness not truth -# Create a file called "0" -print open(F, ">0") ? "ok 11\n" : "not ok 11 # $!\n"; -my $ok = "not ok 12\n"; -$ok = "ok 12\n" while my $var = glob("0"); +# The formerly-broken test for the situation above would accidentally +# test definedness for an assignment with a LOGOP on the right: +my $f=0; +$ok="ok 9\n"; +$ok="not ok 9\n", undef $f while $x = $f||$f; print $ok; -print unlink("0") ? "ok 13\n" : "not ok 13\n"; +# Better check that glob actually returned some entries +{ + my $not = (scalar @oops > 0) ? '' : 'not '; + print "${not}ok 10\n"; +}