Commit aa5d90ef authored by miletus@chromium.org's avatar miletus@chromium.org

Enable test LayerTreeHostTestBreakSwapPromise with verbose logging information

The log of the flaky LayerTreeHostTestBreakSwapPromise test shows that

[ RUN      ] LayerTreeHostTestBreakSwapPromise.RunMultiThread_DelegatingRenderer_ImplSidePaint
c:\b\build\slave\win_x64_builder\build\src\cc\trees\layer_tree_host_unittest.cc(4500): error: Value of: swap_promise_result_[2].did_not_swap_called
Actual: false
Expected: true
c:\b\build\slave\win_x64_builder\build\src\cc\trees\layer_tree_host_unittest.cc(4501): error: Value of: swap_promise_result_[2].reason
Actual: 0
Expected: SwapPromise::SWAP_FAILS
Which is: 1
[  FAILED  ] LayerTreeHostTestBreakSwapPromise.RunMultiThread_DelegatingRenderer_ImplSidePaint (3 ms)

We have a EXPECT_TRUE on the SwapPromise's dtor to be called which passes.
It means we destroyed the SwapPromise without ever breaking them first
(no DidNotSwap ever called). I checked all the code path where we destroy
SwapPromise and we always break them first. So I can't figure out why it
is the case. I am adding some logging information and turn this test back
on, hopefully next time it fails on the bot I can use the extra logging
information to debug.

BUG=393995

Review URL: https://codereview.chromium.org/477443002

Cr-Commit-Position: refs/heads/master@{#289679}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@289679 0039d316-1c4b-4281-b951-d872f2087c98
parent 86493cdf
...@@ -4423,11 +4423,19 @@ class TestSwapPromise : public SwapPromise { ...@@ -4423,11 +4423,19 @@ class TestSwapPromise : public SwapPromise {
virtual ~TestSwapPromise() { virtual ~TestSwapPromise() {
base::AutoLock lock(result_->lock); base::AutoLock lock(result_->lock);
LOG(ERROR) << "~TestSwapPromise() "
<< " did_swap_called " << result_->did_swap_called
<< " did_not_swap_called " << result_->did_not_swap_called
<< " result addr " << result_;
result_->dtor_called = true; result_->dtor_called = true;
} }
virtual void DidSwap(CompositorFrameMetadata* metadata) OVERRIDE { virtual void DidSwap(CompositorFrameMetadata* metadata) OVERRIDE {
base::AutoLock lock(result_->lock); base::AutoLock lock(result_->lock);
LOG(ERROR) << "TestSwapPromise::DidSwap "
<< " did_swap_called " << result_->did_swap_called
<< " did_not_swap_called " << result_->did_not_swap_called
<< " result addr " << result_;
EXPECT_FALSE(result_->did_swap_called); EXPECT_FALSE(result_->did_swap_called);
EXPECT_FALSE(result_->did_not_swap_called); EXPECT_FALSE(result_->did_not_swap_called);
result_->did_swap_called = true; result_->did_swap_called = true;
...@@ -4435,6 +4443,11 @@ class TestSwapPromise : public SwapPromise { ...@@ -4435,6 +4443,11 @@ class TestSwapPromise : public SwapPromise {
virtual void DidNotSwap(DidNotSwapReason reason) OVERRIDE { virtual void DidNotSwap(DidNotSwapReason reason) OVERRIDE {
base::AutoLock lock(result_->lock); base::AutoLock lock(result_->lock);
LOG(ERROR) << "TestSwapPromise::DidNotSwap "
<< " reason " << reason
<< " did_swap_called " << result_->did_swap_called
<< " did_not_swap_called " << result_->did_not_swap_called
<< " result addr " << result_;
EXPECT_FALSE(result_->did_swap_called); EXPECT_FALSE(result_->did_swap_called);
EXPECT_FALSE(result_->did_not_swap_called); EXPECT_FALSE(result_->did_not_swap_called);
result_->did_not_swap_called = true; result_->did_not_swap_called = true;
...@@ -4520,7 +4533,8 @@ class LayerTreeHostTestBreakSwapPromise : public LayerTreeHostTest { ...@@ -4520,7 +4533,8 @@ class LayerTreeHostTestBreakSwapPromise : public LayerTreeHostTest {
}; };
// TODO(miletus): Flaky test: crbug.com/393995 // TODO(miletus): Flaky test: crbug.com/393995
// MULTI_THREAD_TEST_F(LayerTreeHostTestBreakSwapPromise); // Enabled with verbose logging information.
MULTI_THREAD_TEST_F(LayerTreeHostTestBreakSwapPromise);
class LayerTreeHostTestBreakSwapPromiseForVisibilityAbortedCommit class LayerTreeHostTestBreakSwapPromiseForVisibilityAbortedCommit
: public LayerTreeHostTest { : public LayerTreeHostTest {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment