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