summaryrefslogtreecommitdiff
path: root/test/lib/Exim/Runtest.pm
blob: 2ac9a61ee0944f0c6b19489e3cb971c893dcb54e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package Exim::Runtest;
use strict;
use warnings;
use Carp;

use List::Util qw'shuffle';


# find a group name, preferrable 'mail', but
# use some other random name if 'mail' isn't a valid group
# name
sub mailgroup {
    my $group = shift;

    croak "Need a group *name*, not a numeric group id."
        if $group =~ /^\d+$/;

    return $group if getgrnam $group;

    my @groups;
    setgrent or die "setgrent: $!\n";
    push @groups, $_ while defined($_ = getgrent);
    endgrent;
    return (shuffle @groups)[0];
};


1;