xref: /aosp_15_r20/external/libbrillo/brillo/minijail/mock_minijail.h (revision 1a96fba65179ea7d3f56207137718607415c5953)
1*1a96fba6SXin Li // Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
2*1a96fba6SXin Li // Use of this source code is governed by a BSD-style license that can be
3*1a96fba6SXin Li // found in the LICENSE file.
4*1a96fba6SXin Li 
5*1a96fba6SXin Li #ifndef LIBBRILLO_BRILLO_MINIJAIL_MOCK_MINIJAIL_H_
6*1a96fba6SXin Li #define LIBBRILLO_BRILLO_MINIJAIL_MOCK_MINIJAIL_H_
7*1a96fba6SXin Li 
8*1a96fba6SXin Li #include <vector>
9*1a96fba6SXin Li 
10*1a96fba6SXin Li #include <base/macros.h>
11*1a96fba6SXin Li #include <gmock/gmock.h>
12*1a96fba6SXin Li 
13*1a96fba6SXin Li #include "brillo/minijail/minijail.h"
14*1a96fba6SXin Li 
15*1a96fba6SXin Li namespace brillo {
16*1a96fba6SXin Li 
17*1a96fba6SXin Li class MockMinijail : public brillo::Minijail {
18*1a96fba6SXin Li  public:
MockMinijail()19*1a96fba6SXin Li   MockMinijail() {}
~MockMinijail()20*1a96fba6SXin Li   virtual ~MockMinijail() {}
21*1a96fba6SXin Li 
22*1a96fba6SXin Li   MOCK_METHOD(struct minijail*, New, (), (override));
23*1a96fba6SXin Li   MOCK_METHOD(void, Destroy, (struct minijail*), (override));
24*1a96fba6SXin Li 
25*1a96fba6SXin Li   MOCK_METHOD(bool,
26*1a96fba6SXin Li               DropRoot,
27*1a96fba6SXin Li               (struct minijail*, const char*, const char*),
28*1a96fba6SXin Li               (override));
29*1a96fba6SXin Li   MOCK_METHOD(void,
30*1a96fba6SXin Li               UseSeccompFilter,
31*1a96fba6SXin Li               (struct minijail*, const char*),
32*1a96fba6SXin Li               (override));
33*1a96fba6SXin Li   MOCK_METHOD(void, UseCapabilities, (struct minijail*, uint64_t), (override));
34*1a96fba6SXin Li   MOCK_METHOD(void, ResetSignalMask, (struct minijail*), (override));
35*1a96fba6SXin Li   MOCK_METHOD(void, CloseOpenFds, (struct minijail*), (override));
36*1a96fba6SXin Li   MOCK_METHOD(void, PreserveFd, (struct minijail*, int, int), (override));
37*1a96fba6SXin Li   MOCK_METHOD(void, Enter, (struct minijail*), (override));
38*1a96fba6SXin Li   MOCK_METHOD(bool,
39*1a96fba6SXin Li               Run,
40*1a96fba6SXin Li               (struct minijail*, std::vector<char*>, pid_t*),
41*1a96fba6SXin Li               (override));
42*1a96fba6SXin Li   MOCK_METHOD(bool,
43*1a96fba6SXin Li               RunSync,
44*1a96fba6SXin Li               (struct minijail*, std::vector<char*>, int*),
45*1a96fba6SXin Li               (override));
46*1a96fba6SXin Li   MOCK_METHOD(bool,
47*1a96fba6SXin Li               RunPipes,
48*1a96fba6SXin Li               (struct minijail*, std::vector<char*>, pid_t*, int*, int*, int*),
49*1a96fba6SXin Li               (override));
50*1a96fba6SXin Li   MOCK_METHOD(bool,
51*1a96fba6SXin Li               RunEnvPipes,
52*1a96fba6SXin Li               (struct minijail*,
53*1a96fba6SXin Li                std::vector<char*>,
54*1a96fba6SXin Li                std::vector<char*>,
55*1a96fba6SXin Li                pid_t*,
56*1a96fba6SXin Li                int*,
57*1a96fba6SXin Li                int*,
58*1a96fba6SXin Li                int*),
59*1a96fba6SXin Li               (override));
60*1a96fba6SXin Li   MOCK_METHOD(bool,
61*1a96fba6SXin Li               RunAndDestroy,
62*1a96fba6SXin Li               (struct minijail*, std::vector<char*>, pid_t*),
63*1a96fba6SXin Li               (override));
64*1a96fba6SXin Li   MOCK_METHOD(bool,
65*1a96fba6SXin Li               RunSyncAndDestroy,
66*1a96fba6SXin Li               (struct minijail*, std::vector<char*>, int*),
67*1a96fba6SXin Li               (override));
68*1a96fba6SXin Li   MOCK_METHOD(bool,
69*1a96fba6SXin Li               RunPipeAndDestroy,
70*1a96fba6SXin Li               (struct minijail*, std::vector<char*>, pid_t*, int*),
71*1a96fba6SXin Li               (override));
72*1a96fba6SXin Li   MOCK_METHOD(bool,
73*1a96fba6SXin Li               RunPipesAndDestroy,
74*1a96fba6SXin Li               (struct minijail*, std::vector<char*>, pid_t*, int*, int*, int*),
75*1a96fba6SXin Li               (override));
76*1a96fba6SXin Li   MOCK_METHOD(bool,
77*1a96fba6SXin Li               RunEnvPipesAndDestroy,
78*1a96fba6SXin Li               (struct minijail*,
79*1a96fba6SXin Li                std::vector<char*>,
80*1a96fba6SXin Li                std::vector<char*>,
81*1a96fba6SXin Li                pid_t*,
82*1a96fba6SXin Li                int*,
83*1a96fba6SXin Li                int*,
84*1a96fba6SXin Li                int*),
85*1a96fba6SXin Li               (override));
86*1a96fba6SXin Li 
87*1a96fba6SXin Li  private:
88*1a96fba6SXin Li   DISALLOW_COPY_AND_ASSIGN(MockMinijail);
89*1a96fba6SXin Li };
90*1a96fba6SXin Li 
91*1a96fba6SXin Li }  // namespace brillo
92*1a96fba6SXin Li 
93*1a96fba6SXin Li #endif  // LIBBRILLO_BRILLO_MINIJAIL_MOCK_MINIJAIL_H_
94