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