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

Unified Diff: mojo/shell/runner/host/child_process_host_unittest.cc

Issue 1585493002: [mojo] Ports EDK (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: mojo/shell/runner/host/child_process_host_unittest.cc
diff --git a/mojo/shell/runner/host/child_process_host_unittest.cc b/mojo/shell/runner/host/child_process_host_unittest.cc
index 0d49c57243fa146a6f421bab3ba03a0459fedab3..c96b8341656ec979e5893e1007dca2639d8fd09e 100644
--- a/mojo/shell/runner/host/child_process_host_unittest.cc
+++ b/mojo/shell/runner/host/child_process_host_unittest.cc
@@ -7,10 +7,13 @@
#include "mojo/shell/runner/host/child_process_host.h"
#include "base/bind.h"
+#include "base/callback.h"
+#include "base/command_line.h"
#include "base/logging.h"
#include "base/macros.h"
#include "base/message_loop/message_loop.h"
#include "base/path_service.h"
+#include "base/run_loop.h"
#include "base/threading/thread.h"
#include "mojo/message_pump/message_pump_mojo.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -21,25 +24,10 @@ namespace mojo {
namespace shell {
namespace {
-using PidAvailableCallback = base::Callback<void(base::ProcessId)>;
-
-void EmptyCallback(base::ProcessId pid) {}
-
-// Subclass just so we can observe |DidStart()|.
-class TestChildProcessHost : public ChildProcessHost {
- public:
- explicit TestChildProcessHost(base::TaskRunner* launch_process_runner)
- : ChildProcessHost(launch_process_runner, false, base::FilePath()) {}
- ~TestChildProcessHost() override {}
-
- void DidStart(const PidAvailableCallback& pid_available_callback) override {
- ChildProcessHost::DidStart(pid_available_callback);
- base::MessageLoop::current()->QuitWhenIdle();
- }
-
- private:
- DISALLOW_COPY_AND_ASSIGN(TestChildProcessHost);
-};
+void ProcessReadyCallbackAdapater(const base::Closure& callback,
+ base::ProcessId process_id) {
+ callback.Run();
+}
class ProcessDelegate : public embedder::ProcessDelegate {
public:
@@ -60,6 +48,8 @@ class ProcessDelegate : public embedder::ProcessDelegate {
// Just tests starting the child process and joining it (without starting an
// app).
TEST(ChildProcessHostTest, MAYBE_StartJoin) {
+ base::CommandLine::ForCurrentProcess()->AppendSwitch("use-new-edk");
+
base::FilePath shell_dir;
PathService::Get(base::DIR_MODULE, &shell_dir);
base::MessageLoop message_loop(
@@ -77,9 +67,13 @@ TEST(ChildProcessHostTest, MAYBE_StartJoin) {
embedder::ProcessType::NONE, &delegate, io_thread.task_runner(),
embedder::ScopedPlatformHandle());
- TestChildProcessHost child_process_host(blocking_pool.get());
- child_process_host.Start(base::Bind(&EmptyCallback));
- message_loop.Run();
+ ChildProcessHost child_process_host(blocking_pool.get(), false,
+ base::FilePath());
+ base::RunLoop run_loop;
+ child_process_host.Start(
+ base::Bind(&ProcessReadyCallbackAdapater, run_loop.QuitClosure()));
+ run_loop.Run();
+
child_process_host.ExitNow(123);
int exit_code = child_process_host.Join();
VLOG(2) << "Joined child: exit_code = " << exit_code;

Powered by Google App Engine
This is Rietveld 408576698