Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit c351bd0

Browse files
author
Chris Yang
committed
fix existing tests
1 parent d5b8af0 commit c351bd0

File tree

1 file changed

+32
-14
lines changed

1 file changed

+32
-14
lines changed

shell/common/shell_unittests.cc

Lines changed: 32 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1054,16 +1054,18 @@ TEST_F(ShellTest,
10541054
auto end_frame_callback =
10551055
[&](bool should_resubmit_frame,
10561056
fml::RefPtr<fml::RasterThreadMerger> raster_thread_merger) {
1057-
external_view_embedder->UpdatePostPrerollResult(
1058-
PostPrerollResult::kSuccess);
1057+
if (should_resubmit_frame && !raster_thread_merger->IsMerged()) {
1058+
raster_thread_merger->MergeWithLease(10);
1059+
external_view_embedder->UpdatePostPrerollResult(
1060+
PostPrerollResult::kSuccess);
1061+
}
10591062
end_frame_latch.Signal();
10601063
};
10611064
external_view_embedder = std::make_shared<ShellTestExternalViewEmbedder>(
10621065
end_frame_callback, PostPrerollResult::kResubmitFrame, true);
10631066

10641067
auto shell = CreateShell(std::move(settings), GetTaskRunnersForFixture(),
10651068
false, external_view_embedder);
1066-
10671069
PlatformViewNotifyCreated(shell.get());
10681070

10691071
auto configuration = RunConfiguration::InferFromSettings(settings);
@@ -1074,12 +1076,16 @@ TEST_F(ShellTest,
10741076

10751077
PumpOneFrame(shell.get());
10761078
// `EndFrame` changed the post preroll result to `kSuccess`.
1079+
// First frame hasn't merged the threads yet, no
1080+
// `external_view_embedder->GetSubmittedFrameCount()` is called.
10771081
end_frame_latch.Wait();
1078-
ASSERT_EQ(1, external_view_embedder->GetSubmittedFrameCount());
1082+
ASSERT_EQ(0, external_view_embedder->GetSubmittedFrameCount());
10791083

1084+
// This is the resubmitted frame, which threads are also merged.
10801085
end_frame_latch.Wait();
1081-
ASSERT_EQ(2, external_view_embedder->GetSubmittedFrameCount());
1086+
ASSERT_EQ(1, external_view_embedder->GetSubmittedFrameCount());
10821087

1088+
PlatformViewNotifyDestroyed(shell.get());
10831089
DestroyShell(std::move(shell));
10841090
}
10851091

@@ -2019,14 +2025,24 @@ TEST_F(ShellTest, DiscardLayerTreeOnResize) {
20192025
SkISize expected_size = SkISize::Make(400, 200);
20202026

20212027
fml::AutoResetWaitableEvent end_frame_latch;
2028+
std::shared_ptr<ShellTestExternalViewEmbedder> external_view_embedder;
2029+
auto end_frame_callback =
2030+
[&](bool should_merge_thread,
2031+
fml::RefPtr<fml::RasterThreadMerger> raster_thread_merger) {
2032+
if (should_merge_thread) {
2033+
// TODO(cyanglaz): This test used external_view_embedder so we need to
2034+
// merge the threads here. However, the scenario it is testing is
2035+
// unrelated to platform views. We should consider to update this test
2036+
// so it doesn't require external_view_embedder.
2037+
raster_thread_merger->MergeWithLease(10);
2038+
external_view_embedder->UpdatePostPrerollResult(
2039+
PostPrerollResult::kSuccess);
2040+
}
2041+
end_frame_latch.Signal();
2042+
};
20222043

2023-
auto end_frame_callback = [&](bool, fml::RefPtr<fml::RasterThreadMerger>) {
2024-
end_frame_latch.Signal();
2025-
};
2026-
2027-
std::shared_ptr<ShellTestExternalViewEmbedder> external_view_embedder =
2028-
std::make_shared<ShellTestExternalViewEmbedder>(
2029-
std::move(end_frame_callback), PostPrerollResult::kSuccess, true);
2044+
external_view_embedder = std::make_shared<ShellTestExternalViewEmbedder>(
2045+
std::move(end_frame_callback), PostPrerollResult::kResubmitFrame, true);
20302046

20312047
std::unique_ptr<Shell> shell = CreateShell(
20322048
settings, GetTaskRunnersForFixture(), false, external_view_embedder);
@@ -2047,8 +2063,6 @@ TEST_F(ShellTest, DiscardLayerTreeOnResize) {
20472063

20482064
RunEngine(shell.get(), std::move(configuration));
20492065

2050-
fml::WeakPtr<RuntimeDelegate> runtime_delegate = shell->GetEngine();
2051-
20522066
PumpOneFrame(shell.get(), static_cast<double>(wrong_size.width()),
20532067
static_cast<double>(wrong_size.height()));
20542068

@@ -2060,10 +2074,14 @@ TEST_F(ShellTest, DiscardLayerTreeOnResize) {
20602074
static_cast<double>(expected_size.height()));
20612075

20622076
end_frame_latch.Wait();
2077+
// Threads not merged.
2078+
ASSERT_EQ(0, external_view_embedder->GetSubmittedFrameCount());
20632079

2080+
end_frame_latch.Wait();
20642081
ASSERT_EQ(1, external_view_embedder->GetSubmittedFrameCount());
20652082
ASSERT_EQ(expected_size, external_view_embedder->GetLastSubmittedFrameSize());
20662083

2084+
PlatformViewNotifyDestroyed(shell.get());
20672085
DestroyShell(std::move(shell));
20682086
}
20692087

0 commit comments

Comments
 (0)