#!perl
use
5.010;
my
$tmpdir
= tempdir(
CLEANUP
=>1);
$CWD
=
$tmpdir
;
note
"tmpdir=$tmpdir"
;
rcopy(
"$Bin/data/simple"
,
"$tmpdir/simple"
);
unlink
"$tmpdir/simple/gshadow"
;
subtest
"gshadow unreadable -> ok"
=>
sub
{
my
$res
= list_groups(
etc_dir
=>
"$tmpdir/simple"
);
is_deeply(
$res
->[2], [
qw/root bin daemon nobody u1 u2/
]);
};
subtest
"default"
=>
sub
{
my
$res
= list_groups(
etc_dir
=>
"$Bin/data/simple"
);
is_deeply(
$res
->[2], [
qw/root bin daemon nobody u1 u2/
]);
};
subtest
"detail=1"
=>
sub
{
my
$res
= list_groups(
etc_dir
=>
"$Bin/data/simple"
,
detail
=>1);
is_deeply(
$res
->[2][0], {
admins
=>
""
,
gid
=> 0,
group
=>
"root"
,
members
=>
""
,
pass
=>
"x"
,
encpass
=>
""
,
}) or diag explain
$res
;
};
subtest
"detail=1, with_field_names=>0"
=>
sub
{
my
$res
= list_groups(
etc_dir
=>
"$Bin/data/simple"
,
detail
=>1,
with_field_names
=>0);
is_deeply(
$res
->[2][0], [
"root"
,
"x"
, 0,
""
]);
};
DONE_TESTING:
done_testing();
if
(Test::More->builder->is_passing) {
note
"all tests successful, deleting tmp dir"
;
$CWD
=
"/"
;
}
else
{
diag
"there are failing tests, not deleting tmp dir $tmpdir"
;
}