Refactor syscall tests

- Move shared helpers V4Multicast and V4Broadcast to socket_test_util
- Add unnamed namespace so socket_ipv4_tcp_unbound_external_networking_test.cc
  and socket_ipv4_udp_unbound_external_networking_test.cc can be compiled
  together
- Add test files to "exports_files" so they can be included by Fuchsia's syscall
  test setup

PiperOrigin-RevId: 293880429
This commit is contained in:
Jay Zhuang
2020-02-07 13:19:18 -08:00
committed by gVisor bot
parent ca30dfa065
commit 6de49546cb
7 changed files with 32 additions and 41 deletions
+3
View File
@@ -12,6 +12,9 @@ exports_files(
"socket_ip_loopback_blocking.cc",
"socket_ip_tcp_loopback.cc",
"socket_ip_udp_loopback.cc",
"socket_ip_unbound.cc",
"socket_ipv4_tcp_unbound_external_networking_test.cc",
"socket_ipv4_udp_unbound_external_networking_test.cc",
"socket_ipv4_udp_unbound_loopback.cc",
"tcp_socket.cc",
"udp_socket.cc",
@@ -22,6 +22,7 @@
namespace gvisor {
namespace testing {
namespace {
std::vector<SocketKind> GetSockets() {
return ApplyVec<SocketKind>(
@@ -32,5 +33,7 @@ std::vector<SocketKind> GetSockets() {
INSTANTIATE_TEST_SUITE_P(IPv4TCPUnboundSockets,
IPv4TCPUnboundExternalNetworkingSocketTest,
::testing::ValuesIn(GetSockets()));
} // namespace
} // namespace testing
} // namespace gvisor
@@ -30,27 +30,6 @@
namespace gvisor {
namespace testing {
constexpr char kMulticastAddress[] = "224.0.2.1";
constexpr char kBroadcastAddress[] = "255.255.255.255";
TestAddress V4Multicast() {
TestAddress t("V4Multicast");
t.addr.ss_family = AF_INET;
t.addr_len = sizeof(sockaddr_in);
reinterpret_cast<sockaddr_in*>(&t.addr)->sin_addr.s_addr =
inet_addr(kMulticastAddress);
return t;
}
TestAddress V4Broadcast() {
TestAddress t("V4Broadcast");
t.addr.ss_family = AF_INET;
t.addr_len = sizeof(sockaddr_in);
reinterpret_cast<sockaddr_in*>(&t.addr)->sin_addr.s_addr =
inet_addr(kBroadcastAddress);
return t;
}
// Check that packets are not received without a group membership. Default send
// interface configured by bind.
TEST_P(IPv4UDPUnboundSocketTest, IpMulticastLoopbackNoGroup) {
@@ -41,26 +41,6 @@ TestAddress V4EmptyAddress() {
return t;
}
constexpr char kMulticastAddress[] = "224.0.2.1";
TestAddress V4Multicast() {
TestAddress t("V4Multicast");
t.addr.ss_family = AF_INET;
t.addr_len = sizeof(sockaddr_in);
reinterpret_cast<sockaddr_in*>(&t.addr)->sin_addr.s_addr =
inet_addr(kMulticastAddress);
return t;
}
TestAddress V4Broadcast() {
TestAddress t("V4Broadcast");
t.addr.ss_family = AF_INET;
t.addr_len = sizeof(sockaddr_in);
reinterpret_cast<sockaddr_in*>(&t.addr)->sin_addr.s_addr =
htonl(INADDR_BROADCAST);
return t;
}
void IPv4UDPUnboundExternalNetworkingSocketTest::SetUp() {
got_if_infos_ = false;
@@ -22,6 +22,7 @@
namespace gvisor {
namespace testing {
namespace {
std::vector<SocketKind> GetSockets() {
return ApplyVec<SocketKind>(
@@ -32,5 +33,7 @@ std::vector<SocketKind> GetSockets() {
INSTANTIATE_TEST_SUITE_P(IPv4UDPUnboundSockets,
IPv4UDPUnboundExternalNetworkingSocketTest,
::testing::ValuesIn(GetSockets()));
} // namespace
} // namespace testing
} // namespace gvisor
+18
View File
@@ -805,6 +805,24 @@ TestAddress V4MappedLoopback() {
return t;
}
TestAddress V4Multicast() {
TestAddress t("V4Multicast");
t.addr.ss_family = AF_INET;
t.addr_len = sizeof(sockaddr_in);
reinterpret_cast<sockaddr_in*>(&t.addr)->sin_addr.s_addr =
inet_addr(kMulticastAddress);
return t;
}
TestAddress V4Broadcast() {
TestAddress t("V4Broadcast");
t.addr.ss_family = AF_INET;
t.addr_len = sizeof(sockaddr_in);
reinterpret_cast<sockaddr_in*>(&t.addr)->sin_addr.s_addr =
htonl(INADDR_BROADCAST);
return t;
}
TestAddress V6Any() {
TestAddress t("V6Any");
t.addr.ss_family = AF_INET6;
+5
View File
@@ -484,10 +484,15 @@ struct TestAddress {
: description(std::move(description)), addr(), addr_len() {}
};
constexpr char kMulticastAddress[] = "224.0.2.1";
constexpr char kBroadcastAddress[] = "255.255.255.255";
TestAddress V4Any();
TestAddress V4Broadcast();
TestAddress V4Loopback();
TestAddress V4MappedAny();
TestAddress V4MappedLoopback();
TestAddress V4Multicast();
TestAddress V6Any();
TestAddress V6Loopback();