Unix-Groups-FFI

 view release on metacpan or  search on metacpan

t/unprivileged.t  view on Meta::CPAN

use warnings;
use Test::More;
use Unix::Groups::FFI qw(getgroups setgroups);
use Errno qw(EPERM EINVAL);

my @current_groups = split ' ', $);
shift @current_groups;
is_deeply {map { ($_ => 1) } getgroups}, {map { ($_ => 1) } @current_groups},
  'Retrieved supplementary groups';

my $username = getpwuid $>;
my $gid = (getpwnam $username)[3];

SKIP: {
  skip 'getgrouplist not implemented', 6 unless eval { Unix::Groups::FFI->import('getgrouplist'); 1 };
  
  ok +(grep { $_ == $gid } getgrouplist($username, $gid)), "getgrouplist contains passed $gid";
  ok +(grep { $_ == $gid } getgrouplist($username)), "getgrouplist contains implicit $gid";
  
  my $nonexistent = 'nonexistent1';
  $nonexistent++ while defined scalar getpwnam $nonexistent;

xt/author/sudo.t  view on Meta::CPAN

use strict;
use warnings;
use Test::More;
use Unix::Groups::FFI qw(getgroups setgroups getgrouplist initgroups);
use Errno 'EINVAL';

plan skip_all => 'TEST_RUN_SUDO=1' unless $ENV{TEST_RUN_SUDO};
if ((my $uid = $>) != 0) {
	my $user = getpwuid $uid;
	$ENV{TEST_ORIGINAL_USER} = $user;
	my @args = ('sudo', '-nE', $^X);
	push @args, '-I', $_ for @INC;
	push @args, $0, @ARGV;
	exec @args;
}

plan skip_all => "user is missing in TEST_ORIGINAL_USER=$ENV{TEST_ORIGINAL_USER}"
	unless my $user = $ENV{TEST_ORIGINAL_USER};
plan skip_all => "invalid user in TEST_ORIGINAL_USER=$ENV{TEST_ORIGINAL_USER}"



( run in 0.264 second using v1.01-cache-2.11-cpan-8d75d55dd25 )