Skip to content
Snippets Groups Projects
Commit 6df60759 authored by Mark D. Roth's avatar Mark D. Roth
Browse files

Fix portability problems.

parent fd635add
No related branches found
No related tags found
No related merge requests found
......@@ -63,6 +63,8 @@ namespace {
// every call to the Echo RPC.
class MyTestServiceImpl : public TestServiceImpl {
public:
MyTestServiceImpl() : request_count_(0) {}
Status Echo(ServerContext* context, const EchoRequest* request,
EchoResponse* response) GRPC_OVERRIDE {
{
......@@ -79,7 +81,7 @@ class MyTestServiceImpl : public TestServiceImpl {
private:
mutex mu_;
int request_count_ = 0;
int request_count_;
};
class RoundRobinEnd2endTest : public ::testing::Test {
......@@ -93,8 +95,8 @@ class RoundRobinEnd2endTest : public ::testing::Test {
}
void TearDown() GRPC_OVERRIDE {
for (const auto& server : servers_) {
server->Shutdown();
for (size_t i = 0; i < servers_.size(); ++i) {
servers_[i]->Shutdown();
}
}
......@@ -135,17 +137,15 @@ class RoundRobinEnd2endTest : public ::testing::Test {
gpr_log(GPR_INFO, "starting server on port %d", port_);
std::mutex mu;
std::condition_variable cond;
thread_ = new std::thread([this, server_host, &mu, &cond]() {
Start(server_host);
lock_guard<mutex> lock(mu);
cond.notify_one();
});
thread_ = new std::thread(
std::bind(&ServerData::Start, this, server_host, &mu, &cond));
unique_lock<mutex> lock(mu);
cond.wait(lock);
gpr_log(GPR_INFO, "server startup complete");
}
void Start(const grpc::string& server_host) {
void Start(const grpc::string& server_host, std::mutex* mu,
std::condition_variable* cond) {
std::ostringstream server_address;
server_address << server_host << ":" << port_;
ServerBuilder builder;
......@@ -153,6 +153,8 @@ class RoundRobinEnd2endTest : public ::testing::Test {
InsecureServerCredentials());
builder.RegisterService(&service_);
server_ = builder.BuildAndStart();
lock_guard<mutex> lock(*mu);
cond->notify_one();
}
void Shutdown() {
......@@ -175,8 +177,8 @@ TEST_F(RoundRobinEnd2endTest, PickFirst) {
SendRpc(kNumServers);
// All requests should have gone to a single server.
bool found = false;
for (const auto& server : servers_) {
const int request_count = server->service_.request_count();
for (size_t i = 0; i < servers_.size(); ++i) {
const int request_count = servers_[i]->service_.request_count();
if (request_count == kNumServers) {
found = true;
} else {
......@@ -193,8 +195,8 @@ TEST_F(RoundRobinEnd2endTest, RoundRobin) {
ResetStub(true /* round_robin */);
SendRpc(kNumServers);
// One request should have gone to each server.
for (const auto& server : servers_) {
EXPECT_EQ(1, server->service_.request_count());
for (size_t i = 0; i < servers_.size(); ++i) {
EXPECT_EQ(1, servers_[i]->service_.request_count());
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment