diff --git a/test/gmock_main.cc b/test/gmock_main.cc index 73322cac..be043996 100644 --- a/test/gmock_main.cc +++ b/test/gmock_main.cc @@ -17,10 +17,31 @@ #include "test/gtest_disabled.h" #include "test/main_arguments.h" +#if defined(CRASHPAD_IN_CHROMIUM) +#include "base/bind.h" +#include "base/test/launcher/unit_test_launcher.h" +#include "base/test/test_suite.h" +#endif // CRASHPAD_IN_CHROMIUM + int main(int argc, char* argv[]) { crashpad::test::InitializeMainArguments(argc, argv); testing::InitGoogleMock(&argc, argv); testing::AddGlobalTestEnvironment( crashpad::test::DisabledTestGtestEnvironment::Get()); + +#if defined(CRASHPAD_IN_CHROMIUM) + + // This supports --test-launcher-summary-output, which writes a JSON file + // containing test details needed by Swarming. + base::TestSuite test_suite(argc, argv); + return base::LaunchUnitTests( + argc, + argv, + base::Bind(&base::TestSuite::Run, base::Unretained(&test_suite))); + +#else // CRASHPAD_IN_CHROMIUM + return RUN_ALL_TESTS(); + +#endif // CRASHPAD_IN_CHROMIUM } diff --git a/test/gtest_main.cc b/test/gtest_main.cc index d2ed6672..8842b6a3 100644 --- a/test/gtest_main.cc +++ b/test/gtest_main.cc @@ -16,10 +16,31 @@ #include "test/gtest_disabled.h" #include "test/main_arguments.h" +#if defined(CRASHPAD_IN_CHROMIUM) +#include "base/bind.h" +#include "base/test/launcher/unit_test_launcher.h" +#include "base/test/test_suite.h" +#endif // CRASHPAD_IN_CHROMIUM + int main(int argc, char* argv[]) { crashpad::test::InitializeMainArguments(argc, argv); testing::InitGoogleTest(&argc, argv); testing::AddGlobalTestEnvironment( crashpad::test::DisabledTestGtestEnvironment::Get()); + +#if defined(CRASHPAD_IN_CHROMIUM) + + // This supports --test-launcher-summary-output, which writes a JSON file + // containing test details needed by Swarming. + base::TestSuite test_suite(argc, argv); + return base::LaunchUnitTests( + argc, + argv, + base::Bind(&base::TestSuite::Run, base::Unretained(&test_suite))); + +#else // CRASHPAD_IN_CHROMIUM + return RUN_ALL_TESTS(); + +#endif // CRASHPAD_IN_CHROMIUM } diff --git a/util/win/exception_handler_server_test.cc b/util/win/exception_handler_server_test.cc index 6f880516..7ca329e5 100644 --- a/util/win/exception_handler_server_test.cc +++ b/util/win/exception_handler_server_test.cc @@ -180,7 +180,13 @@ class TestClient final : public WinChildProcess { DISALLOW_COPY_AND_ASSIGN(TestClient); }; -TEST_F(ExceptionHandlerServerTest, MultipleConnections) { +// https://crashpad.chromium.org/bug/205 +#if defined(CRASHPAD_IN_CHROMIUM) +#define MAYBE_MultipleConnections DISABLED_MultipleConnections +#else // CRASHPAD_IN_CHROMIUM +#define MAYBE_MultipleConnections MultipleConnections +#endif // CRASHPAD_IN_CHROMIUM +TEST_F(ExceptionHandlerServerTest, MAYBE_MultipleConnections) { WinChildProcess::EntryPoint(); std::unique_ptr handles_1 = diff --git a/util/win/scoped_process_suspend_test.cc b/util/win/scoped_process_suspend_test.cc index 2d0f5a0b..fbb34b73 100644 --- a/util/win/scoped_process_suspend_test.cc +++ b/util/win/scoped_process_suspend_test.cc @@ -89,7 +89,13 @@ class ScopedProcessSuspendTest final : public WinChildProcess { DISALLOW_COPY_AND_ASSIGN(ScopedProcessSuspendTest); }; -TEST(ScopedProcessSuspend, ScopedProcessSuspend) { +// https://crashpad.chromium.org/bug/205 +#if defined(CRASHPAD_IN_CHROMIUM) +#define MAYBE_ScopedProcessSuspend DISABLED_ScopedProcessSuspend +#else // CRASHPAD_IN_CHROMIUM +#define MAYBE_ScopedProcessSuspend ScopedProcessSuspend +#endif // CRASHPAD_IN_CHROMIUM +TEST(ScopedProcessSuspend, MAYBE_ScopedProcessSuspend) { WinChildProcess::EntryPoint(); std::unique_ptr handles = WinChildProcess::Launch();