aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/cpp/common/alarm_cpp_test.cc
diff options
context:
space:
mode:
authorGravatar Vijay Pai <vpai@google.com>2018-01-11 16:11:35 -0800
committerGravatar Vijay Pai <vpai@google.com>2018-01-21 21:03:56 -0800
commit2b226adf60eac113e6c2780aa551c775e72511d6 (patch)
treeea3172e769594f379a093ea0f23b2927a47e4254 /test/cpp/common/alarm_cpp_test.cc
parent5b48dc737151464c1d863df6e4318ff3d766ddbc (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.cc192
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();
-}