diff --git a/ci/test-11-nopriv.pl b/ci/test-11-nopriv.pl index a6bcfd2..243362e 100755 --- a/ci/test-11-nopriv.pl +++ b/ci/test-11-nopriv.pl @@ -1,5 +1,6 @@ #!/usr/bin/perl -w +use English; use Test::Command; use Test::More; @@ -7,6 +8,26 @@ if( $^O eq 'darwin' ) { plan skip_all => 'Test irrelevant on MacOS'; exit 0; } + +sub get_ping_gid_range { + open FD, "/proc/sys/net/ipv4/ping_group_range" or return undef; + chomp(my $line = ); + my @range = split(/\s+/, $line); + close FD; + return @range; +} + +my @gids = split(' ', $EGID); +my @allowed_gid_range = get_ping_gid_range(); + +# Linux test for unprivileged ping support +foreach(@gids) { + if ($_ >= $allowed_gid_range[0] && $_ <= $allowed_gid_range[1]) { + plan skip_all => "Userspace pings are allowed, gid $_ in range [$allowed_gid_range[0], $allowed_gid_range[1]]"; + exit 0; + } +} + plan tests => 3; # run without privileges