process_mock.h revision b0d44eefcc58506199f2abf9d248f5a50f3a4d1b
1b0d44eefcc58506199f2abf9d248f5a50f3a4d1bElly Jones// Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
2f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter// Use of this source code is governed by a BSD-style license that can be
3f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter// found in the LICENSE file.
4f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter
5f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter#ifndef CHROMEOS_PROCESS_MOCK_H_
6f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter#define CHROMEOS_PROCESS_MOCK_H_
7f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter
8f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter#include <string>
9f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter
10f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter#include <chromeos/process.h>
11f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter#include <gmock/gmock.h>
12f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter
13f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixternamespace chromeos {
14f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter
15f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixterclass ProcessMock : public Process {
16f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter public:
17f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter  ProcessMock() {}
18f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter  virtual ~ProcessMock() {}
19f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter
20f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter  MOCK_METHOD1(AddArg, void(const std::string& arg));
21f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter  MOCK_METHOD1(RedirectOutput, void(const std::string& output_file));
224694200ff870bc5ea90357b847aaaba906e3b058Ken Mixter  MOCK_METHOD2(RedirectUsingPipe, void(int child_fd, bool is_input));
23afd7db6cfa95ce0d505d33b78eb28cfe87d38551Elly Jones  MOCK_METHOD2(BindFd, void(int parent_fd, int child_fd));
24785f003527bb067cee05f67f1e0f9342025b3367Ken Mixter  MOCK_METHOD1(SetUid, void(uid_t));
25785f003527bb067cee05f67f1e0f9342025b3367Ken Mixter  MOCK_METHOD1(SetGid, void(gid_t));
26b0d44eefcc58506199f2abf9d248f5a50f3a4d1bElly Jones  MOCK_METHOD1(SetPreExecCallback, void(const PreExecCallback&));
274694200ff870bc5ea90357b847aaaba906e3b058Ken Mixter  MOCK_METHOD1(GetPipe, int(int child_fd));
28f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter  MOCK_METHOD0(Start, bool());
29f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter  MOCK_METHOD0(Wait, int());
30f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter  MOCK_METHOD0(Run, int());
31f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter  MOCK_METHOD0(pid, pid_t());
32f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter  MOCK_METHOD2(Kill, bool(int signal, int timeout));
33f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter  MOCK_METHOD1(Reset, void(pid_t));
34f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter  MOCK_METHOD1(ResetPidByFile, bool(const std::string& pid_file));
35f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter  MOCK_METHOD0(Release, pid_t());
36f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter};
37f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter
38f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter}  // namespace chromeos
39f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter
40f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter#endif  // CHROMEOS_PROCESS_MOCK_H_
41