freebsd-dev/contrib/perl5/t/op/groups.t

51 lines
897 B
Perl
Executable File

#!./perl
if (! -x ($groups = '/usr/ucb/groups') &&
! -x ($groups = '/usr/bin/groups') &&
! -x ($groups = '/bin/groups')
) {
print "1..0\n";
exit 0;
}
print "1..2\n";
$pwgid = $( + 0;
($pwgnam) = getgrgid($pwgid);
@basegroup{$pwgid,$pwgnam} = (1,1);
$seen{$pwgid}++;
for (split(' ', $()) {
next if $seen{$_}++;
($group) = getgrgid($_);
if (defined $group) {
push(@gr, $group);
}
else {
push(@gr, $_);
}
}
$gr1 = join(' ', sort @gr);
$gr2 = join(' ', grep(!$basegroup{$_}++, sort split(' ',`$groups`)));
if ($gr1 eq $gr2) {
print "ok 1\n";
}
else {
print "#gr1 is <$gr1>\n";
print "#gr2 is <$gr2>\n";
print "not ok 1\n";
}
# multiple 0's indicate GROUPSTYPE is currently long but should be short
if ($pwgid == 0 || $seen{0} < 2) {
print "ok 2\n";
}
else {
print "not ok 2 (groupstype should be type short, not long)\n";
}