Lines Matching refs:loop
42 async::TestLoop loop;; in DefaultDispatcherIsSetAndUnset() local
43 EXPECT_EQ(loop.dispatcher(), async_get_default_dispatcher()); in DefaultDispatcherIsSetAndUnset()
53 async::TestLoop loop; in FakeClockTimeIsCorrect() local
55 EXPECT_EQ(0, loop.Now().get()); in FakeClockTimeIsCorrect()
56 EXPECT_EQ(0, async::Now(loop.dispatcher()).get()); in FakeClockTimeIsCorrect()
58 loop.RunUntilIdle(); in FakeClockTimeIsCorrect()
59 EXPECT_EQ(0, loop.Now().get()); in FakeClockTimeIsCorrect()
60 EXPECT_EQ(0, async::Now(loop.dispatcher()).get()); in FakeClockTimeIsCorrect()
62 loop.RunFor(zx::nsec(1)); in FakeClockTimeIsCorrect()
63 EXPECT_EQ(1, loop.Now().get()); in FakeClockTimeIsCorrect()
64 EXPECT_EQ(1, async::Now(loop.dispatcher()).get()); in FakeClockTimeIsCorrect()
66 loop.RunUntil(zx::time() + zx::nsec(3)); in FakeClockTimeIsCorrect()
67 EXPECT_EQ(3, loop.Now().get()); in FakeClockTimeIsCorrect()
68 EXPECT_EQ(3, async::Now(loop.dispatcher()).get()); in FakeClockTimeIsCorrect()
70 loop.RunFor(zx::nsec(7)); in FakeClockTimeIsCorrect()
71 EXPECT_EQ(10, loop.Now().get()); in FakeClockTimeIsCorrect()
72 EXPECT_EQ(10, async::Now(loop.dispatcher()).get()); in FakeClockTimeIsCorrect()
74 loop.RunUntil(zx::time() + zx::nsec(12)); in FakeClockTimeIsCorrect()
75 EXPECT_EQ(12, loop.Now().get()); in FakeClockTimeIsCorrect()
76 EXPECT_EQ(12, async::Now(loop.dispatcher()).get()); in FakeClockTimeIsCorrect()
79 loop.RunUntil(zx::time() + zx::nsec(10)); in FakeClockTimeIsCorrect()
80 EXPECT_EQ(12, loop.Now().get()); in FakeClockTimeIsCorrect()
81 EXPECT_EQ(12, async::Now(loop.dispatcher()).get()); in FakeClockTimeIsCorrect()
89 async::TestLoop loop; in TasksAreDispatched() local
91 async::PostDelayedTask(loop.dispatcher(), [&called] { called = true; }, zx::sec(2)); in TasksAreDispatched()
94 loop.RunFor(zx::sec(1)); in TasksAreDispatched()
98 loop.RunFor(zx::sec(1)); in TasksAreDispatched()
102 async::PostTask(loop.dispatcher(), [&called] { called = true; }); in TasksAreDispatched()
103 loop.RunUntilIdle(); in TasksAreDispatched()
112 async::TestLoop loop; in SameDeadlinesDispatchInPostingOrder() local
116 async::PostTask(loop.dispatcher(), [&] { in SameDeadlinesDispatchInPostingOrder()
120 async::PostTask(loop.dispatcher(), [&] { in SameDeadlinesDispatchInPostingOrder()
125 loop.RunUntilIdle(); in SameDeadlinesDispatchInPostingOrder()
132 loop.dispatcher(), in SameDeadlinesDispatchInPostingOrder()
139 loop.dispatcher(), in SameDeadlinesDispatchInPostingOrder()
146 loop.RunFor(zx::sec(5)); in SameDeadlinesDispatchInPostingOrder()
157 async::TestLoop loop; in NestedTasksAreDispatched() local
160 async::PostTask(loop.dispatcher(), [&] { in NestedTasksAreDispatched()
162 loop.dispatcher(), in NestedTasksAreDispatched()
165 loop.dispatcher(), in NestedTasksAreDispatched()
172 loop.RunFor(zx::hour(1)); in NestedTasksAreDispatched()
181 async::TestLoop loop; in TimeIsCorrectWhileDispatching() local
184 async::PostTask(loop.dispatcher(), [&] { in TimeIsCorrectWhileDispatching()
185 EXPECT_EQ(0, loop.Now().get()); in TimeIsCorrectWhileDispatching()
188 loop.dispatcher(), in TimeIsCorrectWhileDispatching()
190 EXPECT_EQ(10, loop.Now().get()); in TimeIsCorrectWhileDispatching()
192 loop.dispatcher(), in TimeIsCorrectWhileDispatching()
194 EXPECT_EQ(15, loop.Now().get()); in TimeIsCorrectWhileDispatching()
195 async::PostTask(loop.dispatcher(), [&] { in TimeIsCorrectWhileDispatching()
196 EXPECT_EQ(15, loop.Now().get()); in TimeIsCorrectWhileDispatching()
205 loop.RunFor(zx::nsec(15)); in TimeIsCorrectWhileDispatching()
214 async::TestLoop loop; in TasksAreCanceled() local
223 ASSERT_EQ(ZX_OK, taskA.Post(loop.dispatcher())); in TasksAreCanceled()
224 ASSERT_EQ(ZX_OK, taskB.Post(loop.dispatcher())); in TasksAreCanceled()
225 ASSERT_EQ(ZX_OK, taskC.Post(loop.dispatcher())); in TasksAreCanceled()
230 loop.RunUntilIdle(); in TasksAreCanceled()
241 async::TestLoop loop; in TimeIsAdvanced() local
245 auto time1 = async::Now(loop.dispatcher()); in TimeIsAdvanced()
247 ASSERT_EQ(ZX_OK, task.PostDelayed(loop.dispatcher(), zx::duration(1))); in TimeIsAdvanced()
249 loop.RunUntilIdle(); in TimeIsAdvanced()
252 EXPECT_EQ(time1.get(), async::Now(loop.dispatcher()).get()); in TimeIsAdvanced()
254 loop.AdvanceTimeByEpsilon(); in TimeIsAdvanced()
256 auto time2 = async::Now(loop.dispatcher()); in TimeIsAdvanced()
261 loop.RunUntilIdle(); in TimeIsAdvanced()
264 EXPECT_EQ(time2.get(), async::Now(loop.dispatcher()).get()); in TimeIsAdvanced()
272 async::TestLoop loop; in WaitsAreDispatched() local
279 ASSERT_EQ(ZX_OK, wait.Begin(loop.dispatcher())); in WaitsAreDispatched()
282 loop.RunUntilIdle(); in WaitsAreDispatched()
288 loop.RunUntilIdle(); in WaitsAreDispatched()
293 loop.RunUntilIdle(); in WaitsAreDispatched()
303 async::TestLoop loop; in NestedWaitsAreDispatched() local
320 waitC.Begin(loop.dispatcher()); in NestedWaitsAreDispatched()
325 waitB.Begin(loop.dispatcher()); in NestedWaitsAreDispatched()
331 ASSERT_EQ(ZX_OK, waitA.Begin(loop.dispatcher())); in NestedWaitsAreDispatched()
333 loop.RunUntilIdle(); in NestedWaitsAreDispatched()
340 loop.RunUntilIdle(); in NestedWaitsAreDispatched()
347 loop.RunUntilIdle(); in NestedWaitsAreDispatched()
354 loop.RunUntilIdle(); in NestedWaitsAreDispatched()
365 async::TestLoop loop; in WaitsAreCanceled() local
380 ASSERT_EQ(ZX_OK, waitA.Begin(loop.dispatcher())); in WaitsAreCanceled()
381 ASSERT_EQ(ZX_OK, waitB.Begin(loop.dispatcher())); in WaitsAreCanceled()
382 ASSERT_EQ(ZX_OK, waitC.Begin(loop.dispatcher())); in WaitsAreCanceled()
388 loop.RunUntilIdle(); in WaitsAreCanceled()
400 async::TestLoop loop; in NestedTasksAndWaitsAreDispatched() local
411 async::PostDelayedTask(loop.dispatcher(), in NestedTasksAndWaitsAreDispatched()
418 async::PostDelayedTask(loop.dispatcher(), in NestedTasksAndWaitsAreDispatched()
420 wait.Begin(loop.dispatcher()); in NestedTasksAndWaitsAreDispatched()
425 loop.RunFor(zx::min(3)); in NestedTasksAndWaitsAreDispatched()
432 loop.RunUntilIdle(); in NestedTasksAndWaitsAreDispatched()
437 loop.RunFor(zx::min(2)); in NestedTasksAndWaitsAreDispatched()
448 async::TestLoop loop; in TasksAreDispatchedOnManyLoops() local
449 auto loopA = loop.StartNewLoop(); in TasksAreDispatchedOnManyLoops()
450 auto loopB = loop.StartNewLoop(); in TasksAreDispatchedOnManyLoops()
451 auto loopC = loop.StartNewLoop(); in TasksAreDispatchedOnManyLoops()
460 async::PostDelayedTask(loop.dispatcher(), [&called] { called = true; }, zx::sec(1)); in TasksAreDispatchedOnManyLoops()
464 loop.RunUntilIdle(); in TasksAreDispatchedOnManyLoops()
471 loop.RunFor(zx::sec(1)); in TasksAreDispatchedOnManyLoops()
477 loop.RunFor(zx::sec(1)); in TasksAreDispatchedOnManyLoops()
489 async::TestLoop loop; in WaitsAreDispatchedOnManyLoops() local
490 auto loopA = loop.StartNewLoop(); in WaitsAreDispatchedOnManyLoops()
491 auto loopB = loop.StartNewLoop(); in WaitsAreDispatchedOnManyLoops()
492 auto loopC = loop.StartNewLoop(); in WaitsAreDispatchedOnManyLoops()
510 ASSERT_EQ(ZX_OK, wait.Begin(loop.dispatcher())); in WaitsAreDispatchedOnManyLoops()
518 loop.RunUntilIdle(); in WaitsAreDispatchedOnManyLoops()
530 bool DetermineDispatchOrder(std::unique_ptr<async::TestLoop> loop, int (*order)[4]) { in DetermineDispatchOrder() argument
533 auto loopA = loop->StartNewLoop(); in DetermineDispatchOrder()
534 auto loopB = loop->StartNewLoop(); in DetermineDispatchOrder()
535 auto loopC = loop->StartNewLoop(); in DetermineDispatchOrder()
548 ASSERT_EQ(ZX_OK, wait.Begin(loop->dispatcher())); in DetermineDispatchOrder()
552 loop->RunUntilIdle(); in DetermineDispatchOrder()
563 bool SeedTestLoopWithEnv(uint32_t random_seed, std::unique_ptr<async::TestLoop>* loop) { in SeedTestLoopWithEnv() argument
569 *loop = std::make_unique<async::TestLoop>(); in SeedTestLoopWithEnv()
579 std::unique_ptr<async::TestLoop> loop; in DispatchOrderIsDeterministicFor() local
581 EXPECT_TRUE(SeedTestLoopWithEnv(random_seed, &loop)); in DispatchOrderIsDeterministicFor()
582 EXPECT_TRUE(DetermineDispatchOrder(std::move(loop), &expected_order)); in DispatchOrderIsDeterministicFor()
588 EXPECT_TRUE(SeedTestLoopWithEnv(random_seed, &loop)); in DispatchOrderIsDeterministicFor()
590 loop = std::make_unique<async::TestLoop>(random_seed); in DispatchOrderIsDeterministicFor()
592 EXPECT_TRUE(DetermineDispatchOrder(std::move(loop), &actual_order)); in DispatchOrderIsDeterministicFor()