Don't require buffer size doubling on Fuchsia

For packet sockets, don't expect that reading the buffer size set via
SO_RCVBUF or SO_SNDBUF returns exactly twice the value that was set
(assuming no min/max clipping) on Fuchsia. The doubling is a Linux-ism,
and is not required by POSIX.

PiperOrigin-RevId: 521816820
This commit is contained in:
Alex Konradi
2023-04-04 11:23:27 -07:00
committed by gVisor bot
parent dc67711b6f
commit 33f7c6326e
+12 -6
View File
@@ -398,7 +398,7 @@ TEST_P(RawPacketTest, SetSocketRecvBuf) {
SyscallSucceeds());
}
int quarter_sz = min + (max - min) / 4;
const int quarter_sz = min + (max - min) / 4;
ASSERT_THAT(
setsockopt(s_, SOL_SOCKET, SO_RCVBUF, &quarter_sz, sizeof(quarter_sz)),
SyscallSucceeds());
@@ -408,8 +408,11 @@ TEST_P(RawPacketTest, SetSocketRecvBuf) {
ASSERT_THAT(getsockopt(s_, SOL_SOCKET, SO_RCVBUF, &val, &val_len),
SyscallSucceeds());
quarter_sz *= 2;
ASSERT_EQ(quarter_sz, val);
#ifndef __Fuchsia__
ASSERT_EQ(val, quarter_sz * 2);
#else
ASSERT_THAT(val, AnyOf(quarter_sz, quarter_sz * 2));
#endif // __Fuchsia__
}
// Check that setting SO_SNDBUF below min is clamped to the minimum
@@ -502,7 +505,7 @@ TEST_P(RawPacketTest, SetSocketSendBuf) {
SyscallSucceeds());
}
int quarter_sz = min + (max - min) / 4;
const int quarter_sz = min + (max - min) / 4;
ASSERT_THAT(
setsockopt(s_, SOL_SOCKET, SO_SNDBUF, &quarter_sz, sizeof(quarter_sz)),
SyscallSucceeds());
@@ -512,8 +515,11 @@ TEST_P(RawPacketTest, SetSocketSendBuf) {
ASSERT_THAT(getsockopt(s_, SOL_SOCKET, SO_SNDBUF, &val, &val_len),
SyscallSucceeds());
quarter_sz *= 2;
ASSERT_EQ(quarter_sz, val);
#ifndef __Fuchsia__
ASSERT_EQ(val, quarter_sz * 2);
#else
ASSERT_THAT(val, AnyOf(quarter_sz, quarter_sz * 2));
#endif // __Fuchsia__
}
TEST_P(RawPacketTest, GetSocketError) {