| // Copyright 2017 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "lib/gtest/real_loop_fixture.h" |
| |
| #include <lib/async/cpp/task.h> |
| |
| namespace gtest { |
| namespace { |
| |
| using RealLoopFixtureTest = RealLoopFixture; |
| |
| TEST_F(RealLoopFixtureTest, Timeout) { |
| bool called = false; |
| async::PostDelayedTask( |
| dispatcher(), [&called] { called = true; }, zx::msec(100)); |
| RunLoopWithTimeout(zx::msec(10)); |
| EXPECT_FALSE(called); |
| RunLoopWithTimeout(zx::msec(100)); |
| EXPECT_TRUE(called); |
| } |
| |
| TEST_F(RealLoopFixtureTest, NoTimeout) { |
| // Check that the first run loop doesn't hit the timeout. |
| QuitLoop(); |
| EXPECT_FALSE(RunLoopWithTimeout(zx::msec(10))); |
| // But the second does. |
| EXPECT_TRUE(RunLoopWithTimeout(zx::msec(10))); |
| } |
| |
| } // namespace |
| } // namespace gtest |