diff options
author | 2018-01-11 16:11:35 -0800 | |
---|---|---|
committer | 2018-01-21 21:03:56 -0800 | |
commit | 2b226adf60eac113e6c2780aa551c775e72511d6 (patch) | |
tree | ea3172e769594f379a093ea0f23b2927a47e4254 /test/cpp/common/alarm_cpp_test.cc | |
parent | 5b48dc737151464c1d863df6e4318ff3d766ddbc (diff) |
Remove alarm from core, implement in C++ layer only
Diffstat (limited to 'test/cpp/common/alarm_cpp_test.cc')
-rw-r--r-- | test/cpp/common/alarm_cpp_test.cc | 192 |
1 files changed, 0 insertions, 192 deletions
diff --git a/test/cpp/common/alarm_cpp_test.cc b/test/cpp/common/alarm_cpp_test.cc deleted file mode 100644 index 7adc3102f4..0000000000 --- a/test/cpp/common/alarm_cpp_test.cc +++ /dev/null @@ -1,192 +0,0 @@ -/* - * - * Copyright 2015 gRPC authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#include <grpc++/alarm.h> -#include <grpc++/completion_queue.h> -#include <thread> - -#include <gtest/gtest.h> - -#include "test/core/util/test_config.h" - -namespace grpc { -namespace { - -TEST(AlarmTest, RegularExpiry) { - CompletionQueue cq; - void* junk = reinterpret_cast<void*>(1618033); - Alarm alarm; - alarm.Set(&cq, grpc_timeout_seconds_to_deadline(1), junk); - - void* output_tag; - bool ok; - const CompletionQueue::NextStatus status = cq.AsyncNext( - (void**)&output_tag, &ok, grpc_timeout_seconds_to_deadline(2)); - - EXPECT_EQ(status, CompletionQueue::GOT_EVENT); - EXPECT_TRUE(ok); - EXPECT_EQ(junk, output_tag); -} - -TEST(AlarmTest, MultithreadedRegularExpiry) { - CompletionQueue cq; - void* junk = reinterpret_cast<void*>(1618033); - void* output_tag; - bool ok; - CompletionQueue::NextStatus status; - Alarm alarm; - - std::thread t1([&alarm, &cq, &junk] { - alarm.Set(&cq, grpc_timeout_seconds_to_deadline(1), junk); - }); - - std::thread t2([&cq, &ok, &output_tag, &status] { - status = cq.AsyncNext((void**)&output_tag, &ok, - grpc_timeout_seconds_to_deadline(2)); - }); - - t1.join(); - t2.join(); - EXPECT_EQ(status, CompletionQueue::GOT_EVENT); - EXPECT_TRUE(ok); - EXPECT_EQ(junk, output_tag); -} - -TEST(AlarmTest, DeprecatedRegularExpiry) { - CompletionQueue cq; - void* junk = reinterpret_cast<void*>(1618033); - Alarm alarm(&cq, grpc_timeout_seconds_to_deadline(1), junk); - - void* output_tag; - bool ok; - const CompletionQueue::NextStatus status = cq.AsyncNext( - (void**)&output_tag, &ok, grpc_timeout_seconds_to_deadline(2)); - - EXPECT_EQ(status, CompletionQueue::GOT_EVENT); - EXPECT_TRUE(ok); - EXPECT_EQ(junk, output_tag); -} - -TEST(AlarmTest, MoveConstructor) { - CompletionQueue cq; - void* junk = reinterpret_cast<void*>(1618033); - Alarm first; - first.Set(&cq, grpc_timeout_seconds_to_deadline(1), junk); - Alarm second(std::move(first)); - void* output_tag; - bool ok; - const CompletionQueue::NextStatus status = cq.AsyncNext( - (void**)&output_tag, &ok, grpc_timeout_seconds_to_deadline(2)); - EXPECT_EQ(status, CompletionQueue::GOT_EVENT); - EXPECT_TRUE(ok); - EXPECT_EQ(junk, output_tag); -} - -TEST(AlarmTest, MoveAssignment) { - CompletionQueue cq; - void* junk = reinterpret_cast<void*>(1618033); - Alarm first; - first.Set(&cq, grpc_timeout_seconds_to_deadline(1), junk); - Alarm second(std::move(first)); - first = std::move(second); - - void* output_tag; - bool ok; - const CompletionQueue::NextStatus status = cq.AsyncNext( - (void**)&output_tag, &ok, grpc_timeout_seconds_to_deadline(2)); - - EXPECT_EQ(status, CompletionQueue::GOT_EVENT); - EXPECT_TRUE(ok); - EXPECT_EQ(junk, output_tag); -} - -TEST(AlarmTest, RegularExpiryChrono) { - CompletionQueue cq; - void* junk = reinterpret_cast<void*>(1618033); - std::chrono::system_clock::time_point one_sec_deadline = - std::chrono::system_clock::now() + std::chrono::seconds(1); - Alarm alarm; - alarm.Set(&cq, one_sec_deadline, junk); - - void* output_tag; - bool ok; - const CompletionQueue::NextStatus status = cq.AsyncNext( - (void**)&output_tag, &ok, grpc_timeout_seconds_to_deadline(2)); - - EXPECT_EQ(status, CompletionQueue::GOT_EVENT); - EXPECT_TRUE(ok); - EXPECT_EQ(junk, output_tag); -} - -TEST(AlarmTest, ZeroExpiry) { - CompletionQueue cq; - void* junk = reinterpret_cast<void*>(1618033); - Alarm alarm; - alarm.Set(&cq, grpc_timeout_seconds_to_deadline(0), junk); - - void* output_tag; - bool ok; - const CompletionQueue::NextStatus status = cq.AsyncNext( - (void**)&output_tag, &ok, grpc_timeout_seconds_to_deadline(1)); - - EXPECT_EQ(status, CompletionQueue::GOT_EVENT); - EXPECT_TRUE(ok); - EXPECT_EQ(junk, output_tag); -} - -TEST(AlarmTest, NegativeExpiry) { - CompletionQueue cq; - void* junk = reinterpret_cast<void*>(1618033); - Alarm alarm; - alarm.Set(&cq, grpc_timeout_seconds_to_deadline(-1), junk); - - void* output_tag; - bool ok; - const CompletionQueue::NextStatus status = cq.AsyncNext( - (void**)&output_tag, &ok, grpc_timeout_seconds_to_deadline(1)); - - EXPECT_EQ(status, CompletionQueue::GOT_EVENT); - EXPECT_TRUE(ok); - EXPECT_EQ(junk, output_tag); -} - -TEST(AlarmTest, Cancellation) { - CompletionQueue cq; - void* junk = reinterpret_cast<void*>(1618033); - Alarm alarm; - alarm.Set(&cq, grpc_timeout_seconds_to_deadline(2), junk); - alarm.Cancel(); - - void* output_tag; - bool ok; - const CompletionQueue::NextStatus status = cq.AsyncNext( - (void**)&output_tag, &ok, grpc_timeout_seconds_to_deadline(1)); - - EXPECT_EQ(status, CompletionQueue::GOT_EVENT); - EXPECT_FALSE(ok); - EXPECT_EQ(junk, output_tag); -} - -} // namespace -} // namespace grpc - -int main(int argc, char** argv) { - grpc_test_init(argc, argv); - ::testing::InitGoogleTest(&argc, argv); - return RUN_ALL_TESTS(); -} |