New issue
Advanced search Search tips

Issue 756125 link

Starred by 1 user

Issue metadata

Status: Archived
Owner:
Closed: Aug 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 3
Type: Bug



Sign in to add a comment

WindowTreeClientClientTests consistently fail first run

Project Member Reported by jonr...@chromium.org, Aug 16 2017

Issue description

Run: hide_tests ./out/cros/aura_unittests  --gtest_filter=*WindowTreeClientClientTest*Input*

Currently two tests fail on the first pass, but in subsequent retries of an entire test suite, they pass:

 WindowTreeClientClientTest.InputMouseEventNoWindow
 WindowTreeClientClientTestHighDPI.InputEventsInDip

../../ui/aura/mus/window_tree_client_unittest.cc:1164: Failure
      Expected: gfx::Point()
      Which is: 0,0
To be equal to: env->last_mouse_location()
      Which is: 20,30
[  FAILED  ] WindowTreeClientClientTest.InputMouseEventNoWindow (67 ms)

../../ui/aura/mus/window_tree_client_unittest.cc:2408: Failure
      Expected: 2.0f
      Which is: 2
To be equal to: display.device_scale_factor()
      Which is: 1
[  FAILED  ] WindowTreeClientClientTestHighDPI.InputEventsInDip (62 ms)



 

Comment 1 by varkha@chromium.org, Aug 16 2017

Components: -MUS Tests Internals>Aura
Labels: OS-Chrome
The tests that fail the first time when running aura_unittests:

[ RUN      ] WindowTreeClientClientTest.InputMouseEventNoWindow
../../ui/aura/mus/window_tree_client_unittest.cc:1164: Failure
      Expected: gfx::Point()
      Which is: 0,0
To be equal to: env->last_mouse_location()
      Which is: 20,30
[  FAILED  ] WindowTreeClientClientTest.InputMouseEventNoWindow (7 ms)


[ RUN      ] WindowTreeClientClientTestHighDPI.NewTopLevelWindowBounds
../../ui/aura/mus/window_tree_client_unittest.cc:2363: Failure
      Expected: gfx::Rect(0, 0, 3, 4)
      Which is: 0,0 3x4
To be equal to: top_level->bounds()
      Which is: 0,0 6x8
[  FAILED  ] WindowTreeClientClientTestHighDPI.NewTopLevelWindowBounds (5 ms)


[ RUN      ] WindowTreeClientClientTestHighDPI.PointerEventsInDip
../../ui/aura/mus/window_tree_client_unittest.cc:2370: Failure
      Expected: 2.0f
      Which is: 2
To be equal to: primary_display.device_scale_factor()
      Which is: 1
[  FAILED  ] WindowTreeClientClientTestHighDPI.PointerEventsInDip (8 ms)


[ RUN      ] WindowTreeClientClientTestHighDPI.InputEventsInDip
../../ui/aura/mus/window_tree_client_unittest.cc:2408: Failure
      Expected: 2.0f
      Which is: 2
To be equal to: display.device_scale_factor()
      Which is: 1
[  FAILED  ] WindowTreeClientClientTestHighDPI.InputEventsInDip (6 ms)


[ RUN      ] WindowEventDispatcherTest.OnHostMouseEvent/0
../../ui/aura/window_event_dispatcher_unittest.cc:138: Failure
      Expected: 1
To be equal to: delegate1->non_client_count()
      Which is: 0
../../ui/aura/window_event_dispatcher_unittest.cc:141: Failure
      Expected: gfx::Point(1, 1)
      Which is: 1,1
To be equal to: delegate1->non_client_location()
      Which is: 0,0
../../ui/aura/window_event_dispatcher_unittest.cc:143: Failure
      Expected: 1
To be equal to: delegate1->mouse_event_count()
      Which is: 0
../../ui/aura/window_event_dispatcher_unittest.cc:146: Failure
      Expected: gfx::Point(1, 1)
      Which is: 1,1
To be equal to: delegate1->mouse_event_location()
      Which is: 0,0
../../ui/aura/window_event_dispatcher_unittest.cc:148: Failure
Value of: delegate1->mouse_event_flags() & ui::EF_IS_NON_CLIENT
  Actual: false
Expected: true
[  FAILED  ] WindowEventDispatcherTest.OnHostMouseEvent/0, where GetParam() = 4-byte object <00-00 00-00> (27 ms)


[ RUN      ] WindowEventDispatcherTest.OnHostMouseEvent/1
../../ui/aura/window_event_dispatcher_unittest.cc:138: Failure
      Expected: 1
