Merge pull request #19395 from rmstar/c++_on_ios

Fix C++ tests to run on iOS
pull/18410/head
rmstar 5 years ago committed by GitHub
commit ce282e7d7e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      src/core/lib/iomgr/iomgr_posix_cfstream.cc
  2. 49
      test/cpp/codegen/proto_utils_test.cc
  3. 6
      test/cpp/common/channel_arguments_test.cc
  4. 9
      test/cpp/end2end/client_lb_end2end_test.cc
  5. 12
      test/cpp/end2end/filter_end2end_test.cc
  6. 16
      test/cpp/end2end/grpclb_end2end_test.cc
  7. 9
      test/cpp/end2end/service_config_end2end_test.cc
  8. 16
      test/cpp/end2end/xds_end2end_test.cc
  9. 9
      test/cpp/grpclb/grpclb_api_test.cc
  10. 49
      test/cpp/naming/cancel_ares_query_test.cc
  11. 18
      test/cpp/server/server_builder_test.cc
  12. 11
      test/cpp/server/server_builder_with_socket_mutator_test.cc
  13. 9
      test/cpp/util/byte_buffer_test.cc
  14. 6
      test/cpp/util/slice_test.cc

@ -90,4 +90,6 @@ void grpc_set_default_iomgr_platform() {
grpc_set_iomgr_platform_vtable(&vtable);
}
bool grpc_iomgr_run_in_background() { return false; }
#endif /* GRPC_CFSTREAM_IOMGR */

@ -49,7 +49,18 @@ class GrpcByteBufferPeer {
ByteBuffer* bb_;
};
class ProtoUtilsTest : public ::testing::Test {};
class ProtoUtilsTest : public ::testing::Test {
protected:
static void SetUpTestCase() {
// Ensure the ProtoBufferWriter internals are initialized.
grpc::internal::GrpcLibraryInitializer init;
init.summon();
grpc::GrpcLibraryCodegen lib;
grpc_init();
}
static void TearDownTestCase() { grpc_shutdown(); }
};
// Regression test for a memory corruption bug where a series of
// ProtoBufferWriter Next()/Backup() invocations could result in a dangling
@ -136,36 +147,46 @@ void BufferWriterTest(int block_size, int total_size, int backup_size) {
grpc_byte_buffer_reader_destroy(&reader);
}
TEST(WriterTest, TinyBlockTinyBackup) {
class WriterTest : public ::testing::Test {
protected:
static void SetUpTestCase() {
grpc::internal::GrpcLibraryInitializer init;
init.summon();
grpc::GrpcLibraryCodegen lib;
// Ensure the ProtoBufferWriter internals are initialized.
grpc_init();
}
static void TearDownTestCase() { grpc_shutdown(); }
};
TEST_F(WriterTest, TinyBlockTinyBackup) {
for (int i = 2; i < static_cast<int> GRPC_SLICE_INLINED_SIZE; i++) {
BufferWriterTest(i, 256, 1);
}
}
TEST(WriterTest, SmallBlockTinyBackup) { BufferWriterTest(64, 256, 1); }
TEST_F(WriterTest, SmallBlockTinyBackup) { BufferWriterTest(64, 256, 1); }
TEST(WriterTest, SmallBlockNoBackup) { BufferWriterTest(64, 256, 0); }
TEST_F(WriterTest, SmallBlockNoBackup) { BufferWriterTest(64, 256, 0); }
TEST(WriterTest, SmallBlockFullBackup) { BufferWriterTest(64, 256, 64); }
TEST_F(WriterTest, SmallBlockFullBackup) { BufferWriterTest(64, 256, 64); }
TEST(WriterTest, LargeBlockTinyBackup) { BufferWriterTest(4096, 8192, 1); }
TEST_F(WriterTest, LargeBlockTinyBackup) { BufferWriterTest(4096, 8192, 1); }
TEST(WriterTest, LargeBlockNoBackup) { BufferWriterTest(4096, 8192, 0); }
TEST_F(WriterTest, LargeBlockNoBackup) { BufferWriterTest(4096, 8192, 0); }
TEST(WriterTest, LargeBlockFullBackup) { BufferWriterTest(4096, 8192, 4096); }
TEST_F(WriterTest, LargeBlockFullBackup) { BufferWriterTest(4096, 8192, 4096); }
TEST(WriterTest, LargeBlockLargeBackup) { BufferWriterTest(4096, 8192, 4095); }
TEST_F(WriterTest, LargeBlockLargeBackup) {
BufferWriterTest(4096, 8192, 4095);
}
} // namespace
} // namespace internal
} // namespace grpc
int main(int argc, char** argv) {
// Ensure the ProtoBufferWriter internals are initialized.
grpc::internal::GrpcLibraryInitializer init;
init.summon();
grpc::GrpcLibraryCodegen lib;
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}

