[patch: perl@8211]VMS: add -Duseperlio capacity to configure.com
[p5sagit/p5-mst-13.2.git] / t / op / grent.t
index 19096a1..211dc91 100755 (executable)
@@ -2,7 +2,7 @@
 
 BEGIN {
     chdir 't' if -d 't';
-    unshift @INC, "../lib" if -d "../lib";
+    @INC = '../lib';
     eval {my @n = getgrgid 0};
     if ($@ && $@ =~ /(The \w+ function is unimplemented)/) {
        print "1..0 # Skip: $1\n";
@@ -67,9 +67,11 @@ my $tst = 1;
 my %perfect;
 my %seen;
 
+setgrent();
 while (<GR>) {
     chomp;
-    my @s = split /:/;
+    # LIMIT -1 so that groups with no users don't fall off
+    my @s = split /:/, $_, -1;
     my ($name_s,$passwd_s,$gid_s,$members_s) = @s;
     if (@s) {
        push @{ $seen{$name_s} }, $.;
@@ -111,6 +113,8 @@ while (<GR>) {
     $n++;
 }
 
+endgrent();
+
 if (keys %perfect == 0) {
     $max++;
     print <<EOEX;
@@ -136,27 +140,27 @@ print "ok ", $tst++;
 print "\t# (not necessarily serious: run t/op/grent.t by itself)" if $not;
 print "\n";
 
-# Test both the scalar and array contexts.
+# Test both the scalar and list contexts.
 
 my @gr1;
 
-endgrent();
 setgrent();
 for (1..$max) {
     my $gr = scalar getgrent();
     last unless defined $gr;
     push @gr1, $gr;
 }
+endgrent();
 
 my @gr2;
 
-endgrent();
 setgrent();
 for (1..$max) {
     my ($gr) = (getgrent());
     last unless defined $gr;
     push @gr2, $gr;
 }
+endgrent();
 
 print "not " unless "@gr1" eq "@gr2";
 print "ok ", $tst++, "\n";