Index: ipc/run_all_unittests.cc |
diff --git a/ipc/run_all_unittests.cc b/ipc/run_all_unittests.cc |
index 30e6c5971caadf6136a7050bbe37077f5c12e89c..44bbf60dc6deac77f06469a2017c2e97fcf1ba20 100644 |
--- a/ipc/run_all_unittests.cc |
+++ b/ipc/run_all_unittests.cc |
@@ -5,15 +5,21 @@ |
#include "base/bind.h" |
#include "base/test/launcher/unit_test_launcher.h" |
#include "base/test/multiprocess_test.h" |
+#include "base/test/test_io_thread.h" |
#include "base/test/test_suite.h" |
#include "build/build_config.h" |
#include "mojo/edk/embedder/embedder.h" |
+#include "mojo/edk/test/scoped_ipc_support.h" |
#if defined(OS_ANDROID) |
#include "base/android/jni_android.h" |
#include "base/test/test_file_util.h" |
#endif |
+#if defined(OS_MACOSX) && !defined(OS_IOS) |
+#include "base/mac/mach_port_broker.h" |
+#endif |
+ |
int main(int argc, char** argv) { |
#if defined(OS_ANDROID) |
base::InitAndroidMultiProcessTestHelper(main); |
@@ -21,8 +27,20 @@ int main(int argc, char** argv) { |
JNIEnv* env = base::android::AttachCurrentThread(); |
base::RegisterContentUriTestUtils(env); |
#endif |
- mojo::edk::Init(); |
base::TestSuite test_suite(argc, argv); |
+ mojo::edk::Init(); |
+ base::TestIOThread test_io_thread(base::TestIOThread::kAutoStart); |
+ // Leak this because its destructor calls mojo::edk::ShutdownIPCSupport which |
+ // really does nothing in the new EDK but does depend on the current message |
+ // loop, which is destructed inside base::LaunchUnitTests. |
+ new mojo::edk::test::ScopedIPCSupport(test_io_thread.task_runner()); |
+ |
+#if defined(OS_MACOSX) && !defined(OS_IOS) |
+ base::MachPortBroker mach_broker("mojo_test"); |
+ CHECK(mach_broker.Init()); |
+ mojo::edk::SetMachPortProvider(&mach_broker); |
+#endif |
+ |
return base::LaunchUnitTests( |
argc, argv, |
base::Bind(&base::TestSuite::Run, base::Unretained(&test_suite))); |