summaryrefslogtreecommitdiffhomepage
path: root/test/syscalls/linux/socket_ip_udp_generic.cc
diff options
context:
space:
mode:
Diffstat (limited to 'test/syscalls/linux/socket_ip_udp_generic.cc')
-rw-r--r--test/syscalls/linux/socket_ip_udp_generic.cc14
1 files changed, 14 insertions, 0 deletions
diff --git a/test/syscalls/linux/socket_ip_udp_generic.cc b/test/syscalls/linux/socket_ip_udp_generic.cc
index 789154fb3..58d1c846d 100644
--- a/test/syscalls/linux/socket_ip_udp_generic.cc
+++ b/test/syscalls/linux/socket_ip_udp_generic.cc
@@ -117,5 +117,19 @@ TEST_P(UDPSocketPairTest, SetUDPMulticastTTLAboveMax) {
SyscallFailsWithErrno(EINVAL));
}
+TEST_P(UDPSocketPairTest, SetEmptyIPAddMembership) {
+ auto sockets = ASSERT_NO_ERRNO_AND_VALUE(NewSocketPair());
+
+ struct ip_mreqn req = {};
+ int ret = setsockopt(sockets->first_fd(), IPPROTO_IP, IP_ADD_MEMBERSHIP, &req,
+ sizeof(req));
+ // FIXME: gVisor returns the incorrect errno.
+ if (IsRunningOnGvisor()) {
+ EXPECT_THAT(ret, SyscallFails());
+ } else {
+ EXPECT_THAT(ret, SyscallFailsWithErrno(EINVAL));
+ }
+}
+
} // namespace testing
} // namespace gvisor