X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fop%2Fglob.t;h=d03d75fc43da37419dec714edf82a763b9d5b2fd;hb=8a064bd6d0d7a44f3e80bed959e1dc566b57850d;hp=bc43323375ee7bd979a66c924ab4cabeefdd5b5d;hpb=8e77c3bf8ea1b14ed562eef5350c5e9c7f5eb867;p=p5sagit%2Fp5-mst-13.2.git diff --git a/t/op/glob.t b/t/op/glob.t index bc43323..d03d75f 100755 --- a/t/op/glob.t +++ b/t/op/glob.t @@ -5,7 +5,7 @@ BEGIN { @INC = '../lib'; } -print "1..8\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"; @@ -55,6 +67,25 @@ print $i == 2 ? "ok 7\n" : "not ok 7\n"; # ... while ($var = glob(...)) should test definedness not truth -my $ok = "not ok 8\n"; -$ok = "ok 8\n" while my $var = glob("0"); +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"; +} + + +# 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; + +# Better check that glob actually returned some entries +{ + my $not = (scalar @oops > 0) ? '' : 'not '; + print "${not}ok 10\n"; +}