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

Unified Diff: ceee/ie/broker/broker_rpc_unittest.cc

Issue 5258006: Restart of ceee_broker on crash. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 10 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 side-by-side diff with in-line comments
Download patch
Index: ceee/ie/broker/broker_rpc_unittest.cc
===================================================================
--- ceee/ie/broker/broker_rpc_unittest.cc (revision 67655)
+++ ceee/ie/broker/broker_rpc_unittest.cc (working copy)
@@ -24,12 +24,12 @@
MOCK_STATIC_CLASS_BEGIN(BrokerRpcMock)
MOCK_STATIC_INIT_BEGIN(BrokerRpcMock)
- MOCK_STATIC_INIT(GetRpcEndPointAddress);
+ MOCK_STATIC_INIT(GetRpcEndpointAddress);
MOCK_STATIC_INIT(BrokerRpcServer_FireEvent);
MOCK_STATIC_INIT(BrokerRpcServer_SendUmaHistogramTimes);
MOCK_STATIC_INIT(BrokerRpcServer_SendUmaHistogramData);
MOCK_STATIC_INIT_END()
- MOCK_STATIC0(std::wstring, , GetRpcEndPointAddress);
+ MOCK_STATIC0(std::wstring, , GetRpcEndpointAddress);
MOCK_STATIC3(void, , BrokerRpcServer_FireEvent, handle_t, const char*,
const char*);
MOCK_STATIC3(void, , BrokerRpcServer_SendUmaHistogramTimes, handle_t,
@@ -41,7 +41,7 @@
class BrokerRpcTest : public testing::Test {
protected:
virtual void SetUp() {
- EXPECT_CALL(broker_rpc_mock_, GetRpcEndPointAddress())
+ EXPECT_CALL(broker_rpc_mock_, GetRpcEndpointAddress())
.WillRepeatedly(Return(L"BrokerRpcTestEP"));
}
@@ -52,7 +52,7 @@
};
TEST_F(BrokerRpcTest, ConnectNoServer) {
- BrokerRpcClient client;
+ BrokerRpcClient client(false);
ASSERT_FALSE(client.is_connected());
ASSERT_HRESULT_FAILED(client.Connect(false));
ASSERT_FALSE(client.is_connected());
@@ -63,7 +63,7 @@
ASSERT_FALSE(server.is_started());
ASSERT_TRUE(server.Start());
ASSERT_TRUE(server.is_started());
- BrokerRpcClient client;
+ BrokerRpcClient client(false);
ASSERT_HRESULT_SUCCEEDED(client.Connect(false));
ASSERT_TRUE(client.is_connected());
}
@@ -72,7 +72,7 @@
BrokerRpcServer server;
ASSERT_TRUE(server.Start());
- BrokerRpcClient client;
+ BrokerRpcClient client(false);
ASSERT_HRESULT_SUCCEEDED(client.Connect(false));
const char* name = "name";
@@ -95,4 +95,69 @@
ASSERT_HRESULT_SUCCEEDED(client.SendUmaHistogramData(name, 1, 2, 3, 4));
}
+class BrokerRpcClientMock : public BrokerRpcClient {
+ public:
+ explicit BrokerRpcClientMock(bool allow_restarts)
+ : BrokerRpcClient(allow_restarts) {}
+ MOCK_METHOD0(StartServerMock, HRESULT());
+ protected:
+ HRESULT StartServer(IUnknown** server) {
+ server_.Start();
+ return StartServerMock();
+ }
+
+ public:
+ BrokerRpcServer server_;
+};
+
+TEST_F(BrokerRpcTest, StartServer) {
+ BrokerRpcClientMock client(true);
+ EXPECT_CALL(client, StartServerMock())
+ .Times(0);
+ ASSERT_HRESULT_FAILED(client.Connect(false));
+
+ EXPECT_CALL(client, StartServerMock())
+ .Times(1)
+ .WillOnce(Return(RPC_E_FAULT));
+ ASSERT_HRESULT_FAILED(client.Connect(true));
+
+ EXPECT_CALL(client, StartServerMock())
+ .Times(1)
+ .WillOnce(Return(S_OK));
+ ASSERT_HRESULT_SUCCEEDED(client.Connect(true));
+}
+
+TEST_F(BrokerRpcTest, NoRestartServer) {
+ BrokerRpcClientMock client(false);
+ EXPECT_CALL(client, StartServerMock())
+ .Times(1)
+ .WillOnce(Return(S_OK));
+ ASSERT_HRESULT_SUCCEEDED(client.Connect(true));
+ client.server_.Stop();
+
+ EXPECT_CALL(client, StartServerMock())
+ .Times(0);
+ EXPECT_CALL(broker_rpc_mock_,
+ BrokerRpcServer_FireEvent(_, _, _))
+ .Times(0);
+ ASSERT_HRESULT_FAILED(client.FireEvent("A", "B"));
+}
+
+TEST_F(BrokerRpcTest, RestartServer) {
+ BrokerRpcClientMock client(true);
+ EXPECT_CALL(client, StartServerMock())
+ .Times(1)
+ .WillOnce(Return(S_OK));
+ ASSERT_HRESULT_SUCCEEDED(client.Connect(true));
+ client.server_.Stop();
+
+ EXPECT_CALL(client, StartServerMock())
+ .Times(1)
+ .WillOnce(Return(S_OK));
+ EXPECT_CALL(broker_rpc_mock_,
+ BrokerRpcServer_FireEvent(_, _, _))
+ .Times(1);
+ ASSERT_HRESULT_SUCCEEDED(client.FireEvent("A", "B"));
+}
+
} // namespace

Powered by Google App Engine
This is Rietveld 408576698