| Index: content/common/process_watcher_unittest.cc
|
| ===================================================================
|
| --- content/common/process_watcher_unittest.cc (revision 111236)
|
| +++ content/common/process_watcher_unittest.cc (working copy)
|
| @@ -1,64 +0,0 @@
|
| -// Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "content/common/process_watcher.h"
|
| -
|
| -#include <sys/wait.h>
|
| -
|
| -#include "base/eintr_wrapper.h"
|
| -#include "base/process_util.h"
|
| -#include "base/test/multiprocess_test.h"
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| -#include "testing/multiprocess_func_list.h"
|
| -
|
| -class ProcessWatcherTest : public base::MultiProcessTest {
|
| -};
|
| -
|
| -namespace {
|
| -
|
| -bool IsProcessDead(base::ProcessHandle child) {
|
| - // waitpid() will actually reap the process which is exactly NOT what we
|
| - // want to test for. The good thing is that if it can't find the process
|
| - // we'll get a nice value for errno which we can test for.
|
| - const pid_t result = HANDLE_EINTR(waitpid(child, NULL, WNOHANG));
|
| - return result == -1 && errno == ECHILD;
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -TEST_F(ProcessWatcherTest, DelayedTermination) {
|
| - base::ProcessHandle child_process =
|
| - SpawnChild("process_watcher_test_never_die", false);
|
| - ASSERT_TRUE(child_process);
|
| - ProcessWatcher::EnsureProcessTerminated(child_process);
|
| - base::WaitForSingleProcess(child_process, 5000);
|
| -
|
| - // Check that process was really killed.
|
| - EXPECT_TRUE(IsProcessDead(child_process));
|
| - base::CloseProcessHandle(child_process);
|
| -}
|
| -
|
| -MULTIPROCESS_TEST_MAIN(process_watcher_test_never_die) {
|
| - while (1) {
|
| - sleep(500);
|
| - }
|
| - return 0;
|
| -}
|
| -
|
| -TEST_F(ProcessWatcherTest, ImmediateTermination) {
|
| - base::ProcessHandle child_process =
|
| - SpawnChild("process_watcher_test_die_immediately", false);
|
| - ASSERT_TRUE(child_process);
|
| - // Give it time to die.
|
| - sleep(2);
|
| - ProcessWatcher::EnsureProcessTerminated(child_process);
|
| -
|
| - // Check that process was really killed.
|
| - EXPECT_TRUE(IsProcessDead(child_process));
|
| - base::CloseProcessHandle(child_process);
|
| -}
|
| -
|
| -MULTIPROCESS_TEST_MAIN(process_watcher_test_die_immediately) {
|
| - return 0;
|
| -}
|
|
|