Flutter Engine Uber Docs
Docs for the entire Flutter Engine repo.
 
Loading...
Searching...
No Matches
flutter::testing::android Namespace Reference

Classes

class  TestAndroidContext
 
class  TestImpellerContext
 

Functions

 TEST (AndroidContextGl, Create)
 
 TEST (AndroidContextGl, CreateImpeller)
 
 TEST (AndroidContextGl, CreateSingleThread)
 
 TEST (AndroidSurfaceGL, CreateSnapshopSurfaceWhenOnscreenSurfaceIsNotNull)
 
 TEST (AndroidSurfaceGL, CreateSnapshopSurfaceWhenOnscreenSurfaceIsNull)
 
 TEST (AndroidContextGl, EnsureMakeCurrentChecksCurrentContextStatus)
 

Function Documentation

◆ TEST() [1/6]

flutter::testing::android::TEST ( AndroidContextGl  ,
Create   
)

Definition at line 112 of file android_context_gl_unittests.cc.

112 {
113 GrMockOptions main_context_options;
114 sk_sp<GrDirectContext> main_context =
115 GrDirectContext::MakeMock(&main_context_options);
116 auto environment = fml::MakeRefCounted<AndroidEnvironmentGL>();
117 std::string thread_label =
118 ::testing::UnitTest::GetInstance()->current_test_info()->name();
119
121 thread_label, ThreadHost::Type::kUi | ThreadHost::Type::kRaster |
122 ThreadHost::Type::kIo));
123 TaskRunners task_runners = MakeTaskRunners(thread_label, thread_host);
124 auto context =
125 std::make_unique<AndroidContextGLSkia>(environment, task_runners);
126 context->SetMainSkiaContext(main_context);
127 EXPECT_NE(context.get(), nullptr);
128 context.reset();
129 EXPECT_TRUE(main_context->abandoned());
130}
The collection of all the threads used by the engine.
Definition thread_host.h:21

References flutter::ThreadHost::kIo, flutter::ThreadHost::kRaster, and flutter::ThreadHost::kUi.

◆ TEST() [2/6]

flutter::testing::android::TEST ( AndroidContextGl  ,
CreateImpeller   
)

Definition at line 132 of file android_context_gl_unittests.cc.

132 {
133 auto impeller_context = std::make_shared<TestImpellerContext>();
134 auto android_context = std::make_unique<TestAndroidContext>(
135 impeller_context, AndroidRenderingAPI::kImpellerOpenGLES);
136 EXPECT_FALSE(impeller_context->did_shutdown);
137
138 android_context.reset();
139
140 EXPECT_TRUE(impeller_context->did_shutdown);
141}

References flutter::kImpellerOpenGLES.

◆ TEST() [3/6]

flutter::testing::android::TEST ( AndroidContextGl  ,
CreateSingleThread   
)

Definition at line 143 of file android_context_gl_unittests.cc.

143 {
144 GrMockOptions main_context_options;
145 sk_sp<GrDirectContext> main_context =
146 GrDirectContext::MakeMock(&main_context_options);
147 auto environment = fml::MakeRefCounted<AndroidEnvironmentGL>();
148 std::string thread_label =
149 ::testing::UnitTest::GetInstance()->current_test_info()->name();
151 fml::RefPtr<fml::TaskRunner> platform_runner =
153 TaskRunners task_runners =
154 TaskRunners(thread_label, platform_runner, platform_runner,
155 platform_runner, platform_runner);
156 auto context =
157 std::make_unique<AndroidContextGLSkia>(environment, task_runners);
158 context->SetMainSkiaContext(main_context);
159 EXPECT_NE(context.get(), nullptr);
160 context.reset();
161 EXPECT_TRUE(main_context->abandoned());
162}
static void EnsureInitializedForCurrentThread()
fml::RefPtr< fml::TaskRunner > GetTaskRunner() const
static FML_EMBEDDER_ONLY MessageLoop & GetCurrent()

References fml::MessageLoop::EnsureInitializedForCurrentThread(), fml::MessageLoop::GetCurrent(), and fml::MessageLoop::GetTaskRunner().

◆ TEST() [4/6]

flutter::testing::android::TEST ( AndroidContextGl  ,
EnsureMakeCurrentChecksCurrentContextStatus   
)

Definition at line 211 of file android_context_gl_unittests.cc.

