73239b5f07b13cdbb4474c6d70ba86ec5a0eb4ed
[p5sagit/p5-mst-13.2.git] / t / op / groups.t
1 #!./perl
2
3 $ENV{'PATH'} = "/bin:/usr/ucb:/usr/bin:$ENV{'PATH'}";
4
5 $curgrp = (getgrgid($())[0];
6 foreach (split(/\s+/, `groups 2>/dev/null`)) {
7     $ok++, last if $_ eq $curgrp;
8 }
9
10 if (! $ok) {
11     print "1..0\n";
12     exit 0;
13 }
14
15 print "1..2\n";
16
17 $pwgid = $( + 0;
18 ($pwgnam) = getgrgid($pwgid);
19 @basegroup{$pwgid,$pwgnam} = (1,1);
20
21 $seen{$pwgid}++;
22
23 for (split(' ', $()) {
24     next if $seen{$_}++;
25     ($group) = getgrgid($_);
26     if (defined $group) {
27         push(@gr, $group);
28     }
29     else {
30         push(@gr, $_);
31     }
32
33
34 $gr1 = join(' ', sort @gr);
35
36 $gr2 = join(' ', grep(!$basegroup{$_}++, sort split(' ',`groups`)));
37
38 if ($gr1 eq $gr2) {
39     print "ok 1\n";
40 }
41 else {
42     print "#gr1 is <$gr1>\n";
43     print "#gr2 is <$gr2>\n";
44     print "not ok 1\n";
45 }
46
47 # multiple 0's indicate GROUPSTYPE is currently long but should be short
48
49 if ($pwgid == 0 || $seen{0} < 2) {
50     print "ok 2\n";
51 }
52 else {
53     print "not ok 2 (groupstype should be type short, not long)\n";
54 }