aboutsummaryrefslogtreecommitdiffhomepage
path: root/Firestore/core/test/firebase/firestore/util/async_queue_test.cc
diff options
context:
space:
mode:
Diffstat (limited to 'Firestore/core/test/firebase/firestore/util/async_queue_test.cc')
-rw-r--r--Firestore/core/test/firebase/firestore/util/async_queue_test.cc8
1 files changed, 6 insertions, 2 deletions
diff --git a/Firestore/core/test/firebase/firestore/util/async_queue_test.cc b/Firestore/core/test/firebase/firestore/util/async_queue_test.cc
index bcee2e3..4247584 100644
--- a/Firestore/core/test/firebase/firestore/util/async_queue_test.cc
+++ b/Firestore/core/test/firebase/firestore/util/async_queue_test.cc
@@ -83,16 +83,20 @@ TEST_P(AsyncQueueTest, VerifyIsCurrentQueueWorksWithOperationInProgress) {
queue.EnqueueBlocking([&] { EXPECT_NO_THROW(queue.VerifyIsCurrentQueue()); });
}
+// TODO(varconst): this test is inherently flaky because it can't be guaranteed
+// that the enqueued asynchronous operation didn't finish before the code has
+// a chance to even enqueue the next operation. Delays are chosen so that the
+// test is unlikely to fail in practice. Need to revisit this.
TEST_P(AsyncQueueTest, CanScheduleOperationsInTheFuture) {
std::string steps;
queue.Enqueue([&steps] { steps += '1'; });
queue.Enqueue([&] {
- queue.EnqueueAfterDelay(AsyncQueue::Milliseconds(5), kTimerId1, [&] {
+ queue.EnqueueAfterDelay(AsyncQueue::Milliseconds(20), kTimerId1, [&] {
steps += '4';
signal_finished();
});
- queue.EnqueueAfterDelay(AsyncQueue::Milliseconds(1), kTimerId2,
+ queue.EnqueueAfterDelay(AsyncQueue::Milliseconds(10), kTimerId2,
[&steps] { steps += '3'; });
queue.EnqueueRelaxed([&steps] { steps += '2'; });
});