Use task queue factory factory as parameter for TaskQueueTest

The new parameter simplify TaskQueueFactory lifetime and
allows insertion of per TestCase state

Bug: webrtc:10191
Change-Id: If4948df2756580957052b2b333b5c12cf4914d55
Reviewed-on: https://webrtc-review.googlesource.com/c/121648
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26583}
diff --git a/api/task_queue/task_queue_test.h b/api/task_queue/task_queue_test.h
index 300d6f3..e2e4730 100644
--- a/api/task_queue/task_queue_test.h
+++ b/api/task_queue/task_queue_test.h
@@ -10,6 +10,9 @@
 #ifndef API_TASK_QUEUE_TASK_QUEUE_TEST_H_
 #define API_TASK_QUEUE_TASK_QUEUE_TEST_H_
 
+#include <functional>
+#include <memory>
+
 #include "api/task_queue/task_queue_factory.h"
 #include "test/gtest.h"
 
@@ -20,12 +23,17 @@
 //
 // namespace {
 //
+// using ::testing::Values;
 // using ::webrtc::TaskQueueTest;
-// webrtc::TaskQueueFactory* MyFactory();
-// INSTANTIATE_TEST_SUITE_P(My, TaskQueueTest, ::testing::Values(MyFactory()));
+//
+// std::unique_ptr<webrtc::TaskQueueFactory> CreateMyFactory();
+//
+// INSTANTIATE_TEST_SUITE_P(My, TaskQueueTest, Values(CreateMyFactory));
 //
 // }  // namespace
-class TaskQueueTest : public ::testing::TestWithParam<TaskQueueFactory*> {};
+class TaskQueueTest : public ::testing::TestWithParam<
+                          std::function<std::unique_ptr<TaskQueueFactory>()>> {
+};
 
 }  // namespace webrtc