@ -84,6 +84,10 @@ class ChannelArgumentsTest : public ::testing::Test {
channel_args.SetChannelArgs(args);
}
static void SetUpTestCase() { grpc_init(); }
static void TearDownTestCase() { grpc_shutdown(); }
grpc::string GetDefaultUserAgentPrefix() {
std::ostringstream user_agent_prefix;
user_agent_prefix << "grpc-c++/" << Version();
@ -252,8 +256,6 @@ TEST_F(ChannelArgumentsTest, SetUserAgentPrefix) {
int main(int argc, char** argv) {
::testing::InitGoogleTest(&argc, argv);
grpc_init();
int ret = RUN_ALL_TESTS();
grpc_shutdown();
return ret;
}

@ -141,6 +141,12 @@ class ClientLbEnd2endTest : public ::testing::Test {
creds_(new SecureChannelCredentials(
grpc_fake_transport_security_credentials_create())) {}
static void SetUpTestCase() {
// Make the backup poller poll very frequently in order to pick up
// updates from all the subchannels's FDs.
GPR_GLOBAL_CONFIG_SET(grpc_client_channel_backup_poll_interval_ms, 1);
}
void SetUp() override {
grpc_init();
response_generator_ =
@ -1481,9 +1487,6 @@ TEST_F(ClientLbInterceptTrailingMetadataTest, InterceptsRetriesEnabled) {
} // namespace grpc
int main(int argc, char** argv) {
// Make the backup poller poll very frequently in order to pick up
// updates from all the subchannels's FDs.
GPR_GLOBAL_CONFIG_SET(grpc_client_channel_backup_poll_interval_ms, 1);
::testing::InitGoogleTest(&argc, argv);
grpc::testing::TestEnvironment env(argc, argv);
const auto result = RUN_ALL_TESTS();

@ -121,6 +121,12 @@ class FilterEnd2endTest : public ::testing::Test {
protected:
FilterEnd2endTest() : server_host_("localhost") {}
static void SetUpTestCase() {
gpr_log(GPR_ERROR, "In SetUpTestCase");
grpc::RegisterChannelFilter<ChannelDataImpl, CallDataImpl>(
"test-filter", GRPC_SERVER_CHANNEL, INT_MAX, nullptr);
}
void SetUp() override {
int port = grpc_pick_unused_port_or_die();
server_address_ << server_host_ << ":" << port;
@ -321,11 +327,6 @@ TEST_F(FilterEnd2endTest, SimpleBidiStreaming) {
EXPECT_EQ(1, GetConnectionCounterValue());
}
void RegisterFilter() {
grpc::RegisterChannelFilter<ChannelDataImpl, CallDataImpl>(
"test-filter", GRPC_SERVER_CHANNEL, INT_MAX, nullptr);
}
} // namespace
} // namespace testing
} // namespace grpc
@ -333,6 +334,5 @@ void RegisterFilter() {
int main(int argc, char** argv) {
grpc::testing::TestEnvironment env(argc, argv);
::testing::InitGoogleTest(&argc, argv);
grpc::testing::RegisterFilter();
return RUN_ALL_TESTS();
}

@ -374,6 +374,15 @@ class GrpclbEnd2endTest : public ::testing::Test {
client_load_reporting_interval_seconds_(
client_load_reporting_interval_seconds) {}
static void SetUpTestCase() {
// Make the backup poller poll very frequently in order to pick up
// updates from all the subchannels's FDs.
GPR_GLOBAL_CONFIG_SET(grpc_client_channel_backup_poll_interval_ms, 1);
grpc_init();
}
static void TearDownTestCase() { grpc_shutdown(); }
void SetUp() override {
response_generator_ =
grpc_core::MakeRefCounted<grpc_core::FakeResolverResponseGenerator>();
@ -1003,7 +1012,7 @@ TEST_F(SingleBalancerTest, SecureNamingDeathTest) {
::testing::FLAGS_gtest_death_test_style = "threadsafe";
// Make sure that we blow up (via abort() from the security connector) when
// the name from the balancer doesn't match expectations.
ASSERT_DEATH(
ASSERT_DEATH_IF_SUPPORTED(
{
ResetStub(0, kApplicationTargetName_ + ";lb");
SetNextResolution({AddressData{balancers_[0]->port_, true, "woops"}});
@ -1990,13 +1999,8 @@ TEST_F(SingleBalancerWithClientLoadReportingTest, Drop) {
} // namespace grpc
int main(int argc, char** argv) {
// Make the backup poller poll very frequently in order to pick up
// updates from all the subchannels's FDs.
GPR_GLOBAL_CONFIG_SET(grpc_client_channel_backup_poll_interval_ms, 1);
grpc_init();
grpc::testing::TestEnvironment env(argc, argv);
::testing::InitGoogleTest(&argc, argv);
const auto result = RUN_ALL_TESTS();
grpc_shutdown();
return result;
}

@ -119,6 +119,12 @@ class ServiceConfigEnd2endTest : public ::testing::Test {
creds_(new SecureChannelCredentials(
grpc_fake_transport_security_credentials_create())) {}
static void SetUpTestCase() {
// Make the backup poller poll very frequently in order to pick up
// updates from all the subchannels's FDs.
GPR_GLOBAL_CONFIG_SET(grpc_client_channel_backup_poll_interval_ms, 1);
}
void SetUp() override {
grpc_init();
response_generator_ =
@ -611,9 +617,6 @@ TEST_F(ServiceConfigEnd2endTest,
} // namespace grpc
int main(int argc, char** argv) {
// Make the backup poller poll very frequently in order to pick up
// updates from all the subchannels's FDs.
GPR_GLOBAL_CONFIG_SET(grpc_client_channel_backup_poll_interval_ms, 1);
::testing::InitGoogleTest(&argc, argv);
grpc::testing::TestEnvironment env(argc, argv);
const auto result = RUN_ALL_TESTS();

@ -370,6 +370,15 @@ class XdsEnd2endTest : public ::testing::Test {
client_load_reporting_interval_seconds_(
client_load_reporting_interval_seconds) {}
static void SetUpTestCase() {
// Make the backup poller poll very frequently in order to pick up
// updates from all the subchannels's FDs.
GPR_GLOBAL_CONFIG_SET(grpc_client_channel_backup_poll_interval_ms, 1);
grpc_init();
}
static void TearDownTestCase() { grpc_shutdown(); }
void SetUp() override {
response_generator_ =
grpc_core::MakeRefCounted<grpc_core::FakeResolverResponseGenerator>();
@ -788,7 +797,7 @@ TEST_F(SingleBalancerTest, SecureNamingDeathTest) {
::testing::FLAGS_gtest_death_test_style = "threadsafe";
// Make sure that we blow up (via abort() from the security connector) when
// the name from the balancer doesn't match expectations.
ASSERT_DEATH(
ASSERT_DEATH_IF_SUPPORTED(
{
ResetStub(0, kApplicationTargetName_ + ";lb");
SetNextResolution({},
@ -1401,13 +1410,8 @@ class SingleBalancerWithClientLoadReportingTest : public XdsEnd2endTest {
} // namespace grpc
int main(int argc, char** argv) {
// Make the backup poller poll very frequently in order to pick up
// updates from all the subchannels's FDs.
GPR_GLOBAL_CONFIG_SET(grpc_client_channel_backup_poll_interval_ms, 1);
grpc_init();
grpc::testing::TestEnvironment env(argc, argv);
::testing::InitGoogleTest(&argc, argv);
const auto result = RUN_ALL_TESTS();
grpc_shutdown();
return result;
}

@ -31,7 +31,12 @@ namespace {
using grpc::lb::v1::LoadBalanceRequest;
using grpc::lb::v1::LoadBalanceResponse;
class GrpclbTest : public ::testing::Test {};
class GrpclbTest : public ::testing::Test {
protected:
static void SetUpTestCase() { grpc_init(); }
static void TearDownTestCase() { grpc_shutdown(); }
};
grpc::string Ip4ToPackedString(const char* ip_str) {
struct in_addr ip4;
@ -128,8 +133,6 @@ TEST_F(GrpclbTest, ParseResponseServerList) {
int main(int argc, char** argv) {
::testing::InitGoogleTest(&argc, argv);
grpc_init();
int ret = RUN_ALL_TESTS();
grpc_shutdown();
return ret;
}

@ -177,7 +177,32 @@ void TestCancelActiveDNSQuery(ArgsStruct* args) {
ArgsFinish(args);
}
TEST(CancelDuringAresQuery, TestCancelActiveDNSQuery) {
class CancelDuringAresQuery : public ::testing::Test {
protected:
static void SetUpTestCase() {
GPR_GLOBAL_CONFIG_SET(grpc_dns_resolver, "ares");
// Sanity check the time that it takes to run the test
// including the teardown time (the teardown
// part of the test involves cancelling the DNS query,
// which is the main point of interest for this test).
overall_deadline = grpc_timeout_seconds_to_deadline(4);
grpc_init();
}
static void TearDownTestCase() {
grpc_shutdown();
if (gpr_time_cmp(gpr_now(GPR_CLOCK_MONOTONIC), overall_deadline) > 0) {
gpr_log(GPR_ERROR, "Test took too long");
abort();
}
}
private:
static gpr_timespec overall_deadline;
};
gpr_timespec CancelDuringAresQuery::overall_deadline;
TEST_F(CancelDuringAresQuery, TestCancelActiveDNSQuery) {
grpc_core::ExecCtx exec_ctx;
ArgsStruct args;
ArgsInit(&args);
@ -216,7 +241,7 @@ void MaybePollArbitraryPollsetTwice() {}
#endif
TEST(CancelDuringAresQuery, TestFdsAreDeletedFromPollsetSet) {
TEST_F(CancelDuringAresQuery, TestFdsAreDeletedFromPollsetSet) {
grpc_core::ExecCtx exec_ctx;
ArgsStruct args;
ArgsInit(&args);
@ -352,18 +377,18 @@ void TestCancelDuringActiveQuery(
EndTest(client, cq);
}
TEST(CancelDuringAresQuery,
TestHitDeadlineAndDestroyChannelDuringAresResolutionIsGraceful) {
TEST_F(CancelDuringAresQuery,
TestHitDeadlineAndDestroyChannelDuringAresResolutionIsGraceful) {
TestCancelDuringActiveQuery(NONE /* don't set query timeouts */);
}
TEST(
TEST_F(
CancelDuringAresQuery,
TestHitDeadlineAndDestroyChannelDuringAresResolutionWithQueryTimeoutIsGraceful) {
TestCancelDuringActiveQuery(SHORT /* set short query timeout */);
}
TEST(
TEST_F(
CancelDuringAresQuery,
TestHitDeadlineAndDestroyChannelDuringAresResolutionWithZeroQueryTimeoutIsGraceful) {
TestCancelDuringActiveQuery(ZERO /* disable query timeouts */);
@ -374,18 +399,6 @@ TEST(
int main(int argc, char** argv) {
grpc::testing::TestEnvironment env(argc, argv);
::testing::InitGoogleTest(&argc, argv);
GPR_GLOBAL_CONFIG_SET(grpc_dns_resolver, "ares");
// Sanity check the time that it takes to run the test
// including the teardown time (the teardown
// part of the test involves cancelling the DNS query,
// which is the main point of interest for this test).
gpr_timespec overall_deadline = grpc_timeout_seconds_to_deadline(4);
grpc_init();
auto result = RUN_ALL_TESTS();
grpc_shutdown();
if (gpr_time_cmp(gpr_now(GPR_CLOCK_MONOTONIC), overall_deadline) > 0) {
gpr_log(GPR_ERROR, "Test took too long");
abort();
}
return result;
}

@ -44,13 +44,19 @@ const grpc::string& GetPort() {
return g_port;
}
TEST(ServerBuilderTest, NoOp) { ServerBuilder b; }
class ServerBuilderTest : public ::testing::Test {
protected:
static void SetUpTestCase() { grpc_init(); }
TEST(ServerBuilderTest, CreateServerNoPorts) {
static void TearDownTestCase() { grpc_shutdown(); }
};
TEST_F(ServerBuilderTest, NoOp) { ServerBuilder b; }
TEST_F(ServerBuilderTest, CreateServerNoPorts) {
ServerBuilder().RegisterService(&g_service).BuildAndStart()->Shutdown();
}
TEST(ServerBuilderTest, CreateServerOnePort) {
TEST_F(ServerBuilderTest, CreateServerOnePort) {
ServerBuilder()
.RegisterService(&g_service)
.AddListeningPort(GetPort(), InsecureServerCredentials())
@ -58,7 +64,7 @@ TEST(ServerBuilderTest, CreateServerOnePort) {
->Shutdown();
}
TEST(ServerBuilderTest, CreateServerRepeatedPort) {
TEST_F(ServerBuilderTest, CreateServerRepeatedPort) {
ServerBuilder()
.RegisterService(&g_service)
.AddListeningPort(GetPort(), InsecureServerCredentials())
@ -67,7 +73,7 @@ TEST(ServerBuilderTest, CreateServerRepeatedPort) {
->Shutdown();
}
TEST(ServerBuilderTest, CreateServerRepeatedPortWithDisallowedReusePort) {
TEST_F(ServerBuilderTest, CreateServerRepeatedPortWithDisallowedReusePort) {
EXPECT_EQ(ServerBuilder()
.RegisterService(&g_service)
.AddListeningPort(GetPort(), InsecureServerCredentials())
@ -82,8 +88,6 @@ TEST(ServerBuilderTest, CreateServerRepeatedPortWithDisallowedReusePort) {
int main(int argc, char** argv) {
::testing::InitGoogleTest(&argc, argv);
grpc_init();
int ret = RUN_ALL_TESTS();
grpc_shutdown();
return ret;
}

@ -86,7 +86,14 @@ class MockSocketMutatorServerBuilderOption : public grpc::ServerBuilderOption {
MockSocketMutator* mock_socket_mutator_;
};
TEST(ServerBuilderWithSocketMutatorTest, CreateServerWithSocketMutator) {
class ServerBuilderWithSocketMutatorTest : public ::testing::Test {
protected:
static void SetUpTestCase() { grpc_init(); }
static void TearDownTestCase() { grpc_shutdown(); }
};
TEST_F(ServerBuilderWithSocketMutatorTest, CreateServerWithSocketMutator) {
auto address = "localhost:" + std::to_string(grpc_pick_unused_port_or_die());
auto mock_socket_mutator = new MockSocketMutator();
std::unique_ptr<grpc::ServerBuilderOption> mock_socket_mutator_builder_option(
@ -109,8 +116,6 @@ TEST(ServerBuilderWithSocketMutatorTest, CreateServerWithSocketMutator) {
int main(int argc, char** argv) {
::testing::InitGoogleTest(&argc, argv);
grpc_init();
int ret = RUN_ALL_TESTS();
grpc_shutdown();
return ret;
}

@ -36,7 +36,12 @@ namespace {
const char* kContent1 = "hello xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
const char* kContent2 = "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy world";
class ByteBufferTest : public ::testing::Test {};
class ByteBufferTest : public ::testing::Test {
protected:
static void SetUpTestCase() { grpc_init(); }
static void TearDownTestCase() { grpc_shutdown(); }
};
TEST_F(ByteBufferTest, CopyCtor) {
ByteBuffer buffer1;
@ -121,8 +126,6 @@ TEST_F(ByteBufferTest, SerializationMakesCopy) {
int main(int argc, char** argv) {
::testing::InitGoogleTest(&argc, argv);
grpc_init();
int ret = RUN_ALL_TESTS();
grpc_shutdown();
return ret;
}

@ -33,6 +33,10 @@ const char* kContent = "hello xxxxxxxxxxxxxxxxxxxx world";
class SliceTest : public ::testing::Test {
protected:
static void SetUpTestCase() { grpc_init(); }
static void TearDownTestCase() { grpc_shutdown(); }
void CheckSliceSize(const Slice& s, const grpc::string& content) {
EXPECT_EQ(content.size(), s.size());
}
@ -132,8 +136,6 @@ TEST_F(SliceTest, Cslice) {
int main(int argc, char** argv) {
::testing::InitGoogleTest(&argc, argv);
grpc_init();
int ret = RUN_ALL_TESTS();
grpc_shutdown();
return ret;
}

Loading…
Cancel
Save