New issue
Advanced search Search tips

Issue 706204 link

Starred by 1 user

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 3
Type: Bug



Sign in to add a comment

RequirementsCheckerBrowserTest.Check3DExtension doesn't really test stuff

Project Member Reported by michae...@chromium.org, Mar 28 2017

Issue description

RequirementsCheckerBrowserTest.Check3DExtension tests the ChromeRequirementsChecker's GPU check, which is done with a content::GpuFeatureChecker::CheckGpuFeatureAvailability call.

The test doesn't actually allow the GPU check to complete (on platforms that support it; I've tested this on my local Linux box).

As a result, the ChromeRequirementsChecker doesn't complete its check, and the test function ValidateRequirementErrors doesn't get called. So the test doesn't check that the RequirementsChecker doesn't eventually fail.

I've tried debugging this and adding threads and message loops, but it dives into some GPU code and I'm not very familiar with how our test threads compare with real threads with respect to GPU queries, so it hasn't been very fruitful.

https://cs.chromium.org/chromium/src/chrome/browser/extensions/requirements_checker_browsertest.cc?type=cs&q=requirements_checker_browsertest&sq=package:chromium&l=160-163

Patch that checks whether the check finishes, causing the test to fail: https://codereview.chromium.org/2776263004/
 

Comment 1 by piman@chromium.org, Mar 28 2017

I think as far as the GPU code is concerned, threading isn't different from Chrome, since this is a browser test. In the worst case, GpuFeatureChecker::CheckGpuFeatureAvailability needs to create a new GPU process, send some IPCs to it, and get a reply from it. Then it will call the callback. But all this should involve the same threads (browser IO thread, possibly a process launcher thread depending on the platform, the created GPU process's main and IO threads).

Sign in to add a comment