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

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

Issue 2514093002: Mojo EDK: Clean shutdown for ScopedIPCSupport in tests (Closed)
Patch Set: Created 4 years, 1 month 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 | « no previous file | mojo/edk/test/scoped_ipc_support.h » ('j') | mojo/edk/test/scoped_ipc_support.cc » ('J')
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 <memory>
8
7 #include "base/bind.h" 9 #include "base/bind.h"
8 #include "base/command_line.h" 10 #include "base/command_line.h"
11 #include "base/message_loop/message_loop.h"
9 #include "base/test/launcher/unit_test_launcher.h" 12 #include "base/test/launcher/unit_test_launcher.h"
10 #include "base/test/multiprocess_test.h" 13 #include "base/test/multiprocess_test.h"
11 #include "base/test/test_io_thread.h" 14 #include "base/test/test_io_thread.h"
12 #include "base/test/test_suite.h" 15 #include "base/test/test_suite.h"
13 #include "mojo/edk/embedder/embedder.h" 16 #include "mojo/edk/embedder/embedder.h"
14 #include "mojo/edk/test/multiprocess_test_helper.h" 17 #include "mojo/edk/test/multiprocess_test_helper.h"
15 #include "mojo/edk/test/scoped_ipc_support.h" 18 #include "mojo/edk/test/scoped_ipc_support.h"
16 #include "mojo/edk/test/test_support_impl.h" 19 #include "mojo/edk/test/test_support_impl.h"
17 #include "mojo/public/tests/test_support_private.h" 20 #include "mojo/public/tests/test_support_private.h"
18 #include "testing/gtest/include/gtest/gtest.h" 21 #include "testing/gtest/include/gtest/gtest.h"
(...skipping 17 matching lines...) Expand all
36 // Removing the signal handler solves this issue. 39 // Removing the signal handler solves this issue.
37 signal(SIGABRT, SIG_DFL); 40 signal(SIGABRT, SIG_DFL);
38 #endif 41 #endif
39 42
40 base::TestSuite test_suite(argc, argv); 43 base::TestSuite test_suite(argc, argv);
41 44
42 mojo::edk::Init(); 45 mojo::edk::Init();
43 46
44 mojo::test::TestSupport::Init(new mojo::edk::test::TestSupportImpl()); 47 mojo::test::TestSupport::Init(new mojo::edk::test::TestSupportImpl());
45 base::TestIOThread test_io_thread(base::TestIOThread::kAutoStart); 48 base::TestIOThread test_io_thread(base::TestIOThread::kAutoStart);
46 // Leak this because its destructor calls mojo::edk::ShutdownIPCSupport which
47 // really does nothing in the new EDK but does depend on the current message
48 // loop, which is destructed inside base::LaunchUnitTests.
49 new mojo::edk::test::ScopedIPCSupport(test_io_thread.task_runner());
50 49
51 return base::LaunchUnitTests( 50 std::unique_ptr<mojo::edk::test::ScopedIPCSupport> ipc_support(
51 new mojo::edk::test::ScopedIPCSupport(test_io_thread.task_runner()));
52
53 int result = base::LaunchUnitTests(
52 argc, argv, 54 argc, argv,
53 base::Bind(&base::TestSuite::Run, base::Unretained(&test_suite))); 55 base::Bind(&base::TestSuite::Run, base::Unretained(&test_suite)));
56
57 // NOTE: ScopedIPCSupport's destructor requires a MessageLoop to be running.
58 // We create one here solely for that purpose.
59 base::MessageLoop shutdown_loop;
60 ipc_support.reset();
61
62 return result;
54 } 63 }
OLDNEW
« no previous file with comments | « no previous file | mojo/edk/test/scoped_ipc_support.h » ('j') | mojo/edk/test/scoped_ipc_support.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698