Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(653)

Side by Side Diff: mojo/edk/test/run_all_unittests.cc

Issue 1910233003: Implement a new child test helper for Android. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase. Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « mojo/edk/test/multiprocess_test_helper_unittest.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <signal.h> 5 #include <signal.h>
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/test/launcher/unit_test_launcher.h" 9 #include "base/test/launcher/unit_test_launcher.h"
10 #include "base/test/multiprocess_test.h"
10 #include "base/test/test_io_thread.h" 11 #include "base/test/test_io_thread.h"
11 #include "base/test/test_suite.h" 12 #include "base/test/test_suite.h"
12 #include "mojo/edk/embedder/embedder.h" 13 #include "mojo/edk/embedder/embedder.h"
13 #include "mojo/edk/test/multiprocess_test_helper.h" 14 #include "mojo/edk/test/multiprocess_test_helper.h"
14 #include "mojo/edk/test/scoped_ipc_support.h" 15 #include "mojo/edk/test/scoped_ipc_support.h"
15 #include "mojo/edk/test/test_support_impl.h" 16 #include "mojo/edk/test/test_support_impl.h"
16 #include "mojo/public/tests/test_support_private.h" 17 #include "mojo/public/tests/test_support_private.h"
17 #include "testing/gtest/include/gtest/gtest.h" 18 #include "testing/gtest/include/gtest/gtest.h"
18 19
19 int main(int argc, char** argv) { 20 int main(int argc, char** argv) {
20 #if !defined(OS_ANDROID) 21 #if !defined(OS_ANDROID)
21 // Silence death test thread warnings on Linux. We can afford to run our death 22 // Silence death test thread warnings on Linux. We can afford to run our death
22 // tests a little more slowly (< 10 ms per death test on a Z620). 23 // tests a little more slowly (< 10 ms per death test on a Z620).
23 // On android, we need to run in the default mode, as the threadsafe mode 24 // On android, we need to run in the default mode, as the threadsafe mode
24 // relies on execve which is not available. 25 // relies on execve which is not available.
25 testing::GTEST_FLAG(death_test_style) = "threadsafe"; 26 testing::GTEST_FLAG(death_test_style) = "threadsafe";
26 #endif 27 #endif
27 #if defined(OS_ANDROID) 28 #if defined(OS_ANDROID)
29 // Enable the alternate test child implementation. This is needed because Mojo
30 // tests need to spawn test children after initialising the Mojo system.
31 base::InitAndroidMultiProcessTestHelper(main);
32
28 // On android, the test framework has a signal handler that will print a 33 // On android, the test framework has a signal handler that will print a
29 // [ CRASH ] line when the application crashes. This breaks death test has the 34 // [ CRASH ] line when the application crashes. This breaks death test has the
30 // test runner will consider the death of the child process a test failure. 35 // test runner will consider the death of the child process a test failure.
31 // Removing the signal handler solves this issue. 36 // Removing the signal handler solves this issue.
32 signal(SIGABRT, SIG_DFL); 37 signal(SIGABRT, SIG_DFL);
33 #endif 38 #endif
34 39
35 base::TestSuite test_suite(argc, argv); 40 base::TestSuite test_suite(argc, argv);
36 41
37 mojo::edk::Init(); 42 mojo::edk::Init();
38 43
39 mojo::test::TestSupport::Init(new mojo::edk::test::TestSupportImpl()); 44 mojo::test::TestSupport::Init(new mojo::edk::test::TestSupportImpl());
40 base::TestIOThread test_io_thread(base::TestIOThread::kAutoStart); 45 base::TestIOThread test_io_thread(base::TestIOThread::kAutoStart);
41 // Leak this because its destructor calls mojo::edk::ShutdownIPCSupport which 46 // Leak this because its destructor calls mojo::edk::ShutdownIPCSupport which
42 // really does nothing in the new EDK but does depend on the current message 47 // really does nothing in the new EDK but does depend on the current message
43 // loop, which is destructed inside base::LaunchUnitTests. 48 // loop, which is destructed inside base::LaunchUnitTests.
44 new mojo::edk::test::ScopedIPCSupport(test_io_thread.task_runner()); 49 new mojo::edk::test::ScopedIPCSupport(test_io_thread.task_runner());
45 50
46 return base::LaunchUnitTests( 51 return base::LaunchUnitTests(
47 argc, argv, 52 argc, argv,
48 base::Bind(&base::TestSuite::Run, base::Unretained(&test_suite))); 53 base::Bind(&base::TestSuite::Run, base::Unretained(&test_suite)));
49 } 54 }
OLDNEW
« no previous file with comments | « mojo/edk/test/multiprocess_test_helper_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698