Add WaitForPreviouslyPostedTasks to TaskQueueForTest.

Add an utility function to TaskQueueForTest to execute all already
posted tasks on the queue.

Bug: webrtc:11380
Change-Id: I6cf75bc543cfd2dd1c363935134d3f7bd55eec58
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/174140
Commit-Queue: Marina Ciocea <marinaciocea@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31152}
diff --git a/rtc_base/task_queue_for_test.h b/rtc_base/task_queue_for_test.h
index 7844dc4..dd5679b 100644
--- a/rtc_base/task_queue_for_test.h
+++ b/rtc_base/task_queue_for_test.h
@@ -66,6 +66,14 @@
   void SendTask(Closure&& task, rtc::Location loc) {
     ::webrtc::SendTask(loc, Get(), std::forward<Closure>(task));
   }
+
+  // Wait for the completion of all tasks posted prior to the
+  // WaitForPreviouslyPostedTasks() call.
+  void WaitForPreviouslyPostedTasks() {
+    // Post an empty task on the queue and wait for it to finish, to ensure
+    // that all already posted tasks on the queue get executed.
+    SendTask([]() {}, RTC_FROM_HERE);
+  }
 };
 
 }  // namespace webrtc