To be equal to: delegate1->non_client_count()
      Which is: 0
../../ui/aura/window_event_dispatcher_unittest.cc:141: Failure
      Expected: gfx::Point(1, 1)
      Which is: 1,1
To be equal to: delegate1->non_client_location()
      Which is: 0,0
../../ui/aura/window_event_dispatcher_unittest.cc:143: Failure
      Expected: 1
To be equal to: delegate1->mouse_event_count()
      Which is: 0
../../ui/aura/window_event_dispatcher_unittest.cc:146: Failure
      Expected: gfx::Point(1, 1)
      Which is: 1,1
To be equal to: delegate1->mouse_event_location()
      Which is: 0,0
../../ui/aura/window_event_dispatcher_unittest.cc:148: Failure
Value of: delegate1->mouse_event_flags() & ui::EF_IS_NON_CLIENT
  Actual: false
Expected: true
[  FAILED  ] WindowEventDispatcherTest.OnHostMouseEvent/1, where GetParam() = 4-byte object <01-00 00-00> (14 ms)


[ RUN      ] WindowEventDispatcherTest.TouchDownState/0
../../ui/aura/window_event_dispatcher_unittest.cc:200: Failure
Value of: Env::GetInstance()->is_touch_down()
  Actual: true
Expected: false
[  FAILED  ] WindowEventDispatcherTest.TouchDownState/0, where GetParam() = 4-byte object <00-00 00-00> (27 ms)


[ RUN      ] WindowEventDispatcherTest.TouchDownState/1
../../ui/aura/window_event_dispatcher_unittest.cc:200: Failure
Value of: Env::GetInstance()->is_touch_down()
  Actual: true
Expected: false
[  FAILED  ] WindowEventDispatcherTest.TouchDownState/1, where GetParam() = 4-byte object <01-00 00-00> (11 ms)


And then they [always] pass on the second try:
Retrying 8 tests (retry #1)
[414/421] WindowTreeClientClientTestHighDPI.PointerEventsInDip (28 ms)
[415/421] WindowTreeClientClientTestHighDPI.NewTopLevelWindowBounds (25 ms)
[416/421] WindowTreeClientClientTestHighDPI.InputEventsInDip (28 ms)
[417/421] WindowTreeClientClientTest.InputMouseEventNoWindow (27 ms)
[418/421] WindowEventDispatcherTest.TouchDownState/1 (27 ms)
[419/421] WindowEventDispatcherTest.TouchDownState/0 (48 ms)
[420/421] WindowEventDispatcherTest.OnHostMouseEvent/1 (27 ms)
[421/421] WindowEventDispatcherTest.OnHostMouseEvent/0 (49 ms)
SUCCESS: all tests passed.
This is because aura::Env is created once for the entire test suite. This persists state across tests.

I'll add a method for tests to reset the state.
Status: Started (was: Available)
Project Member

Comment 4 by bugdroid1@chromium.org, Aug 18 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8607ee85a9d0e256b1e25d163090cdf026751b31

commit 8607ee85a9d0e256b1e25d163090cdf026751b31
Author: Jonathan <jonross@chromium.org>
Date: Fri Aug 18 20:26:33 2017

Reset Aura Env between tests

A series of aura_unittests were failing consistently on the first attempt, but
passing when ran in isolation.

WindowTreeClientClientTest, WindowTreeClientClientTestHighDPI, WindowEventDispatcherTest

This is because display scale factors are preserved between tests, ignoring
newly set command line flags. Furthermore input event states were also
persisting between runs.

EnvTestHelper has been updated to clear out mouse location and the global
EnvInputStateController.

AuraTestHelper has been updated to clear forced device scales between tests.

TEST= aura_unittests

Bug:  756125 
Change-Id: I207f03a2ad263345d212f6571e194ceb7f8e573d
Reviewed-on: https://chromium-review.googlesource.com/621509
Commit-Queue: Jonathan Ross <jonross@chromium.org>
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Cr-Commit-Position: refs/heads/master@{#495667}
[modify] https://crrev.com/8607ee85a9d0e256b1e25d163090cdf026751b31/ui/aura/env_input_state_controller.h
[modify] https://crrev.com/8607ee85a9d0e256b1e25d163090cdf026751b31/ui/aura/test/aura_test_helper.cc
[modify] https://crrev.com/8607ee85a9d0e256b1e25d163090cdf026751b31/ui/aura/test/env_test_helper.h

Status: Fixed (was: Started)

Comment 6 by dchan@chromium.org, Jan 22 2018

Status: Archived (was: Fixed)

Sign in to add a comment