New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 609684 link

Starred by 2 users

Issue metadata

Status: Verified
Owner:
Last visit 26 days ago
Closed: May 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 3
Type: Bug

Blocking:
issue 354261
issue 498033



Sign in to add a comment

PPAPINaCl browser_tests are busted on 32-bit Win

Project Member Reported by dpranke@chromium.org, May 6 2016

Issue description

It looks like something is not configured right, because none of the PPAPINaCl browser tests seem to work when trying to run a 32-bit browser_tests.exe build:

http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_ng/builds/216701

It looks like maybe something is confused over which architecture should be being used?

The 64-bit version seems to run fine, and I would've sworn Roland and/or Petr had tested the 32-bit version at one point, too?
 
Owner: brucedaw...@chromium.org
Status: Started (was: Untriaged)
I'll take a look.
ppapi_nacl_tests_newlib_x64.nexe is not being built in 32-bit gn builds. Deleting this from the gyp output directory causes the same failure. I'm investigating why this is not a target in 32-bit gn builds.

There are also some worrisome warnings when running the test that need investigation.
Cc: dpranke@chromium.org
Owner: mcgrathr@chromium.org
We think we understand the issue, but GN makes it a bit hairy.
As well as building both nexes, we need to generate a single nmf that includes both.  In GN, we have the generate_nmf step inside a particular nacl toolchain, so it is less than obvious how to do a single generate_nmf step that gets its inputs (the nexes) from two different toolchains.  Petr and I have an idea or two, but advice from GN gurus is welcome.
It's a bit unclear to me what the requirements are.

In what follows, I'm guessing based on what I can glean from looking at //chrome/test/data/BUILD.gn and //papapi/native_client/nacl_test_data.gni .

IIUC correctly, you're specifying dependencies on nmf's in a given toolchain (glibc/newlib/pnacl), and so each nmf contains only one reference to the corresponding nacl binary with the same toolchain; there's no way to have an nmf refer to multiple nexe/pexe's.

And yet, in this situation we actually need the nmf's to contain multiple nexe's ?

And, in GYP, we accomplish this by having a single step that contains flags for which toolchains you want, right?

Can we restructure the data dependencies so that we have a single toolchain-independent nmf that contains dependencies on the nexe's in each of the desired formats and then builds the nmf that refers to all of them as appropriate?

Failing that, since this are (I think) just test binaries, can/should we just have a build flag that specifies which architecture we should generate them for? 
The problem with making the nmf step toolchain-independent is that the nmf generation actually needs to know a lot of information about the target toolchain such as the path to toolchain libraries.

The idea we were discussing with Roland is to extend the copy target, which is responsible for copying the nexe from toolchain build directory to the target directory, to build (by adding an extra dependency) and copy both 32-bit and 64-bit nexe when target_os is win. Since the generate_nmf step uses get_target_outputs to get the list nexes and passes them to the create_nmf.py script, this should do the right thing.

The reason for doing the refactoring in https://codereview.chromium.org/1955173002/ is that we can do this change just once in nacl_test_data rather than replicating it multiple times.
ok.
Project Member

Comment 7 by bugdroid1@chromium.org, May 9 2016

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

commit e19dffc8f0896799ea782c0acba651ef39fc6d73
Author: phosek <phosek@chromium.org>
Date: Mon May 09 07:03:49 2016

[gn] Use nacl_test_data template for PPAPI tests

The nacl_test_data template functionality largely overlaps with the
build logic for PPAPI tests. By replacing that logic with nacl_test_data
template, any future changes, like correctly handling Windows build,
can be isolated to that template.

BUG=https://bugs.chromium.org/p/chromium/issues/detail?id=609684

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

[modify] https://crrev.com/e19dffc8f0896799ea782c0acba651ef39fc6d73/ppapi/BUILD.gn
[modify] https://crrev.com/e19dffc8f0896799ea782c0acba651ef39fc6d73/ppapi/native_client/nacl_test_data.gni

Comment 8 by phosek@chromium.org, May 10 2016

 Issue 610705  has been merged into this issue.

Comment 9 by thakis@chromium.org, May 10 2016

Blocking: 498033
Project Member

Comment 10 by bugdroid1@chromium.org, May 13 2016

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

commit a03f119d7af32b119fb755abe3d6a661b55548e8
Author: mcgrathr <mcgrathr@chromium.org>
Date: Fri May 13 02:22:48 2016

GN: Build NaCl tests for x64 too on x86 Windows

x86 Windows builds of Chrome run on both x86 Windows and x64 Windows.
On x64 Windows, only x64 NaCl is supported, so those tests are needed too.

BUG= 609684 
R=bbudge@chromium.org, dpranke@chromium.org, phosek@chromium.org

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

[modify] https://crrev.com/a03f119d7af32b119fb755abe3d6a661b55548e8/build/config/nacl/rules.gni
[modify] https://crrev.com/a03f119d7af32b119fb755abe3d6a661b55548e8/ppapi/native_client/nacl_test_data.gni

Is this confirmed fixed now?
Status: Fixed (was: Started)
Yes, sorry for not changing the status.
Status: Verified (was: Fixed)

Sign in to add a comment