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
5fed60b0c640828b320f56293c8bebc43fd2b1da8Alex Vakulenko#ifndef LIBBRILLO_BRILLO_PROCESS_MOCK_H_
6fed60b0c640828b320f56293c8bebc43fd2b1da8Alex Vakulenko#define LIBBRILLO_BRILLO_PROCESS_MOCK_H_
7f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter
8f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter#include <string>
9f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter
10f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter#include <gmock/gmock.h>
11f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter
129ed0cab99f18acb3570a35e9408f24355f6b8324Alex Vakulenko#include "brillo/process.h"
13b54b6dce29733370c74385e08ecd6666302f4df9Bertrand SIMONNET
149ed0cab99f18acb3570a35e9408f24355f6b8324Alex Vakulenkonamespace brillo {
15f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter
16f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixterclass ProcessMock : public Process {
17f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter public:
18f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter  ProcessMock() {}
19f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter  virtual ~ProcessMock() {}
20f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter
21f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter  MOCK_METHOD1(AddArg, void(const std::string& arg));
22f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter  MOCK_METHOD1(RedirectOutput, void(const std::string& output_file));
234694200ff870bc5ea90357b847aaaba906e3b058Ken Mixter  MOCK_METHOD2(RedirectUsingPipe, void(int child_fd, bool is_input));
24afd7db6cfa95ce0d505d33b78eb28cfe87d38551Elly Jones  MOCK_METHOD2(BindFd, void(int parent_fd, int child_fd));
25785f003527bb067cee05f67f1e0f9342025b3367Ken Mixter  MOCK_METHOD1(SetUid, void(uid_t));
26785f003527bb067cee05f67f1e0f9342025b3367Ken Mixter  MOCK_METHOD1(SetGid, void(gid_t));
27d6720ce258a19c08fd2cfe6ea61b5eeefcfb9582Samuel Tan  MOCK_METHOD1(SetCapabilities, void(uint64_t capmask));
28d6720ce258a19c08fd2cfe6ea61b5eeefcfb9582Samuel Tan  MOCK_METHOD1(ApplySyscallFilter, void(const std::string& path));
29d6720ce258a19c08fd2cfe6ea61b5eeefcfb9582Samuel Tan  MOCK_METHOD0(EnterNewPidNamespace, void());
30ce4089ad3dbe1dcc4c7842f2da3a7bce4fb5352aPeter Qiu  MOCK_METHOD1(SetInheritParentSignalMask, void(bool));
31b0d44eefcc58506199f2abf9d248f5a50f3a4d1bElly Jones  MOCK_METHOD1(SetPreExecCallback, void(const PreExecCallback&));
32b78e8dd5d485dd04b1c29431d009ff6b1567c105David Pursell  MOCK_METHOD1(SetSearchPath, void(bool));
334694200ff870bc5ea90357b847aaaba906e3b058Ken Mixter  MOCK_METHOD1(GetPipe, int(int child_fd));
34f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter  MOCK_METHOD0(Start, bool());
35f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter  MOCK_METHOD0(Wait, int());
36f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter  MOCK_METHOD0(Run, int());
37f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter  MOCK_METHOD0(pid, pid_t());
38f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter  MOCK_METHOD2(Kill, bool(int signal, int timeout));
39f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter  MOCK_METHOD1(Reset, void(pid_t));
40f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter  MOCK_METHOD1(ResetPidByFile, bool(const std::string& pid_file));
41f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter  MOCK_METHOD0(Release, pid_t());
42418cb564472b48c21d6f70ff4f7e8bd688355ec4Peter Qiu  MOCK_METHOD1(SetCloseUnusedFileDescriptors, void(bool close_unused_fds));
43f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter};
44f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter
459ed0cab99f18acb3570a35e9408f24355f6b8324Alex Vakulenko}  // namespace brillo
46f15efc6bc63aab6590b2b303785d0ab810ee5470Ken Mixter
47fed60b0c640828b320f56293c8bebc43fd2b1da8Alex Vakulenko#endif  // LIBBRILLO_BRILLO_PROCESS_MOCK_H_
48