New issue
Advanced search Search tips

Issue 779790 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Nov 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows , Mac
Pri: 3
Type: Bug



Sign in to add a comment

Run all Crashpad tests on the Chromium waterfall (try/build bots), on Windows and Mac

Project Member Reported by mark@chromium.org, Oct 30 2017

Issue description

https://crrev.com/00a0654929787f70b0cd81f30aa14e81c5e11b2f added crashpad_util_test to the Chromium GN build, and made it run on some Windows bots.

We should add the rest of the Crashpad tests (crashpad_{client,handler,minidump,snapshot,test}_test), and make them run on some Mac bots too.

To do this in Chromium, I plan on integrating all of Crashpad’s independent test executables into a single crashpad_tests monolithic test executable.
 

Comment 1 by thakis@chromium.org, Oct 30 2017

(https://crrev.com/00a0654929787f70b0cd81f30aa14e81c5e11b2f intended to make the util tests run on _all_ interesting Windows bots, not just on some. It's possible I missed some of course.)

Comment 2 by mark@chromium.org, Oct 30 2017

Didn't mean to imply that it didn't. I meant it more in the sense that "it's running on some bots now, we should get it on some others too."
Last I looked, some subset of the tests couldn't run under swarming on the /p/crashpad waterfall; might you need to fix that as part of this, or are we talking about different tests?

Comment 4 by mark@chromium.org, Oct 31 2017

Same tests.

Last week, I “fixed” the 64-bit tests that also wanted 32-bit build test products under bug 743139 (you’re familiar with that one) at https://chromium.googlesource.com/crashpad/crashpad.git/+/5e9ed4cb9f69ffc60e47d7e5d8312f6417dcb323. The idea here is that if 32-bit build test products aren’t available, these “WoW64” tests dynamically disable themselves. I’m putting “fixed” in quotes because it doesn’t really (yet) solve the build-time problem of making those 32-bit build test products available in a 64-bit build, but it gets things to the point where we can at least deal with them being disabled under Swarming and have everything else pass. It may well be that getting the 32-bit products available in a 64-bit GN-based Chromium build is trivial (compared to the GYP-based Crashpad standalone build), in which case we should be able to make everything work nicely and properly for tests in Chromium, at least.

Another part of getting these tests working under Swarming in Crashpad’s own waterfall may be dealing with the fact that Crashpad’s standalone build doesn’t have Chromium’s base::TestLauncher. I’m not sure if your comment at https://chromium-review.googlesource.com/c/chromium/src/+/737439#message-b243f73191860f3e83952f361c75cd34fac284d7 means that this is required for non-Chromium recipes or not. In any event, we should probably move discussion of that aspect to bug 743139.
> I’m not sure if your comment at ... means that this is required for 
> non-Chromium recipes or not.

//base/test/launcher is not required for non-Chromium recipes. A recipe can do more-or-less whatever it wants, that comment is just referring to a particular restriction of the chromium recipes.

Comment 6 by mark@chromium.org, Nov 1 2017

Excellent! Then we should circle back to bug 743139 to see if there’s anything else we can do to clean up our waterfalls and get our tests running on Swarming.
Project Member

Comment 7 by bugdroid1@chromium.org, Nov 1 2017

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

commit a0f4f294b1e2bc242dd76a804706325257627832
Author: Mark Mentovai <mark@chromium.org>
Date: Wed Nov 01 16:33:34 2017

win handler: Provide a wmain() entry point

Crashpad’s own build always uses wWinMain(), the default entry point for
/subsystem:windows, producing crashpad_handler.exe. crashpad_handler.com
is a /subsystem:console version produced by running editbin on a copy of
crashpad_handler.exe. This leaves the entry point intact, so both copies
use wWinMain(). crashpad_handler.com does not use wmain() as
traditionally used by /subsystem:console programs.

For the in-Chromium build’s tests, it is conveient to produce the
/subsystem:console version, crashpad_handler.com, directly as linker
output, as opposed to using editbin to transform a /subsystem:windows
version. This /subsystem:console version uses the normal wmain() entry
point.

By providing both wWinMain() and wmain(), both build types can be
accommodated.

Bug:  chromium:779790 
Change-Id: Ieb784db0cc245c6e4c12fb1dd83b8b95e159bdec
Reviewed-on: https://chromium-review.googlesource.com/746161
Reviewed-by: Leonard Mosescu <mosescu@chromium.org>

[modify] https://crrev.com/a0f4f294b1e2bc242dd76a804706325257627832/handler/main.cc

Project Member

Comment 8 by bugdroid1@chromium.org, Nov 1 2017

Project Member

Comment 9 by bugdroid1@chromium.org, Nov 1 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/crashpad/crashpad.git/+/1669ca2bac66f2dde2f89aec7db2c9aecca93899

commit 1669ca2bac66f2dde2f89aec7db2c9aecca93899
Author: Mark Mentovai <mark@chromium.org>
Date: Wed Nov 01 16:44:45 2017

test: Rework TestPaths interface for obtaining 32-bit build artifacts

The design for running all Crashpad unit tests on Chromium’s try- and
buildbots involves pulling all tests into a single monolithic
crashpad_tests executable. Many Crashpad tests base the name of their
child executables or modules on the name of the main test executable.
Since the main test executable will have a different name in the
in-Chromium build, knowledge of the test executable name (referred to as
“module” here) needs to be added to the tests themselves.

This introduces TestPaths::BuildArtifact(), which allows the module name
to be specified. For Crashpad’s standalone build, the module name is
verified against the main test executable’s name.
TestPaths::BuildArtifact() can also locate paths in the alternate 32-bit
output directory for 64-bit Windows tests, taking on the responsibility
for what the new (5e9ed4cb9f69) TestPaths::Output32BitDirectory(), now
obsolete, did.

Bug:  chromium:779790 
Change-Id: I64c4a2190b6319e487c999812a7cfc512a75a700
Reviewed-on: https://chromium-review.googlesource.com/747536
Reviewed-by: Scott Graham <scottmg@chromium.org>

[modify] https://crrev.com/1669ca2bac66f2dde2f89aec7db2c9aecca93899/handler/crashpad_handler_test.cc
[modify] https://crrev.com/1669ca2bac66f2dde2f89aec7db2c9aecca93899/handler/win/crash_other_program.cc
[modify] https://crrev.com/1669ca2bac66f2dde2f89aec7db2c9aecca93899/snapshot/crashpad_info_client_options_test.cc
[modify] https://crrev.com/1669ca2bac66f2dde2f89aec7db2c9aecca93899/snapshot/mac/mach_o_image_annotations_reader_test.cc
[modify] https://crrev.com/1669ca2bac66f2dde2f89aec7db2c9aecca93899/snapshot/win/exception_snapshot_win_test.cc
[modify] https://crrev.com/1669ca2bac66f2dde2f89aec7db2c9aecca93899/snapshot/win/extra_memory_ranges_test.cc
[modify] https://crrev.com/1669ca2bac66f2dde2f89aec7db2c9aecca93899/snapshot/win/pe_image_annotations_reader_test.cc
[modify] https://crrev.com/1669ca2bac66f2dde2f89aec7db2c9aecca93899/snapshot/win/process_snapshot_win_test.cc
[modify] https://crrev.com/1669ca2bac66f2dde2f89aec7db2c9aecca93899/test/multiprocess_exec.h
[modify] https://crrev.com/1669ca2bac66f2dde2f89aec7db2c9aecca93899/test/multiprocess_exec_posix.cc
[modify] https://crrev.com/1669ca2bac66f2dde2f89aec7db2c9aecca93899/test/multiprocess_exec_test.cc
[modify] https://crrev.com/1669ca2bac66f2dde2f89aec7db2c9aecca93899/test/multiprocess_exec_win.cc
[modify] https://crrev.com/1669ca2bac66f2dde2f89aec7db2c9aecca93899/test/test_paths.cc
[modify] https://crrev.com/1669ca2bac66f2dde2f89aec7db2c9aecca93899/test/test_paths.h
[modify] https://crrev.com/1669ca2bac66f2dde2f89aec7db2c9aecca93899/test/win/child_launcher.cc
[modify] https://crrev.com/1669ca2bac66f2dde2f89aec7db2c9aecca93899/test/win/child_launcher.h
[modify] https://crrev.com/1669ca2bac66f2dde2f89aec7db2c9aecca93899/util/net/http_transport_test.cc
[modify] https://crrev.com/1669ca2bac66f2dde2f89aec7db2c9aecca93899/util/win/process_info_test.cc
[modify] https://crrev.com/1669ca2bac66f2dde2f89aec7db2c9aecca93899/util/win/safe_terminate_process_test.cc

Project Member

Comment 10 by bugdroid1@chromium.org, Nov 1 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/crashpad/crashpad.git/+/43b798b492a2ac4d9aada4bc4135db3da11b8234

commit 43b798b492a2ac4d9aada4bc4135db3da11b8234
Author: Mark Mentovai <mark@chromium.org>
Date: Wed Nov 01 17:00:30 2017

test: Fix paths for crashpad_tests monolith in Chromium

Instead of individual per-directory test executables like
crashpad_util_test, all Crashpad tests in Chromium will be run from a
single crashpad_tests executable.

Test: crashpad_util_test Paths.Executable, ProcessInfo.Self; crashpad_snapshot_test PEImageReader.DebugDirectory
Bug:  chromium:779790 
Change-Id: If95272fd641734fbdb8e231fbcdc4e7ccb2cb822
Reviewed-on: https://chromium-review.googlesource.com/749303
Reviewed-by: Scott Graham <scottmg@chromium.org>

[modify] https://crrev.com/43b798b492a2ac4d9aada4bc4135db3da11b8234/snapshot/win/pe_image_reader_test.cc
[modify] https://crrev.com/43b798b492a2ac4d9aada4bc4135db3da11b8234/test/test_paths.cc
[modify] https://crrev.com/43b798b492a2ac4d9aada4bc4135db3da11b8234/test/test_paths.h
[modify] https://crrev.com/43b798b492a2ac4d9aada4bc4135db3da11b8234/util/misc/paths_test.cc
[modify] https://crrev.com/43b798b492a2ac4d9aada4bc4135db3da11b8234/util/win/process_info_test.cc

Project Member

Comment 11 by bugdroid1@chromium.org, Nov 2 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/crashpad/crashpad.git/+/2db30e035a0084493ef44bdcc5887a8147f74add

commit 2db30e035a0084493ef44bdcc5887a8147f74add
Author: Mark Mentovai <mark@chromium.org>
Date: Thu Nov 02 15:16:59 2017

win: Fix Clang -Wsign-compare warnings in new test code

This test code appeared in 9609b7471676, and was missed by the similar
warning cleanup of a51e912004a6, which was developed in parallel.

Bug:  crashpad:192 ,  chromium:779790 
Change-Id: I4ed88ed025e4be4410c98ceaca395218f00007be
Reviewed-on: https://chromium-review.googlesource.com/750024
Reviewed-by: Robert Sesek <rsesek@chromium.org>

[modify] https://crrev.com/2db30e035a0084493ef44bdcc5887a8147f74add/snapshot/win/pe_image_annotations_reader_test.cc

Project Member

Comment 12 by bugdroid1@chromium.org, Nov 6 2017

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

commit efd8584f0232f3b7be704d8f329032bdcfc11214
Author: Mark Mentovai <mark@chromium.org>
Date: Mon Nov 06 17:49:36 2017

Build all Crashpad tests in Chromium, and run on Chromium bots

Until ef647b4938a6 and 00a065492978 last week, Crashpad tests did not
build or run in Chromium. Since then, crashpad_util_test was buildable
in Chromium, but was only run on Windows bots.

Crashpad has many more tests than crashpad_util_test, and its tests run
on both macOS and Windows. This change allows all of Crashpad’s unit
tests to build in Chromium’s GN-based build, and runs them on macOS and
Windows try- and buildbots.

Rather than having individual module-specific test executables like
crashpad_util_test, all unit tests are brought together into one
monolithic “crashpad_tests” executable.

On Windows, Crashpad also has an “end_to_end_test.py” which drives
crashpad_handler and some test crasher programs, and verifies the
produced minidump output by running the cdb debugger. That’s not
currently accounted for in the Chromium build.

As part of this change, additional Crashpad tools are also added to the
Chromium build, including the generate_dump tool.

Bug:  779790 
Change-Id: I87104558c4e33d59b0c6a77bfe0f6f42009a4690
Reviewed-on: https://chromium-review.googlesource.com/751403
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Reviewed-by: Sigurður Ásgeirsson <siggi@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
Cr-Commit-Position: refs/heads/master@{#514167}
[modify] https://crrev.com/efd8584f0232f3b7be704d8f329032bdcfc11214/BUILD.gn
[add] https://crrev.com/efd8584f0232f3b7be704d8f329032bdcfc11214/build/secondary/third_party/crashpad/crashpad/BUILD.gn
[modify] https://crrev.com/efd8584f0232f3b7be704d8f329032bdcfc11214/build/secondary/third_party/crashpad/crashpad/client/BUILD.gn
[modify] https://crrev.com/efd8584f0232f3b7be704d8f329032bdcfc11214/build/secondary/third_party/crashpad/crashpad/compat/BUILD.gn
[modify] https://crrev.com/efd8584f0232f3b7be704d8f329032bdcfc11214/build/secondary/third_party/crashpad/crashpad/handler/BUILD.gn
[modify] https://crrev.com/efd8584f0232f3b7be704d8f329032bdcfc11214/build/secondary/third_party/crashpad/crashpad/minidump/BUILD.gn
[modify] https://crrev.com/efd8584f0232f3b7be704d8f329032bdcfc11214/build/secondary/third_party/crashpad/crashpad/snapshot/BUILD.gn
[modify] https://crrev.com/efd8584f0232f3b7be704d8f329032bdcfc11214/build/secondary/third_party/crashpad/crashpad/test/BUILD.gn
[modify] https://crrev.com/efd8584f0232f3b7be704d8f329032bdcfc11214/build/secondary/third_party/crashpad/crashpad/third_party/zlib/BUILD.gn
[modify] https://crrev.com/efd8584f0232f3b7be704d8f329032bdcfc11214/build/secondary/third_party/crashpad/crashpad/tools/BUILD.gn
[modify] https://crrev.com/efd8584f0232f3b7be704d8f329032bdcfc11214/build/secondary/third_party/crashpad/crashpad/util/BUILD.gn
[modify] https://crrev.com/efd8584f0232f3b7be704d8f329032bdcfc11214/components/browser_watcher/BUILD.gn
[modify] https://crrev.com/efd8584f0232f3b7be704d8f329032bdcfc11214/components/crash/content/app/BUILD.gn
[modify] https://crrev.com/efd8584f0232f3b7be704d8f329032bdcfc11214/testing/buildbot/chromium.clang.json
[modify] https://crrev.com/efd8584f0232f3b7be704d8f329032bdcfc11214/testing/buildbot/chromium.fyi.json
[modify] https://crrev.com/efd8584f0232f3b7be704d8f329032bdcfc11214/testing/buildbot/chromium.mac.json
[modify] https://crrev.com/efd8584f0232f3b7be704d8f329032bdcfc11214/testing/buildbot/chromium.win.json
[modify] https://crrev.com/efd8584f0232f3b7be704d8f329032bdcfc11214/testing/buildbot/gn_isolate_map.pyl

Comment 13 by mark@chromium.org, Nov 6 2017

Status: Fixed (was: Started)
Project Member

Comment 14 by bugdroid1@chromium.org, Nov 6 2017

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

commit 49f5374a36de074d0b3edeb9f07d80468ec20caa
Author: meade_UTC10 <meade@chromium.org>
Date: Mon Nov 06 23:44:36 2017

Revert "Build all Crashpad tests in Chromium, and run on Chromium bots"

This reverts commit efd8584f0232f3b7be704d8f329032bdcfc11214.

Reason for revert: Causes crashpad_tests failure on Win7 bot. First failure:
https://build.chromium.org/p/chromium.win/builders/Win7%20Tests%20%28dbg%29%281%29/builds/64492

Original change's description:
> Build all Crashpad tests in Chromium, and run on Chromium bots
> 
> Until ef647b4938a6 and 00a065492978 last week, Crashpad tests did not
> build or run in Chromium. Since then, crashpad_util_test was buildable
> in Chromium, but was only run on Windows bots.
> 
> Crashpad has many more tests than crashpad_util_test, and its tests run
> on both macOS and Windows. This change allows all of Crashpad’s unit
> tests to build in Chromium’s GN-based build, and runs them on macOS and
> Windows try- and buildbots.
> 
> Rather than having individual module-specific test executables like
> crashpad_util_test, all unit tests are brought together into one
> monolithic “crashpad_tests” executable.
> 
> On Windows, Crashpad also has an “end_to_end_test.py” which drives
> crashpad_handler and some test crasher programs, and verifies the
> produced minidump output by running the cdb debugger. That’s not
> currently accounted for in the Chromium build.
> 
> As part of this change, additional Crashpad tools are also added to the
> Chromium build, including the generate_dump tool.
> 
> Bug:  779790 
> Change-Id: I87104558c4e33d59b0c6a77bfe0f6f42009a4690
> Reviewed-on: https://chromium-review.googlesource.com/751403
> Reviewed-by: Dirk Pranke <dpranke@chromium.org>
> Reviewed-by: Robert Sesek <rsesek@chromium.org>
> Reviewed-by: Sigurður Ásgeirsson <siggi@chromium.org>
> Commit-Queue: Mark Mentovai <mark@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#514167}

TBR=dpranke@chromium.org,rsesek@chromium.org,mark@chromium.org,siggi@chromium.org

Change-Id: I0f1298327e1a9069685811ac5e6eb27d92e7dceb
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  779790 ,  782011 
Reviewed-on: https://chromium-review.googlesource.com/756174
Reviewed-by: meade_UTC10 <meade@chromium.org>
Commit-Queue: meade_UTC10 <meade@chromium.org>
Cr-Commit-Position: refs/heads/master@{#514296}
[modify] https://crrev.com/49f5374a36de074d0b3edeb9f07d80468ec20caa/BUILD.gn
[delete] https://crrev.com/4ce143c7e55bf26819d521e51750675c5f374483/build/secondary/third_party/crashpad/crashpad/BUILD.gn
[modify] https://crrev.com/49f5374a36de074d0b3edeb9f07d80468ec20caa/build/secondary/third_party/crashpad/crashpad/client/BUILD.gn
[modify] https://crrev.com/49f5374a36de074d0b3edeb9f07d80468ec20caa/build/secondary/third_party/crashpad/crashpad/compat/BUILD.gn
[modify] https://crrev.com/49f5374a36de074d0b3edeb9f07d80468ec20caa/build/secondary/third_party/crashpad/crashpad/handler/BUILD.gn
[modify] https://crrev.com/49f5374a36de074d0b3edeb9f07d80468ec20caa/build/secondary/third_party/crashpad/crashpad/minidump/BUILD.gn
[modify] https://crrev.com/49f5374a36de074d0b3edeb9f07d80468ec20caa/build/secondary/third_party/crashpad/crashpad/snapshot/BUILD.gn
[modify] https://crrev.com/49f5374a36de074d0b3edeb9f07d80468ec20caa/build/secondary/third_party/crashpad/crashpad/test/BUILD.gn
[modify] https://crrev.com/49f5374a36de074d0b3edeb9f07d80468ec20caa/build/secondary/third_party/crashpad/crashpad/third_party/zlib/BUILD.gn
[modify] https://crrev.com/49f5374a36de074d0b3edeb9f07d80468ec20caa/build/secondary/third_party/crashpad/crashpad/tools/BUILD.gn
[modify] https://crrev.com/49f5374a36de074d0b3edeb9f07d80468ec20caa/build/secondary/third_party/crashpad/crashpad/util/BUILD.gn
[modify] https://crrev.com/49f5374a36de074d0b3edeb9f07d80468ec20caa/components/browser_watcher/BUILD.gn
[modify] https://crrev.com/49f5374a36de074d0b3edeb9f07d80468ec20caa/components/crash/content/app/BUILD.gn
[modify] https://crrev.com/49f5374a36de074d0b3edeb9f07d80468ec20caa/testing/buildbot/chromium.clang.json
[modify] https://crrev.com/49f5374a36de074d0b3edeb9f07d80468ec20caa/testing/buildbot/chromium.fyi.json
[modify] https://crrev.com/49f5374a36de074d0b3edeb9f07d80468ec20caa/testing/buildbot/chromium.mac.json
[modify] https://crrev.com/49f5374a36de074d0b3edeb9f07d80468ec20caa/testing/buildbot/chromium.win.json
[modify] https://crrev.com/49f5374a36de074d0b3edeb9f07d80468ec20caa/testing/buildbot/gn_isolate_map.pyl

Comment 15 by mark@chromium.org, Nov 7 2017

Status: Assigned (was: Fixed)
Project Member

Comment 16 by bugdroid1@chromium.org, Nov 7 2017

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

commit d3b7463c7a48e83180a2619d00614a175641fb4e
Author: Mark Mentovai <mark@chromium.org>
Date: Tue Nov 07 17:42:18 2017

win: Recognize nsi.dll presenting as VFT_DRV/VFT2_DRV_NETWORK

This was previously proposed at
https://chromium-review.googlesource.com/c/crashpad/crashpad/+/339103/2/util/win/pe_image_reader_test.cc#84.
It didn’t land because the change was abandoned for other reasons, but
the fix was valid. nsi.dll is not VFT_APP or VFT_DLL, and if it’s
loaded, crashpad_snapshot_test PEImageReader.VSFixedFileInfo_AllModules
fails.

Although I can’t reproduce nsi.dll being loaded spontaneously in local
testing or on trybots, it occurred in the monolithic crashpad_tests at
https://build.chromium.org/p/chromium.win/builders/Win7%20Tests%20%28dbg%29%281%29/builds/64492:

[ RUN      ] PEImageReader.VSFixedFileInfo_AllModules
../../third_party/crashpad/crashpad/snapshot/win/pe_image_reader_test.cc(90): error: Value of: observed.dwFileType == VFT_APP || observed.dwFileType == VFT_DLL
  Actual: false
Expected: true
Google Test trace:
../../third_party/crashpad/crashpad/snapshot/win/pe_image_reader_test.cc(164): C:\Windows\syswow64\NSI.dll
[  FAILED  ] PEImageReader.VSFixedFileInfo_AllModules (11 ms)

I can also reproduce locally by calling LoadLibrary(L"nsi.dll").

Bug:  chromium:779790 ,  chromium:782011 
Test: crashpad_snapshot_test PEImageReader.VSFixedFileInfo_AllModules
Change-Id: I361c7d6521645913277a441ce38779aaa4a182c2
Reviewed-on: https://chromium-review.googlesource.com/757077
Reviewed-by: Scott Graham <scottmg@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>

[modify] https://crrev.com/d3b7463c7a48e83180a2619d00614a175641fb4e/snapshot/win/pe_image_reader_test.cc

Project Member

Comment 17 by bugdroid1@chromium.org, Nov 8 2017

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

commit 1782adb1a98dc011a10049787696bd70671c1d06
Author: Mark Mentovai <mark@chromium.org>
Date: Wed Nov 08 05:11:27 2017

Build all Crashpad tests in Chromium, and run on Chromium bots

Originally landed at efd8584f0232
(https://chromium-review.googlesource.com/751403) and subsequently
reverted at 49f5374a36de because of test failures. There are no changes
to this reland, but the test failures are addressed by updating Crashpad
to include
https://chromium.googlesource.com/crashpad/crashpad/+/d3b7463c7a48.

Until the recent ef647b4938a6 and 00a065492978, Crashpad tests did not
build or run in Chromium. Since then, crashpad_util_test was buildable
in Chromium, but was only run on Windows bots.

Crashpad has many more tests than crashpad_util_test, and its tests run
on both macOS and Windows. This change allows all of Crashpad’s unit
tests to build in Chromium’s GN-based build, and runs them on macOS and
Windows try- and buildbots.

Rather than having individual module-specific test executables like
crashpad_util_test, all unit tests are brought together into one
monolithic “crashpad_tests” executable.

On Windows, Crashpad also has an “end_to_end_test.py” which drives
crashpad_handler and some test crasher programs, and verifies the
produced minidump output by running the cdb debugger. That’s not
currently accounted for in the Chromium build.

As part of this change, additional Crashpad tools are also added to the
Chromium build, including the generate_dump tool.

Bug:  779790 ,  782011 
Change-Id: Id192c40a1e7db178bdb093cd050b7fc5a5a876c9
Reviewed-on: https://chromium-review.googlesource.com/757188
Commit-Queue: Mark Mentovai <mark@chromium.org>
Reviewed-by: Sigurður Ásgeirsson <siggi@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Cr-Commit-Position: refs/heads/master@{#514759}
[modify] https://crrev.com/1782adb1a98dc011a10049787696bd70671c1d06/BUILD.gn
[add] https://crrev.com/1782adb1a98dc011a10049787696bd70671c1d06/build/secondary/third_party/crashpad/crashpad/BUILD.gn
[modify] https://crrev.com/1782adb1a98dc011a10049787696bd70671c1d06/build/secondary/third_party/crashpad/crashpad/client/BUILD.gn
[modify] https://crrev.com/1782adb1a98dc011a10049787696bd70671c1d06/build/secondary/third_party/crashpad/crashpad/compat/BUILD.gn
[modify] https://crrev.com/1782adb1a98dc011a10049787696bd70671c1d06/build/secondary/third_party/crashpad/crashpad/handler/BUILD.gn
[modify] https://crrev.com/1782adb1a98dc011a10049787696bd70671c1d06/build/secondary/third_party/crashpad/crashpad/minidump/BUILD.gn
[modify] https://crrev.com/1782adb1a98dc011a10049787696bd70671c1d06/build/secondary/third_party/crashpad/crashpad/snapshot/BUILD.gn
[modify] https://crrev.com/1782adb1a98dc011a10049787696bd70671c1d06/build/secondary/third_party/crashpad/crashpad/test/BUILD.gn
[modify] https://crrev.com/1782adb1a98dc011a10049787696bd70671c1d06/build/secondary/third_party/crashpad/crashpad/third_party/zlib/BUILD.gn
[modify] https://crrev.com/1782adb1a98dc011a10049787696bd70671c1d06/build/secondary/third_party/crashpad/crashpad/tools/BUILD.gn
[modify] https://crrev.com/1782adb1a98dc011a10049787696bd70671c1d06/build/secondary/third_party/crashpad/crashpad/util/BUILD.gn
[modify] https://crrev.com/1782adb1a98dc011a10049787696bd70671c1d06/components/browser_watcher/BUILD.gn
[modify] https://crrev.com/1782adb1a98dc011a10049787696bd70671c1d06/components/crash/content/app/BUILD.gn
[modify] https://crrev.com/1782adb1a98dc011a10049787696bd70671c1d06/testing/buildbot/chromium.clang.json
[modify] https://crrev.com/1782adb1a98dc011a10049787696bd70671c1d06/testing/buildbot/chromium.fyi.json
[modify] https://crrev.com/1782adb1a98dc011a10049787696bd70671c1d06/testing/buildbot/chromium.mac.json
[modify] https://crrev.com/1782adb1a98dc011a10049787696bd70671c1d06/testing/buildbot/chromium.win.json
[modify] https://crrev.com/1782adb1a98dc011a10049787696bd70671c1d06/testing/buildbot/gn_isolate_map.pyl

Comment 18 by mark@chromium.org, Nov 8 2017

Status: Fixed (was: Assigned)

Sign in to add a comment