1 // Copyright 2013 The Flutter Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #define FML_USED_ON_EMBEDDER 6 7 #include "flutter/testing/thread_test.h" 8 9 namespace flutter { 10 namespace testing { 11 12 // |testing::Test| SetUp()13void ThreadTest::SetUp() { 14 thread_ = std::make_unique<fml::Thread>(); 15 thread_task_runner_ = thread_->GetTaskRunner(); 16 17 fml::MessageLoop::EnsureInitializedForCurrentThread(); 18 current_task_runner_ = fml::MessageLoop::GetCurrent().GetTaskRunner(); 19 } 20 21 // |testing::Test| TearDown()22void ThreadTest::TearDown() { 23 thread_task_runner_ = nullptr; 24 thread_ = nullptr; 25 current_task_runner_ = nullptr; 26 extra_threads_.clear(); 27 } 28 GetCurrentTaskRunner()29fml::RefPtr<fml::TaskRunner> ThreadTest::GetCurrentTaskRunner() { 30 return current_task_runner_; 31 } 32 GetThreadTaskRunner()33fml::RefPtr<fml::TaskRunner> ThreadTest::GetThreadTaskRunner() { 34 return thread_task_runner_; 35 } 36 CreateNewThread(std::string name)37fml::RefPtr<fml::TaskRunner> ThreadTest::CreateNewThread(std::string name) { 38 auto thread = std::make_unique<fml::Thread>(name); 39 auto runner = thread->GetTaskRunner(); 40 extra_threads_.emplace_back(std::move(thread)); 41 return runner; 42 } 43 44 } // namespace testing 45 } // namespace flutter 46