Make many tests build with NDK.

Not all the tests build yet, but many of them do now.

PiperOrigin-RevId: 375209824
This commit is contained in:
Adam Barth
2021-05-21 20:20:49 -07:00
committed by gVisor bot
parent 7675ccfc1a
commit f77a24966e
9 changed files with 38 additions and 9 deletions
+8 -4
View File
@@ -1517,7 +1517,8 @@ cc_binary(
cc_binary(
name = "partial_bad_buffer_test",
testonly = 1,
srcs = ["partial_bad_buffer.cc"],
# Android does not support preadv or pwritev in r22.
srcs = select_system(linux = ["partial_bad_buffer.cc"]),
linkstatic = 1,
deps = [
":socket_test_util",
@@ -3674,7 +3675,8 @@ cc_binary(
cc_binary(
name = "sync_test",
testonly = 1,
srcs = ["sync.cc"],
# Android does not support syncfs in r22.
srcs = select_system(linux = ["sync.cc"]),
linkstatic = 1,
deps = [
gtest,
@@ -3970,7 +3972,8 @@ cc_binary(
cc_binary(
name = "utimes_test",
testonly = 1,
srcs = ["utimes.cc"],
# Android does not support futimesat in r22.
srcs = select_system(linux = ["utimes.cc"]),
linkstatic = 1,
deps = [
"//test/util:file_descriptor",
@@ -4086,7 +4089,8 @@ cc_binary(
cc_binary(
name = "semaphore_test",
testonly = 1,
srcs = ["semaphore.cc"],
# Android does not support XSI semaphores in r22.
srcs = select_system(linux = ["semaphore.cc"]),
linkstatic = 1,
deps = [
"//test/util:capability_util",
+4
View File
@@ -230,6 +230,8 @@ TEST(EpollTest, WaitThenUnblock) {
EXPECT_THAT(pthread_detach(thread), SyscallSucceeds());
}
#ifndef ANDROID // Android does not support pthread_cancel
void sighandler(int s) {}
void* signaler(void* arg) {
@@ -272,6 +274,8 @@ TEST(EpollTest, UnblockWithSignal) {
EXPECT_THAT(pthread_detach(thread), SyscallSucceeds());
}
#endif // ANDROID
TEST(EpollTest, TimeoutNoFds) {
auto epollfd = ASSERT_NO_ERRNO_AND_VALUE(NewEpollFD());
struct epoll_event result[kFDsPerEpoll];
@@ -26,6 +26,8 @@
#include "absl/strings/numbers.h"
#ifndef ANDROID // Conflicts with existing operator<< on Android.
// Pretty-print a sigset_t.
std::ostream& operator<<(std::ostream& out, const sigset_t& s) {
out << "{ ";
@@ -40,6 +42,8 @@ std::ostream& operator<<(std::ostream& out, const sigset_t& s) {
return out;
}
#endif
// Verify that the signo handler is handler.
int CheckSigHandler(uint32_t signo, uintptr_t handler) {
struct sigaction sa;
@@ -174,13 +174,21 @@ SocketKind IPv6TCPUnboundSocket(int type) {
PosixError IfAddrHelper::Load() {
Release();
#ifndef ANDROID
RETURN_ERROR_IF_SYSCALL_FAIL(getifaddrs(&ifaddr_));
#else
// Android does not support getifaddrs in r22.
return PosixError(ENOSYS, "getifaddrs");
#endif
return NoError();
}
void IfAddrHelper::Release() {
if (ifaddr_) {
#ifndef ANDROID
// Android does not support freeifaddrs in r22.
freeifaddrs(ifaddr_);
#endif
ifaddr_ = nullptr;
}
}
+1 -1
View File
@@ -150,7 +150,7 @@ TEST(LseekTest, SeekCurrentDir) {
// From include/linux/fs.h.
constexpr loff_t MAX_LFS_FILESIZE = 0x7fffffffffffffff;
char* dir = get_current_dir_name();
char* dir = getcwd(NULL, 0);
const FileDescriptor fd = ASSERT_NO_ERRNO_AND_VALUE(Open(dir, O_RDONLY));
ASSERT_THAT(lseek(fd.get(), 0, SEEK_CUR), SyscallSucceeds());
+5
View File
@@ -291,6 +291,9 @@ TEST_P(PipeTest, Seek) {
}
}
#ifndef ANDROID
// Android does not support preadv or pwritev in r22.
TEST_P(PipeTest, OffsetCalls) {
SKIP_IF(!CreateBlocking());
@@ -307,6 +310,8 @@ TEST_P(PipeTest, OffsetCalls) {
EXPECT_THAT(pwritev(rfd_.get(), &iov, 1, 0), SyscallFailsWithErrno(ESPIPE));
}
#endif // ANDROID
TEST_P(PipeTest, WriterSideCloses) {
SKIP_IF(!CreateBlocking());
+2 -1
View File
@@ -157,7 +157,8 @@ TEST_F(ReadTest, PartialReadSIGSEGV) {
.iov_len = size,
},
};
EXPECT_THAT(preadv(fd.get(), iov, ABSL_ARRAYSIZE(iov), 0),
EXPECT_THAT(lseek(fd.get(), 0, SEEK_SET), SyscallSucceeds());
EXPECT_THAT(readv(fd.get(), iov, ABSL_ARRAYSIZE(iov)),
SyscallSucceedsWithValue(size));
}
@@ -58,8 +58,10 @@ PosixErrorOr<std::unique_ptr<Tunnel>> Tunnel::New(string tunnel_name) {
}
std::unordered_set<string> GetInterfaceNames() {
struct if_nameindex* interfaces = if_nameindex();
std::unordered_set<string> names;
#ifndef ANDROID
// Android does not support if_nameindex in r22.
struct if_nameindex* interfaces = if_nameindex();
if (interfaces == nullptr) {
return names;
}
@@ -68,6 +70,7 @@ std::unordered_set<string> GetInterfaceNames() {
names.insert(interface->if_name);
}
if_freenameindex(interfaces);
#endif
return names;
}
@@ -38,8 +38,8 @@ TEST_P(IPv6UDPUnboundExternalNetworkingSocketTest, TestJoinLeaveMulticast) {
ipv6_mreq group_req = {
.ipv6mr_multiaddr =
reinterpret_cast<sockaddr_in6*>(&multicast_addr.addr)->sin6_addr,
.ipv6mr_interface =
(unsigned int)ASSERT_NO_ERRNO_AND_VALUE(InterfaceIndex("lo")),
.ipv6mr_interface = static_cast<decltype(ipv6_mreq::ipv6mr_interface)>(
ASSERT_NO_ERRNO_AND_VALUE(InterfaceIndex("lo"))),
};
ASSERT_THAT(setsockopt(receiver->get(), IPPROTO_IPV6, IPV6_ADD_MEMBERSHIP,
&group_req, sizeof(group_req)),