New issue
Advanced search Search tips

Issue 662561 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Nov 2016
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 3
Type: Bug

Blocking:
issue 662559



Sign in to add a comment

QuadTest.ContainsPoint fails on arm

Project Member Reported by thakis@chromium.org, Nov 4 2016

Issue description

I figured we should run gfx_unittests on Android (https://codereview.chromium.org/2483493002).

https://build.chromium.org/p/tryserver.chromium.android/builders/android_n5x_swarming_rel/builds/62130/steps/gfx_unittests%20%28with%20patch%29%20on%20Android/logs/QuadTest.ContainsPoint

QuadTest.ContainsPoint (run #1):
[ RUN      ] QuadTest.ContainsPoint
../../ui/gfx/geometry/quad_unittest.cc:285: Failure
Value of: QuadF(a, b, c, d).Contains(b)
  Actual: false
Expected: true
[  FAILED  ] QuadTest.ContainsPoint (0 ms)

This looks potentially pretty scary.

Dana, can you take a look? This blocks running gfx_unittests on Android.
 

Comment 2 by danakj@chromium.org, Nov 16 2016

So this test passes on ARM for me on a Nexus 7.. 

I    7.583s run_tests_on_device(05829591)  >>ScopedMainEntryLogger
I    7.583s run_tests_on_device(05829591)  Note: Google Test filter = QuadTest.ContainsPoint
I    7.583s run_tests_on_device(05829591)  [==========] Running 1 test from 1 test case.
I    7.583s run_tests_on_device(05829591)  [----------] Global test environment set-up.
I    7.584s run_tests_on_device(05829591)  [----------] 1 test from QuadTest
I    7.584s run_tests_on_device(05829591)  [ RUN      ] QuadTest.ContainsPoint
I    7.584s run_tests_on_device(05829591)  [       OK ] QuadTest.ContainsPoint (0 ms)
I    7.584s run_tests_on_device(05829591)  [----------] 1 test from QuadTest (0 ms total)
I    7.584s run_tests_on_device(05829591)  
I    7.584s run_tests_on_device(05829591)  [----------] Global test environment tear-down
I    7.584s run_tests_on_device(05829591)  [==========] 1 test from 1 test case ran. (1 ms total)
I    7.585s run_tests_on_device(05829591)  [  PASSED  ] 1 test.

Comment 3 by danakj@chromium.org, Nov 16 2016

I tried on a Nexus 5x as well (and I did in fact comment out the #if to be clear) and it passes on that also.

I   22.262s run_tests_on_device(00f59b03b0b59bae)  [==========] Running 1 test from 1 test case.
I   22.262s run_tests_on_device(00f59b03b0b59bae)  [----------] Global test environment set-up.
I   22.262s run_tests_on_device(00f59b03b0b59bae)  [----------] 1 test from QuadTest
I   22.262s run_tests_on_device(00f59b03b0b59bae)  [ RUN      ] QuadTest.ContainsPoint
I   22.262s run_tests_on_device(00f59b03b0b59bae)  [       OK ] QuadTest.ContainsPoint (0 ms)
I   22.262s run_tests_on_device(00f59b03b0b59bae)  [----------] 1 test from QuadTest (0 ms total)
I   22.262s run_tests_on_device(00f59b03b0b59bae)  
I   22.263s run_tests_on_device(00f59b03b0b59bae)  [----------] Global test environment tear-down
I   22.263s run_tests_on_device(00f59b03b0b59bae)  [==========] 1 test from 1 test case ran. (1 ms total)
I   22.263s run_tests_on_device(00f59b03b0b59bae)  [  PASSED  ] 1 test.

Comment 4 by danakj@chromium.org, Nov 16 2016

https://codereview.chromium.org/2504583003/ does what I did locally for bots.

Comment 6 by danakj@chromium.org, Nov 16 2016

Cc: danakj@chromium.org
Owner: thakis@chromium.org
Nico, since you were doing this, do u have any ideas or who I should ask questions to?

Comment 7 by danakj@chromium.org, Nov 16 2016

I tried using target_cpu = "arm64" but that fails to install on nexus7 so guess not.

Comment 8 by thakis@chromium.org, Nov 16 2016

Cc: -danakj@chromium.org
Owner: danakj@chromium.org
From the trybot:

Writing """\
dcheck_always_on = true
ffmpeg_branding = "Chrome"
goma_dir = "/b/c/cipd/goma"
is_component_build = false
is_debug = false
proprietary_codecs = true
symbol_level = 1
target_cpu = "arm64"
target_os = "android"
use_goma = true
""" to /b/c/

I'd try in that config on a n5x.

Comment 9 by danakj@chromium.org, Nov 16 2016

Ah ok ya "target_cpu = "arm64"" on a n5x does reproduce this.
Project Member

Comment 10 by bugdroid1@chromium.org, Nov 17 2016

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

commit 1f740dbd1a15d3a904f40a4175eaad8c536becd7
Author: danakj <danakj@chromium.org>
Date: Thu Nov 17 01:42:10 2016

Fix QuadF::ContainsPoint and gfx::CrossProduct on arm64

These methods require the use of doubles to not give incorrect
answers. Tests were failing on arm64 due to precision mistakes
with floats.

BUG= 662561 , 662556 

Review-Url: https://codereview.chromium.org/2504583003
Cr-Commit-Position: refs/heads/master@{#432685}

[modify] https://crrev.com/1f740dbd1a15d3a904f40a4175eaad8c536becd7/ui/gfx/geometry/quad_f.cc
[modify] https://crrev.com/1f740dbd1a15d3a904f40a4175eaad8c536becd7/ui/gfx/geometry/quad_unittest.cc
[modify] https://crrev.com/1f740dbd1a15d3a904f40a4175eaad8c536becd7/ui/gfx/geometry/vector3d_f.cc
[modify] https://crrev.com/1f740dbd1a15d3a904f40a4175eaad8c536becd7/ui/gfx/geometry/vector3d_unittest.cc

Status: Fixed (was: Assigned)

Sign in to add a comment