summaryrefslogtreecommitdiffstats
path: root/chrome/renderer/render_process_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/renderer/render_process_unittest.cc')
-rw-r--r--chrome/renderer/render_process_unittest.cc23
1 files changed, 18 insertions, 5 deletions
diff --git a/chrome/renderer/render_process_unittest.cc b/chrome/renderer/render_process_unittest.cc
index 848b53b..c787e44 100644
--- a/chrome/renderer/render_process_unittest.cc
+++ b/chrome/renderer/render_process_unittest.cc
@@ -10,19 +10,32 @@
namespace {
+static const wchar_t kThreadName[] = L"render_process_unittest";
+
class RenderProcessTest : public testing::Test {
public:
virtual void SetUp() {
- render_process_.reset(new RenderProcess(L"render_process_unittest"));
+ // Need a MODE_SERVER to make MODE_CLIENTs (like a RenderThread) happy.
+ channel_ = new IPC::Channel(kThreadName, IPC::Channel::MODE_SERVER, NULL);
+ render_process_.reset(new RenderProcess(kThreadName));
}
virtual void TearDown() {
+ message_loop_.RunAllPending();
render_process_.reset();
- }
+ // Need to fully destruct IPC::SyncChannel before the message loop goes
+ // away.
+ message_loop_.RunAllPending();
+ // Delete the server channel after the RenderThread so that
+ // IPC::SyncChannel's OnChannelError doesn't fire on the context and attempt
+ // to use the listener thread which is now gone.
+ delete channel_;
+ }
- private:
- MessageLoopForIO message_loop_;
- scoped_ptr<RenderProcess> render_process_;
+ private:
+ MessageLoopForIO message_loop_;
+ scoped_ptr<RenderProcess> render_process_;
+ IPC::Channel *channel_;
};