Index: handler/win/registration_pipe_state_test.cc |
diff --git a/handler/win/registration_pipe_state_test.cc b/handler/win/registration_pipe_state_test.cc |
deleted file mode 100644 |
index 276b6db80a7e1bbfe50e883b375d4c13f352de3f..0000000000000000000000000000000000000000 |
--- a/handler/win/registration_pipe_state_test.cc |
+++ /dev/null |
@@ -1,259 +0,0 @@ |
-// Copyright 2015 The Crashpad Authors. All rights reserved. |
-// |
-// Licensed under the Apache License, Version 2.0 (the "License"); |
-// you may not use this file except in compliance with the License. |
-// You may obtain a copy of the License at |
-// |
-// http://www.apache.org/licenses/LICENSE-2.0 |
-// |
-// Unless required by applicable law or agreed to in writing, software |
-// distributed under the License is distributed on an "AS IS" BASIS, |
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
-// See the License for the specific language governing permissions and |
-// limitations under the License. |
- |
-#include "handler/win/registration_pipe_state.h" |
- |
-#include <windows.h> |
- |
-#include "base/basictypes.h" |
-#include "base/logging.h" |
-#include "base/memory/scoped_ptr.h" |
-#include "client/crashpad_info.h" |
-#include "client/registration_protocol_win.h" |
-#include "gtest/gtest.h" |
-#include "handler/win/registration_test_base.h" |
-#include "util/win/scoped_handle.h" |
- |
-namespace crashpad { |
-namespace test { |
-namespace { |
- |
-class RegistrationRegistrationPipeStateTest : public RegistrationTestBase { |
- public: |
- RegistrationRegistrationPipeStateTest() : pipe_state_() {} |
- |
- void SetUp() override { |
- ScopedFileHANDLE pipe( |
- CreateNamedPipe(pipe_name().c_str(), |
- PIPE_ACCESS_DUPLEX | FILE_FLAG_OVERLAPPED | |
- FILE_FLAG_FIRST_PIPE_INSTANCE, |
- PIPE_TYPE_MESSAGE | PIPE_READMODE_MESSAGE | PIPE_WAIT, |
- 1, |
- 512, // nOutBufferSize |
- 512, // nInBufferSize |
- 20, // nDefaultTimeOut |
- nullptr)); // lpSecurityAttributes |
- ASSERT_TRUE(pipe.is_valid()); |
- pipe_state_.reset(new RegistrationPipeState(pipe.Pass(), &delegate())); |
- } |
- |
- ~RegistrationRegistrationPipeStateTest() override {} |
- |
- RegistrationPipeState& pipe_state() { |
- DCHECK(pipe_state_.get()); |
- return *pipe_state_; |
- } |
- |
- private: |
- scoped_ptr<RegistrationPipeState> pipe_state_; |
- DISALLOW_COPY_AND_ASSIGN(RegistrationRegistrationPipeStateTest); |
-}; |
- |
-TEST_F(RegistrationRegistrationPipeStateTest, CancelIoWhenConnectIsComplete) { |
- // -> Connecting |
- ASSERT_TRUE(pipe_state().Initialize()); |
- |
- ScopedFileHANDLE client(Connect()); |
- |
- ASSERT_TRUE(client.is_valid()); |
- |
- // Connect completion. |
- ASSERT_EQ(WAIT_OBJECT_0, |
- WaitForSingleObject(pipe_state().completion_event(), INFINITE)); |
- |
- // Connecting -> Stopping |
- pipe_state().Stop(); |
- |
- // Stop completion. |
- ASSERT_EQ(WAIT_OBJECT_0, |
- WaitForSingleObject(pipe_state().completion_event(), INFINITE)); |
-} |
- |
-TEST_F(RegistrationRegistrationPipeStateTest, CancelIoWhenReadIsComplete) { |
- // -> Connecting |
- ASSERT_TRUE(pipe_state().Initialize()); |
- |
- ScopedFileHANDLE client(Connect()); |
- |
- ASSERT_TRUE(client.is_valid()); |
- |
- // Connect completion. |
- ASSERT_EQ(WAIT_OBJECT_0, |
- WaitForSingleObject(pipe_state().completion_event(), INFINITE)); |
- |
- // Connecting -> Reading |
- ASSERT_TRUE(pipe_state().OnCompletion()); |
- |
- RegistrationRequest request = {0}; |
- CrashpadInfo crashpad_info; |
- request.client_process_id = GetCurrentProcessId(); |
- request.crashpad_info_address = |
- reinterpret_cast<WinVMAddress>(&crashpad_info); |
- |
- ASSERT_TRUE(WriteRequest(client.get(), &request, sizeof(request))); |
- |
- // Read completion. |
- ASSERT_EQ(WAIT_OBJECT_0, |
- WaitForSingleObject(pipe_state().completion_event(), INFINITE)); |
- |
- // Reading -> Stopping |
- pipe_state().Stop(); |
- |
- // Stop completion. |
- ASSERT_EQ(WAIT_OBJECT_0, |
- WaitForSingleObject(pipe_state().completion_event(), INFINITE)); |
-} |
- |
-TEST_F(RegistrationRegistrationPipeStateTest, CancelIoWhenWriteIsComplete) { |
- // -> Connecting |
- ASSERT_TRUE(pipe_state().Initialize()); |
- |
- ScopedFileHANDLE client(Connect()); |
- |
- ASSERT_TRUE(client.is_valid()); |
- |
- // Connect completion. |
- ASSERT_EQ(WAIT_OBJECT_0, |
- WaitForSingleObject(pipe_state().completion_event(), INFINITE)); |
- |
- // Connecting -> Reading |
- ASSERT_TRUE(pipe_state().OnCompletion()); |
- |
- RegistrationRequest request = {0}; |
- CrashpadInfo crashpad_info; |
- request.client_process_id = GetCurrentProcessId(); |
- request.crashpad_info_address = |
- reinterpret_cast<WinVMAddress>(&crashpad_info); |
- |
- ASSERT_TRUE(WriteRequest(client.get(), &request, sizeof(request))); |
- |
- // Read completion. |
- ASSERT_EQ(WAIT_OBJECT_0, |
- WaitForSingleObject(pipe_state().completion_event(), INFINITE)); |
- |
- // Reading -> Writing -> Waiting for Close |
- ASSERT_TRUE(pipe_state().OnCompletion()); |
- |
- RegistrationResponse response = {0}; |
- ASSERT_TRUE(ReadResponse(client.get(), &response)); |
- |
- // Waiting for Close -> Stopping |
- pipe_state().Stop(); |
- |
- // Stop completion. |
- ASSERT_EQ(WAIT_OBJECT_0, |
- WaitForSingleObject(pipe_state().completion_event(), INFINITE)); |
-} |
- |
-TEST_F(RegistrationRegistrationPipeStateTest, CancelIoWhenCloseIsComplete) { |
- // -> Connecting |
- ASSERT_TRUE(pipe_state().Initialize()); |
- |
- ScopedFileHANDLE client(Connect()); |
- |
- ASSERT_TRUE(client.is_valid()); |
- |
- // Connect completion. |
- ASSERT_EQ(WAIT_OBJECT_0, |
- WaitForSingleObject(pipe_state().completion_event(), INFINITE)); |
- |
- // Connecting -> Reading |
- ASSERT_TRUE(pipe_state().OnCompletion()); |
- |
- RegistrationRequest request = {0}; |
- CrashpadInfo crashpad_info; |
- request.client_process_id = GetCurrentProcessId(); |
- request.crashpad_info_address = |
- reinterpret_cast<WinVMAddress>(&crashpad_info); |
- |
- ASSERT_TRUE(WriteRequest(client.get(), &request, sizeof(request))); |
- |
- // Read completion. |
- ASSERT_EQ(WAIT_OBJECT_0, |
- WaitForSingleObject(pipe_state().completion_event(), INFINITE)); |
- |
- // Reading -> Writing -> Waiting for Close |
- ASSERT_TRUE(pipe_state().OnCompletion()); |
- |
- RegistrationResponse response = {0}; |
- ASSERT_TRUE(ReadResponse(client.get(), &response)); |
- |
- client.reset(); |
- |
- // Wait for close completion. |
- ASSERT_EQ(WAIT_OBJECT_0, |
- WaitForSingleObject(pipe_state().completion_event(), INFINITE)); |
- |
- // Waiting for Close -> Stopping |
- pipe_state().Stop(); |
- |
- // Stop completion. |
- ASSERT_EQ(WAIT_OBJECT_0, |
- WaitForSingleObject(pipe_state().completion_event(), INFINITE)); |
-} |
- |
-TEST_F(RegistrationRegistrationPipeStateTest, FullCycle) { |
- // -> Connecting |
- ASSERT_TRUE(pipe_state().Initialize()); |
- |
- ScopedFileHANDLE client(Connect()); |
- |
- ASSERT_TRUE(client.is_valid()); |
- |
- // Connect completion. |
- ASSERT_EQ(WAIT_OBJECT_0, |
- WaitForSingleObject(pipe_state().completion_event(), INFINITE)); |
- |
- // Connecting -> Reading |
- ASSERT_TRUE(pipe_state().OnCompletion()); |
- |
- RegistrationRequest request = {0}; |
- CrashpadInfo crashpad_info; |
- request.client_process_id = GetCurrentProcessId(); |
- request.crashpad_info_address = |
- reinterpret_cast<WinVMAddress>(&crashpad_info); |
- |
- ASSERT_TRUE(WriteRequest(client.get(), &request, sizeof(request))); |
- |
- // Read completion. |
- ASSERT_EQ(WAIT_OBJECT_0, |
- WaitForSingleObject(pipe_state().completion_event(), INFINITE)); |
- |
- // Reading -> Writing -> Waiting for Close |
- ASSERT_TRUE(pipe_state().OnCompletion()); |
- |
- RegistrationResponse response = {0}; |
- ASSERT_TRUE(ReadResponse(client.get(), &response)); |
- |
- client.reset(); |
- |
- // Wait for close completion. |
- ASSERT_EQ(WAIT_OBJECT_0, |
- WaitForSingleObject(pipe_state().completion_event(), INFINITE)); |
- |
- // Waiting for Close -> Reset -> Connecting |
- ASSERT_TRUE(pipe_state().OnCompletion()); |
- |
- client = Connect(); |
- ASSERT_TRUE(client.is_valid()); |
- |
- pipe_state().Stop(); |
- |
- ASSERT_EQ(WAIT_OBJECT_0, |
- WaitForSingleObject(pipe_state().completion_event(), INFINITE)); |
-} |
- |
-} // namespace |
-} // namespace test |
-} // namespace crashpad |