From 44bd4cf1d7e2dbdf7a13e580fecab5f761423776 Mon Sep 17 00:00:00 2001 From: Jason Simmons Date: Thu, 3 Sep 2020 14:13:55 -0700 Subject: [PATCH] Log the results when ShellTest.Screenshot fails (flutter/engine#20932) This test has been flaky on LUCI recently. See https://github.com/flutter/flutter/issues/65026 --- .../flutter/shell/common/shell_unittests.cc | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/engine/src/flutter/shell/common/shell_unittests.cc b/engine/src/flutter/shell/common/shell_unittests.cc index 0b3c5844efb..f9ac952cc63 100644 --- a/engine/src/flutter/shell/common/shell_unittests.cc +++ b/engine/src/flutter/shell/common/shell_unittests.cc @@ -1482,6 +1482,21 @@ TEST_F(ShellTest, IsolateCanAccessPersistentIsolateData) { DestroyShell(std::move(shell), std::move(task_runners)); } +static void LogSkData(sk_sp data, const char* title) { + FML_LOG(ERROR) << "---------- " << title; + std::ostringstream ostr; + for (size_t i = 0; i < data->size();) { + ostr << std::hex << std::setfill('0') << std::setw(2) + << static_cast(data->bytes()[i]) << " "; + i++; + if (i % 16 == 0 || i == data->size()) { + FML_LOG(ERROR) << ostr.str(); + ostr.str(""); + ostr.clear(); + } + } +} + TEST_F(ShellTest, Screenshot) { auto settings = CreateSettingsForFixture(); fml::AutoResetWaitableEvent firstFrameLatch; @@ -1538,7 +1553,12 @@ TEST_F(ShellTest, Screenshot) { sk_sp reference_data = SkData::MakeWithoutCopy( reference_png->GetMapping(), reference_png->GetSize()); - ASSERT_TRUE(reference_data->equals(screenshot_future.get().data.get())); + sk_sp screenshot_data = screenshot_future.get().data; + if (!reference_data->equals(screenshot_data.get())) { + LogSkData(reference_data, "reference"); + LogSkData(screenshot_data, "screenshot"); + ASSERT_TRUE(false); + } DestroyShell(std::move(shell)); }