Add unit test for timeout=0
[folly.git] / folly / io / async / test / AsyncTimeoutTest.cpp
index 463fb3ab018245e5de1b9e87556b96807e9d6e57..1d7c04fe874b3fa60d6315336ca760c7429315bb 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2016 Facebook, Inc.
+ * Copyright 2017 Facebook, Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -53,6 +53,20 @@ TEST(AsyncTimeout, schedule) {
   EXPECT_EQ(expected, value);
 }
 
+TEST(AsyncTimeout, schedule_immediate) {
+  int value = 0;
+  int const expected = 10;
+  EventBase manager;
+
+  auto observer = AsyncTimeout::schedule(
+      std::chrono::milliseconds(0), manager, [&]() noexcept {
+        value = expected;
+      });
+
+  manager.loop();
+  EXPECT_EQ(expected, value);
+}
+
 TEST(AsyncTimeout, cancel_make) {
   int value = 0;
   int const expected = 10;
@@ -89,4 +103,4 @@ TEST(AsyncTimeout, cancel_schedule) {
   EXPECT_NE(expected, value);
 }
 
-} // namespace folly {
+} // namespace folly