| Index: util/win/exception_handler_server_test.cc
|
| diff --git a/util/win/exception_handler_server_test.cc b/util/win/exception_handler_server_test.cc
|
| index 8cfbb45f3d92be0f20e4a33ba820dd35dc1135d5..ee31e26d282a9dc5f0d6a359dec1c1027e34fa3e 100644
|
| --- a/util/win/exception_handler_server_test.cc
|
| +++ b/util/win/exception_handler_server_test.cc
|
| @@ -20,7 +20,6 @@
|
| #include <vector>
|
|
|
| #include "base/basictypes.h"
|
| -#include "base/strings/stringprintf.h"
|
| #include "base/strings/utf_string_conversions.h"
|
| #include "client/crashpad_client.h"
|
| #include "gtest/gtest.h"
|
| @@ -80,23 +79,22 @@ class TestDelegate : public ExceptionHandlerServer::Delegate {
|
| class ExceptionHandlerServerTest : public testing::Test {
|
| public:
|
| ExceptionHandlerServerTest()
|
| - : pipe_name_("\\\\.\\pipe\\exception_handler_server_test_pipe_" +
|
| - base::StringPrintf("%08x", GetCurrentProcessId())),
|
| + : server_(true),
|
| + pipe_name_(server_.CreatePipe()),
|
| server_ready_(CreateEvent(nullptr, false, false, nullptr)),
|
| delegate_(server_ready_.get()),
|
| - server_(pipe_name_, true),
|
| server_thread_(&server_, &delegate_) {}
|
|
|
| TestDelegate& delegate() { return delegate_; }
|
| ExceptionHandlerServer& server() { return server_; }
|
| Thread& server_thread() { return server_thread_; }
|
| - const std::string& pipe_name() const { return pipe_name_; }
|
| + const std::wstring& pipe_name() const { return pipe_name_; }
|
|
|
| private:
|
| - std::string pipe_name_;
|
| + ExceptionHandlerServer server_;
|
| + std::wstring pipe_name_;
|
| ScopedKernelHANDLE server_ready_;
|
| TestDelegate delegate_;
|
| - ExceptionHandlerServer server_;
|
| RunServerThread server_thread_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(ExceptionHandlerServerTest);
|
| @@ -135,23 +133,27 @@ TEST_F(ExceptionHandlerServerTest, StopWhileConnected) {
|
| &server(), &server_thread());
|
| ASSERT_NO_FATAL_FAILURE(delegate().WaitForStart());
|
| CrashpadClient client;
|
| - client.SetHandlerIPCPipe(base::UTF8ToUTF16(pipe_name()));
|
| + client.SetHandlerIPCPipe(pipe_name());
|
| // Leaving this scope causes the server to be stopped, while the connection
|
| // is still open.
|
| }
|
|
|
| -std::string ReadString(FileHandle handle) {
|
| +std::wstring ReadWString(FileHandle handle) {
|
| size_t length = 0;
|
| EXPECT_TRUE(LoggingReadFile(handle, &length, sizeof(length)));
|
| - scoped_ptr<char[]> buffer(new char[length]);
|
| - EXPECT_TRUE(LoggingReadFile(handle, &buffer[0], length));
|
| - return std::string(&buffer[0], length);
|
| + std::wstring str(length, L'\0');
|
| + if (length > 0) {
|
| + EXPECT_TRUE(LoggingReadFile(handle, &str[0], length * sizeof(str[0])));
|
| + }
|
| + return str;
|
| }
|
|
|
| -void WriteString(FileHandle handle, const std::string& str) {
|
| +void WriteWString(FileHandle handle, const std::wstring& str) {
|
| size_t length = str.size();
|
| EXPECT_TRUE(LoggingWriteFile(handle, &length, sizeof(length)));
|
| - EXPECT_TRUE(LoggingWriteFile(handle, &str[0], length));
|
| + if (length > 0) {
|
| + EXPECT_TRUE(LoggingWriteFile(handle, &str[0], length * sizeof(str[0])));
|
| + }
|
| }
|
|
|
| class TestClient final : public WinChildProcess {
|
| @@ -162,7 +164,7 @@ class TestClient final : public WinChildProcess {
|
|
|
| private:
|
| int Run() override {
|
| - std::wstring pipe_name = base::UTF8ToUTF16(ReadString(ReadPipeHandle()));
|
| + std::wstring pipe_name = ReadWString(ReadPipeHandle());
|
| CrashpadClient client;
|
| if (!client.SetHandlerIPCPipe(pipe_name)) {
|
| ADD_FAILURE();
|
| @@ -172,7 +174,7 @@ class TestClient final : public WinChildProcess {
|
| ADD_FAILURE();
|
| return EXIT_FAILURE;
|
| }
|
| - WriteString(WritePipeHandle(), "OK");
|
| + WriteWString(WritePipeHandle(), L"OK");
|
| return EXIT_SUCCESS;
|
| }
|
|
|
| @@ -194,13 +196,13 @@ TEST_F(ExceptionHandlerServerTest, MultipleConnections) {
|
| ASSERT_NO_FATAL_FAILURE(delegate().WaitForStart());
|
|
|
| // Tell all the children where to connect.
|
| - WriteString(handles_1->write.get(), pipe_name());
|
| - WriteString(handles_2->write.get(), pipe_name());
|
| - WriteString(handles_3->write.get(), pipe_name());
|
| + WriteWString(handles_1->write.get(), pipe_name());
|
| + WriteWString(handles_2->write.get(), pipe_name());
|
| + WriteWString(handles_3->write.get(), pipe_name());
|
|
|
| - ASSERT_EQ("OK", ReadString(handles_3->read.get()));
|
| - ASSERT_EQ("OK", ReadString(handles_2->read.get()));
|
| - ASSERT_EQ("OK", ReadString(handles_1->read.get()));
|
| + ASSERT_EQ(L"OK", ReadWString(handles_3->read.get()));
|
| + ASSERT_EQ(L"OK", ReadWString(handles_2->read.get()));
|
| + ASSERT_EQ(L"OK", ReadWString(handles_1->read.get()));
|
| }
|
| }
|
|
|
|
|