211 {
212 GrMockOptions main_context_options;
213 sk_sp<GrDirectContext> main_context =
214 GrDirectContext::MakeMock(&main_context_options);
215 auto environment = fml::MakeRefCounted<AndroidEnvironmentGL>();
216 std::string thread_label =
217 ::testing::UnitTest::GetInstance()->current_test_info()->name();
218
220 thread_label, ThreadHost::Type::kUi | ThreadHost::Type::kRaster |
221 ThreadHost::Type::kIo));
222 TaskRunners task_runners = MakeTaskRunners(thread_label, thread_host);
223 auto context =
224 std::make_unique<AndroidContextGLSkia>(environment, task_runners);
225
226 auto pbuffer_surface = context->CreatePbufferSurface();
227 auto status = pbuffer_surface->MakeCurrent();
228 EXPECT_EQ(AndroidEGLSurfaceMakeCurrentStatus::kSuccessMadeCurrent, status);
229
230 // context already current, so status must reflect that.
231 status = pbuffer_surface->MakeCurrent();
232 EXPECT_EQ(AndroidEGLSurfaceMakeCurrentStatus::kSuccessAlreadyCurrent, status);
233}

References flutter::ThreadHost::kIo, flutter::ThreadHost::kRaster, flutter::kSuccessAlreadyCurrent, flutter::kSuccessMadeCurrent, and flutter::ThreadHost::kUi.

◆ TEST() [5/6]

flutter::testing::android::TEST ( AndroidSurfaceGL  ,
CreateSnapshopSurfaceWhenOnscreenSurfaceIsNotNull   
)

Definition at line 164 of file android_context_gl_unittests.cc.

164 {
165 GrMockOptions main_context_options;
166 sk_sp<GrDirectContext> main_context =
167 GrDirectContext::MakeMock(&main_context_options);
168 auto environment = fml::MakeRefCounted<AndroidEnvironmentGL>();
169 std::string thread_label =
170 ::testing::UnitTest::GetInstance()->current_test_info()->name();
172 thread_label, ThreadHost::Type::kUi | ThreadHost::Type::kRaster |
173 ThreadHost::Type::kIo));
174 TaskRunners task_runners = MakeTaskRunners(thread_label, thread_host);
175 auto android_context =
176 std::make_shared<AndroidContextGLSkia>(environment, task_runners);
177 auto android_surface =
178 std::make_unique<AndroidSurfaceGLSkia>(android_context);
179 auto window = fml::MakeRefCounted<AndroidNativeWindow>(
180 nullptr, /*is_fake_window=*/true);
181 android_surface->SetNativeWindow(window, nullptr);
182 auto onscreen_surface = android_surface->GetOnscreenSurface();
183 EXPECT_NE(onscreen_surface, nullptr);
184 android_surface->CreateSnapshotSurface();
185 EXPECT_EQ(onscreen_surface, android_surface->GetOnscreenSurface());
186}
GLFWwindow * window
Definition main.cc:60

References flutter::ThreadHost::kIo, flutter::ThreadHost::kRaster, flutter::ThreadHost::kUi, and window.

◆ TEST() [6/6]

flutter::testing::android::TEST ( AndroidSurfaceGL  ,
CreateSnapshopSurfaceWhenOnscreenSurfaceIsNull   
)

Definition at line 188 of file android_context_gl_unittests.cc.

188 {
189 GrMockOptions main_context_options;
190 sk_sp<GrDirectContext> main_context =
191 GrDirectContext::MakeMock(&main_context_options);
192 auto environment = fml::MakeRefCounted<AndroidEnvironmentGL>();
193 std::string thread_label =
194 ::testing::UnitTest::GetInstance()->current_test_info()->name();
195
196 auto mask =
197 ThreadHost::Type::kUi | ThreadHost::Type::kRaster | ThreadHost::Type::kIo;
199
200 ThreadHost thread_host(host_config);
201 TaskRunners task_runners = MakeTaskRunners(thread_label, thread_host);
202 auto android_context =
203 std::make_shared<AndroidContextGLSkia>(environment, task_runners);
204 auto android_surface =
205 std::make_unique<AndroidSurfaceGLSkia>(android_context);
206 EXPECT_EQ(android_surface->GetOnscreenSurface(), nullptr);
207 android_surface->CreateSnapshotSurface();
208 EXPECT_NE(android_surface->GetOnscreenSurface(), nullptr);
209}

References flutter::ThreadHost::kIo, flutter::ThreadHost::kRaster, and flutter::ThreadHost::kUi.