From 5c792e384d931aa59e630ee662d995b9b5551bbf Mon Sep 17 00:00:00 2001 From: Nicolas Lacasse Date: Tue, 11 Apr 2023 15:56:41 -0700 Subject: [PATCH] Require CAP_NET_RAW to call setsockopt(SO_BINDTODEVICE) in This causes socket_inet_loopback_isolated_test to fail with hostnet on buildkite (but curiously only on oldkernel). PiperOrigin-RevId: 523528229 --- test/syscalls/linux/BUILD | 1 + test/syscalls/linux/socket_inet_loopback_isolated.cc | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/test/syscalls/linux/BUILD b/test/syscalls/linux/BUILD index 5925a5d3d..f13fb52ad 100644 --- a/test/syscalls/linux/BUILD +++ b/test/syscalls/linux/BUILD @@ -3319,6 +3319,7 @@ cc_binary( ":socket_netlink_util", "//test/util:socket_util", gtest, + "//test/util:capability_util", "//test/util:test_main", "//test/util:test_util", "@com_google_absl//absl/time", diff --git a/test/syscalls/linux/socket_inet_loopback_isolated.cc b/test/syscalls/linux/socket_inet_loopback_isolated.cc index c123bf3ae..7c8f3d502 100644 --- a/test/syscalls/linux/socket_inet_loopback_isolated.cc +++ b/test/syscalls/linux/socket_inet_loopback_isolated.cc @@ -18,6 +18,7 @@ #include "absl/time/clock.h" #include "absl/time/time.h" #include "test/syscalls/linux/socket_inet_loopback_test_params.h" +#include "test/util/capability_util.h" #include "test/util/socket_util.h" #include "test/util/test_util.h" @@ -298,6 +299,9 @@ using SocketMultiProtocolInetLoopbackIsolatedTest = ::testing::TestWithParam; TEST_P(SocketMultiProtocolInetLoopbackIsolatedTest, BindToDeviceReusePort) { + // setsockopt(SO_BINDTODEVICE) requires CAP_NET_RAW. + SKIP_IF(!ASSERT_NO_ERRNO_AND_VALUE(HaveRawIPSocketCapability())); + ProtocolTestParam const& param = GetParam(); TestAddress const& test_addr = V4Loopback();