• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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()13 void 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()22 void ThreadTest::TearDown() {
23   thread_task_runner_ = nullptr;
24   thread_ = nullptr;
25   current_task_runner_ = nullptr;
26   extra_threads_.clear();
27 }
28 
GetCurrentTaskRunner()29 fml::RefPtr<fml::TaskRunner> ThreadTest::GetCurrentTaskRunner() {
30   return current_task_runner_;
31 }
32 
GetThreadTaskRunner()33 fml::RefPtr<fml::TaskRunner> ThreadTest::GetThreadTaskRunner() {
34   return thread_task_runner_;
35 }
36 
CreateNewThread(std::string name)37 fml::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