make test robust

pull/9205/head
yang-g 8 years ago
parent 0a4e83a12e
commit 35674af901
  1. 25
      test/cpp/end2end/health_service_end2end_test.cc

@ -132,7 +132,7 @@ class HealthServiceEnd2endTest : public ::testing::Test {
protected: protected:
HealthServiceEnd2endTest() {} HealthServiceEnd2endTest() {}
void SetUpServer(bool register_sync_test_service, void SetUpServer(bool register_sync_test_service, bool add_async_cq,
bool explicit_health_service, bool explicit_health_service,
std::unique_ptr<HealthCheckServiceInterface> service) { std::unique_ptr<HealthCheckServiceInterface> service) {
int port = grpc_pick_unused_port_or_die(); int port = grpc_pick_unused_port_or_die();
@ -157,18 +157,21 @@ class HealthServiceEnd2endTest : public ::testing::Test {
if (register_sync_health_service_impl) { if (register_sync_health_service_impl) {
builder.RegisterService(&health_check_service_impl_); builder.RegisterService(&health_check_service_impl_);
} }
cq_ = builder.AddCompletionQueue(); if (add_async_cq) {
cq_ = builder.AddCompletionQueue();
}
server_ = builder.BuildAndStart(); server_ = builder.BuildAndStart();
} }
void TearDown() override { void TearDown() override {
if (server_) { if (server_) {
server_->Shutdown(); server_->Shutdown();
cq_->Shutdown(); if (cq_ != nullptr) {
cq_->Shutdown();
}
if (cq_thread_.joinable()) { if (cq_thread_.joinable()) {
cq_thread_.join(); cq_thread_.join();
} }
LoopCompletionQueue(cq_.get());
} }
} }
@ -241,7 +244,7 @@ class HealthServiceEnd2endTest : public ::testing::Test {
TEST_F(HealthServiceEnd2endTest, DefaultHealthServiceDisabled) { TEST_F(HealthServiceEnd2endTest, DefaultHealthServiceDisabled) {
EnableDefaultHealthCheckService(false); EnableDefaultHealthCheckService(false);
EXPECT_FALSE(DefaultHealthCheckServiceEnabled()); EXPECT_FALSE(DefaultHealthCheckServiceEnabled());
SetUpServer(true, false, nullptr); SetUpServer(true, false, false, nullptr);
HealthCheckServiceInterface* default_service = HealthCheckServiceInterface* default_service =
server_->GetHealthCheckService(); server_->GetHealthCheckService();
EXPECT_TRUE(default_service == nullptr); EXPECT_TRUE(default_service == nullptr);
@ -254,7 +257,7 @@ TEST_F(HealthServiceEnd2endTest, DefaultHealthServiceDisabled) {
TEST_F(HealthServiceEnd2endTest, DefaultHealthService) { TEST_F(HealthServiceEnd2endTest, DefaultHealthService) {
EnableDefaultHealthCheckService(true); EnableDefaultHealthCheckService(true);
EXPECT_TRUE(DefaultHealthCheckServiceEnabled()); EXPECT_TRUE(DefaultHealthCheckServiceEnabled());
SetUpServer(true, false, nullptr); SetUpServer(true, false, false, nullptr);
VerifyHealthCheckService(); VerifyHealthCheckService();
// The default service has a size limit of the service name. // The default service has a size limit of the service name.
@ -263,11 +266,13 @@ TEST_F(HealthServiceEnd2endTest, DefaultHealthService) {
Status(StatusCode::INVALID_ARGUMENT, "")); Status(StatusCode::INVALID_ARGUMENT, ""));
} }
TEST_F(HealthServiceEnd2endTest, DefaultHealthServiceAsync) { // The server has no sync service.
TEST_F(HealthServiceEnd2endTest, DefaultHealthServiceAsyncOnly) {
EnableDefaultHealthCheckService(true); EnableDefaultHealthCheckService(true);
EXPECT_TRUE(DefaultHealthCheckServiceEnabled()); EXPECT_TRUE(DefaultHealthCheckServiceEnabled());
SetUpServer(false, false, nullptr); SetUpServer(false, true, false, nullptr);
cq_thread_ = std::thread(LoopCompletionQueue, cq_.get()); cq_thread_ = std::thread(LoopCompletionQueue, cq_.get());
VerifyHealthCheckService(); VerifyHealthCheckService();
// The default service has a size limit of the service name. // The default service has a size limit of the service name.
@ -281,7 +286,7 @@ TEST_F(HealthServiceEnd2endTest, ExplicitlyDisableViaOverride) {
EnableDefaultHealthCheckService(true); EnableDefaultHealthCheckService(true);
EXPECT_TRUE(DefaultHealthCheckServiceEnabled()); EXPECT_TRUE(DefaultHealthCheckServiceEnabled());
std::unique_ptr<HealthCheckServiceInterface> empty_service; std::unique_ptr<HealthCheckServiceInterface> empty_service;
SetUpServer(true, true, std::move(empty_service)); SetUpServer(true, false, true, std::move(empty_service));
HealthCheckServiceInterface* service = server_->GetHealthCheckService(); HealthCheckServiceInterface* service = server_->GetHealthCheckService();
EXPECT_TRUE(service == nullptr); EXPECT_TRUE(service == nullptr);
@ -297,7 +302,7 @@ TEST_F(HealthServiceEnd2endTest, ExplicitlyOverride) {
std::unique_ptr<HealthCheckServiceInterface> override_service( std::unique_ptr<HealthCheckServiceInterface> override_service(
new CustomHealthCheckService(&health_check_service_impl_)); new CustomHealthCheckService(&health_check_service_impl_));
HealthCheckServiceInterface* underlying_service = override_service.get(); HealthCheckServiceInterface* underlying_service = override_service.get();
SetUpServer(false, true, std::move(override_service)); SetUpServer(false, false, true, std::move(override_service));
HealthCheckServiceInterface* service = server_->GetHealthCheckService(); HealthCheckServiceInterface* service = server_->GetHealthCheckService();
EXPECT_TRUE(service == underlying_service); EXPECT_TRUE(service == underlying_service);

Loading…
Cancel
Save