- 3.0.1 core module.
gmock-generated-function-mockers.h
Go to the documentation of this file.
1 // This file was GENERATED by command:
2 // pump.py gmock-generated-function-mockers.h.pump
3 // DO NOT EDIT BY HAND!!!
4 
5 // Copyright 2007, Google Inc.
6 // All rights reserved.
7 //
8 // Redistribution and use in source and binary forms, with or without
9 // modification, are permitted provided that the following conditions are
10 // met:
11 //
12 // * Redistributions of source code must retain the above copyright
13 // notice, this list of conditions and the following disclaimer.
14 // * Redistributions in binary form must reproduce the above
15 // copyright notice, this list of conditions and the following disclaimer
16 // in the documentation and/or other materials provided with the
17 // distribution.
18 // * Neither the name of Google Inc. nor the names of its
19 // contributors may be used to endorse or promote products derived from
20 // this software without specific prior written permission.
21 //
22 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33 
34 
35 // Google Mock - a framework for writing C++ mock classes.
36 //
37 // This file implements function mockers of various arities.
38 
39 // GOOGLETEST_CM0002 DO NOT DELETE
40 
41 #ifndef GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_FUNCTION_MOCKERS_H_
42 #define GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_FUNCTION_MOCKERS_H_
43 
44 #include <functional>
45 #include <utility>
46 
49 
50 namespace testing {
51 namespace internal {
52 // Removes the given pointer; this is a helper for the expectation setter method
53 // for parameterless matchers.
54 //
55 // We want to make sure that the user cannot set a parameterless expectation on
56 // overloaded methods, including methods which are overloaded on const. Example:
57 //
58 // class MockClass {
59 // MOCK_METHOD0(GetName, string&());
60 // MOCK_CONST_METHOD0(GetName, const string&());
61 // };
62 //
63 // TEST() {
64 // // This should be an error, as it's not clear which overload is expected.
65 // EXPECT_CALL(mock, GetName).WillOnce(ReturnRef(value));
66 // }
67 //
68 // Here are the generated expectation-setter methods:
69 //
70 // class MockClass {
71 // // Overload 1
72 // MockSpec<string&()> gmock_GetName() { ... }
73 // // Overload 2. Declared const so that the compiler will generate an
74 // // error when trying to resolve between this and overload 4 in
75 // // 'gmock_GetName(WithoutMatchers(), nullptr)'.
76 // MockSpec<string&()> gmock_GetName(
77 // const WithoutMatchers&, const Function<string&()>*) const {
78 // // Removes const from this, calls overload 1
79 // return AdjustConstness_(this)->gmock_GetName();
80 // }
81 //
82 // // Overload 3
83 // const string& gmock_GetName() const { ... }
84 // // Overload 4
85 // MockSpec<const string&()> gmock_GetName(
86 // const WithoutMatchers&, const Function<const string&()>*) const {
87 // // Does not remove const, calls overload 3
88 // return AdjustConstness_const(this)->gmock_GetName();
89 // }
90 // }
91 //
92 template <typename MockType>
93 const MockType* AdjustConstness_const(const MockType* mock) {
94  return mock;
95 }
96 
97 // Removes const from and returns the given pointer; this is a helper for the
98 // expectation setter method for parameterless matchers.
99 template <typename MockType>
100 MockType* AdjustConstness_(const MockType* mock) {
101  return const_cast<MockType*>(mock);
102 }
103 
104 } // namespace internal
105 
106 // The style guide prohibits "using" statements in a namespace scope
107 // inside a header file. However, the FunctionMocker class template
108 // is meant to be defined in the ::testing namespace. The following
109 // line is just a trick for working around a bug in MSVC 8.0, which
110 // cannot handle it if we define FunctionMocker in ::testing.
111 using internal::FunctionMocker;
112 
113 // GMOCK_RESULT_(tn, F) expands to the result type of function type F.
114 // We define this as a variadic macro in case F contains unprotected
115 // commas (the same reason that we use variadic macros in other places
116 // in this file).
117 // INTERNAL IMPLEMENTATION - DON'T USE IN USER CODE!!!
118 #define GMOCK_RESULT_(tn, ...) \
119  tn ::testing::internal::Function<__VA_ARGS__>::Result
120 
121 // The type of argument N of the given function type.
122 // INTERNAL IMPLEMENTATION - DON'T USE IN USER CODE!!!
123 #define GMOCK_ARG_(tn, N, ...) \
124  tn ::testing::internal::Function<__VA_ARGS__>::template Arg<N-1>::type
125 
126 // The matcher type for argument N of the given function type.
127 // INTERNAL IMPLEMENTATION - DON'T USE IN USER CODE!!!
128 #define GMOCK_MATCHER_(tn, N, ...) \
129  const ::testing::Matcher<GMOCK_ARG_(tn, N, __VA_ARGS__)>&
130 
131 // The variable for mocking the given method.
132 // INTERNAL IMPLEMENTATION - DON'T USE IN USER CODE!!!
133 #define GMOCK_MOCKER_(arity, constness, Method) \
134  GTEST_CONCAT_TOKEN_(gmock##constness##arity##_##Method##_, __LINE__)
135 
136 // INTERNAL IMPLEMENTATION - DON'T USE IN USER CODE!!!
137 #define GMOCK_METHOD0_(tn, constness, ct, Method, ...) \
138  static_assert(0 == \
139  ::testing::internal::Function<__VA_ARGS__>::ArgumentCount, \
140  "MOCK_METHOD<N> must match argument count.");\
141  GMOCK_RESULT_(tn, __VA_ARGS__) ct Method( \
142  ) constness { \
143  GMOCK_MOCKER_(0, constness, Method).SetOwnerAndName(this, #Method); \
144  return GMOCK_MOCKER_(0, constness, Method).Invoke(); \
145  } \
146  ::testing::MockSpec<__VA_ARGS__> \
147  gmock_##Method() constness { \
148  GMOCK_MOCKER_(0, constness, Method).RegisterOwner(this); \
149  return GMOCK_MOCKER_(0, constness, Method).With(); \
150  } \
151  ::testing::MockSpec<__VA_ARGS__> gmock_##Method( \
152  const ::testing::internal::WithoutMatchers&, \
153  constness ::testing::internal::Function<__VA_ARGS__>* ) const { \
154  return ::testing::internal::AdjustConstness_##constness(this)-> \
155  gmock_##Method(); \
156  } \
157  mutable ::testing::FunctionMocker<__VA_ARGS__> GMOCK_MOCKER_(0, constness, \
158  Method)
159 
160 // INTERNAL IMPLEMENTATION - DON'T USE IN USER CODE!!!
161 #define GMOCK_METHOD1_(tn, constness, ct, Method, ...) \
162  static_assert(1 == \
163  ::testing::internal::Function<__VA_ARGS__>::ArgumentCount, \
164  "MOCK_METHOD<N> must match argument count.");\
165  GMOCK_RESULT_(tn, __VA_ARGS__) ct Method( \
166  GMOCK_ARG_(tn, 1, __VA_ARGS__) gmock_a1) constness { \
167  GMOCK_MOCKER_(1, constness, Method).SetOwnerAndName(this, #Method); \
168  return GMOCK_MOCKER_(1, constness, \
169  Method).Invoke(::std::forward<GMOCK_ARG_(tn, 1, \
170  __VA_ARGS__)>(gmock_a1)); \
171  } \
172  ::testing::MockSpec<__VA_ARGS__> \
173  gmock_##Method(GMOCK_MATCHER_(tn, 1, __VA_ARGS__) gmock_a1) constness { \
174  GMOCK_MOCKER_(1, constness, Method).RegisterOwner(this); \
175  return GMOCK_MOCKER_(1, constness, Method).With(gmock_a1); \
176  } \
177  ::testing::MockSpec<__VA_ARGS__> gmock_##Method( \
178  const ::testing::internal::WithoutMatchers&, \
179  constness ::testing::internal::Function<__VA_ARGS__>* ) const { \
180  return ::testing::internal::AdjustConstness_##constness(this)-> \
181  gmock_##Method(::testing::A<GMOCK_ARG_(tn, 1, __VA_ARGS__)>()); \
182  } \
183  mutable ::testing::FunctionMocker<__VA_ARGS__> GMOCK_MOCKER_(1, constness, \
184  Method)
185 
186 // INTERNAL IMPLEMENTATION - DON'T USE IN USER CODE!!!
187 #define GMOCK_METHOD2_(tn, constness, ct, Method, ...) \
188  static_assert(2 == \
189  ::testing::internal::Function<__VA_ARGS__>::ArgumentCount, \
190  "MOCK_METHOD<N> must match argument count.");\
191  GMOCK_RESULT_(tn, __VA_ARGS__) ct Method( \
192  GMOCK_ARG_(tn, 1, __VA_ARGS__) gmock_a1, GMOCK_ARG_(tn, 2, \
193  __VA_ARGS__) gmock_a2) constness { \
194  GMOCK_MOCKER_(2, constness, Method).SetOwnerAndName(this, #Method); \
195  return GMOCK_MOCKER_(2, constness, \
196  Method).Invoke(::std::forward<GMOCK_ARG_(tn, 1, \
197  __VA_ARGS__)>(gmock_a1), \
198  ::std::forward<GMOCK_ARG_(tn, 2, __VA_ARGS__)>(gmock_a2)); \
199  } \
200  ::testing::MockSpec<__VA_ARGS__> \
201  gmock_##Method(GMOCK_MATCHER_(tn, 1, __VA_ARGS__) gmock_a1, \
202  GMOCK_MATCHER_(tn, 2, __VA_ARGS__) gmock_a2) constness { \
203  GMOCK_MOCKER_(2, constness, Method).RegisterOwner(this); \
204  return GMOCK_MOCKER_(2, constness, Method).With(gmock_a1, gmock_a2); \
205  } \
206  ::testing::MockSpec<__VA_ARGS__> gmock_##Method( \
207  const ::testing::internal::WithoutMatchers&, \
208  constness ::testing::internal::Function<__VA_ARGS__>* ) const { \
209  return ::testing::internal::AdjustConstness_##constness(this)-> \
210  gmock_##Method(::testing::A<GMOCK_ARG_(tn, 1, __VA_ARGS__)>(), \
211  ::testing::A<GMOCK_ARG_(tn, 2, __VA_ARGS__)>()); \
212  } \
213  mutable ::testing::FunctionMocker<__VA_ARGS__> GMOCK_MOCKER_(2, constness, \
214  Method)
215 
216 // INTERNAL IMPLEMENTATION - DON'T USE IN USER CODE!!!
217 #define GMOCK_METHOD3_(tn, constness, ct, Method, ...) \
218  static_assert(3 == \
219  ::testing::internal::Function<__VA_ARGS__>::ArgumentCount, \
220  "MOCK_METHOD<N> must match argument count.");\
221  GMOCK_RESULT_(tn, __VA_ARGS__) ct Method( \
222  GMOCK_ARG_(tn, 1, __VA_ARGS__) gmock_a1, GMOCK_ARG_(tn, 2, \
223  __VA_ARGS__) gmock_a2, GMOCK_ARG_(tn, 3, \
224  __VA_ARGS__) gmock_a3) constness { \
225  GMOCK_MOCKER_(3, constness, Method).SetOwnerAndName(this, #Method); \
226  return GMOCK_MOCKER_(3, constness, \
227  Method).Invoke(::std::forward<GMOCK_ARG_(tn, 1, \
228  __VA_ARGS__)>(gmock_a1), \
229  ::std::forward<GMOCK_ARG_(tn, 2, __VA_ARGS__)>(gmock_a2), \
230  ::std::forward<GMOCK_ARG_(tn, 3, __VA_ARGS__)>(gmock_a3)); \
231  } \
232  ::testing::MockSpec<__VA_ARGS__> \
233  gmock_##Method(GMOCK_MATCHER_(tn, 1, __VA_ARGS__) gmock_a1, \
234  GMOCK_MATCHER_(tn, 2, __VA_ARGS__) gmock_a2, \
235  GMOCK_MATCHER_(tn, 3, __VA_ARGS__) gmock_a3) constness { \
236  GMOCK_MOCKER_(3, constness, Method).RegisterOwner(this); \
237  return GMOCK_MOCKER_(3, constness, Method).With(gmock_a1, gmock_a2, \
238  gmock_a3); \
239  } \
240  ::testing::MockSpec<__VA_ARGS__> gmock_##Method( \
241  const ::testing::internal::WithoutMatchers&, \
242  constness ::testing::internal::Function<__VA_ARGS__>* ) const { \
243  return ::testing::internal::AdjustConstness_##constness(this)-> \
244  gmock_##Method(::testing::A<GMOCK_ARG_(tn, 1, __VA_ARGS__)>(), \
245  ::testing::A<GMOCK_ARG_(tn, 2, __VA_ARGS__)>(), \
246  ::testing::A<GMOCK_ARG_(tn, 3, __VA_ARGS__)>()); \
247  } \
248  mutable ::testing::FunctionMocker<__VA_ARGS__> GMOCK_MOCKER_(3, constness, \
249  Method)
250 
251 // INTERNAL IMPLEMENTATION - DON'T USE IN USER CODE!!!
252 #define GMOCK_METHOD4_(tn, constness, ct, Method, ...) \
253  static_assert(4 == \
254  ::testing::internal::Function<__VA_ARGS__>::ArgumentCount, \
255  "MOCK_METHOD<N> must match argument count.");\
256  GMOCK_RESULT_(tn, __VA_ARGS__) ct Method( \
257  GMOCK_ARG_(tn, 1, __VA_ARGS__) gmock_a1, GMOCK_ARG_(tn, 2, \
258  __VA_ARGS__) gmock_a2, GMOCK_ARG_(tn, 3, __VA_ARGS__) gmock_a3, \
259  GMOCK_ARG_(tn, 4, __VA_ARGS__) gmock_a4) constness { \
260  GMOCK_MOCKER_(4, constness, Method).SetOwnerAndName(this, #Method); \
261  return GMOCK_MOCKER_(4, constness, \
262  Method).Invoke(::std::forward<GMOCK_ARG_(tn, 1, \
263  __VA_ARGS__)>(gmock_a1), \
264  ::std::forward<GMOCK_ARG_(tn, 2, __VA_ARGS__)>(gmock_a2), \
265  ::std::forward<GMOCK_ARG_(tn, 3, __VA_ARGS__)>(gmock_a3), \
266  ::std::forward<GMOCK_ARG_(tn, 4, __VA_ARGS__)>(gmock_a4)); \
267  } \
268  ::testing::MockSpec<__VA_ARGS__> \
269  gmock_##Method(GMOCK_MATCHER_(tn, 1, __VA_ARGS__) gmock_a1, \
270  GMOCK_MATCHER_(tn, 2, __VA_ARGS__) gmock_a2, \
271  GMOCK_MATCHER_(tn, 3, __VA_ARGS__) gmock_a3, \
272  GMOCK_MATCHER_(tn, 4, __VA_ARGS__) gmock_a4) constness { \
273  GMOCK_MOCKER_(4, constness, Method).RegisterOwner(this); \
274  return GMOCK_MOCKER_(4, constness, Method).With(gmock_a1, gmock_a2, \
275  gmock_a3, gmock_a4); \
276  } \
277  ::testing::MockSpec<__VA_ARGS__> gmock_##Method( \
278  const ::testing::internal::WithoutMatchers&, \
279  constness ::testing::internal::Function<__VA_ARGS__>* ) const { \
280  return ::testing::internal::AdjustConstness_##constness(this)-> \
281  gmock_##Method(::testing::A<GMOCK_ARG_(tn, 1, __VA_ARGS__)>(), \
282  ::testing::A<GMOCK_ARG_(tn, 2, __VA_ARGS__)>(), \
283  ::testing::A<GMOCK_ARG_(tn, 3, __VA_ARGS__)>(), \
284  ::testing::A<GMOCK_ARG_(tn, 4, __VA_ARGS__)>()); \
285  } \
286  mutable ::testing::FunctionMocker<__VA_ARGS__> GMOCK_MOCKER_(4, constness, \
287  Method)
288 
289 // INTERNAL IMPLEMENTATION - DON'T USE IN USER CODE!!!
290 #define GMOCK_METHOD5_(tn, constness, ct, Method, ...) \
291  static_assert(5 == \
292  ::testing::internal::Function<__VA_ARGS__>::ArgumentCount, \
293  "MOCK_METHOD<N> must match argument count.");\
294  GMOCK_RESULT_(tn, __VA_ARGS__) ct Method( \
295  GMOCK_ARG_(tn, 1, __VA_ARGS__) gmock_a1, GMOCK_ARG_(tn, 2, \
296  __VA_ARGS__) gmock_a2, GMOCK_ARG_(tn, 3, __VA_ARGS__) gmock_a3, \
297  GMOCK_ARG_(tn, 4, __VA_ARGS__) gmock_a4, GMOCK_ARG_(tn, 5, \
298  __VA_ARGS__) gmock_a5) constness { \
299  GMOCK_MOCKER_(5, constness, Method).SetOwnerAndName(this, #Method); \
300  return GMOCK_MOCKER_(5, constness, \
301  Method).Invoke(::std::forward<GMOCK_ARG_(tn, 1, \
302  __VA_ARGS__)>(gmock_a1), \
303  ::std::forward<GMOCK_ARG_(tn, 2, __VA_ARGS__)>(gmock_a2), \
304  ::std::forward<GMOCK_ARG_(tn, 3, __VA_ARGS__)>(gmock_a3), \
305  ::std::forward<GMOCK_ARG_(tn, 4, __VA_ARGS__)>(gmock_a4), \
306  ::std::forward<GMOCK_ARG_(tn, 5, __VA_ARGS__)>(gmock_a5)); \
307  } \
308  ::testing::MockSpec<__VA_ARGS__> \
309  gmock_##Method(GMOCK_MATCHER_(tn, 1, __VA_ARGS__) gmock_a1, \
310  GMOCK_MATCHER_(tn, 2, __VA_ARGS__) gmock_a2, \
311  GMOCK_MATCHER_(tn, 3, __VA_ARGS__) gmock_a3, \
312  GMOCK_MATCHER_(tn, 4, __VA_ARGS__) gmock_a4, \
313  GMOCK_MATCHER_(tn, 5, __VA_ARGS__) gmock_a5) constness { \
314  GMOCK_MOCKER_(5, constness, Method).RegisterOwner(this); \
315  return GMOCK_MOCKER_(5, constness, Method).With(gmock_a1, gmock_a2, \
316  gmock_a3, gmock_a4, gmock_a5); \
317  } \
318  ::testing::MockSpec<__VA_ARGS__> gmock_##Method( \
319  const ::testing::internal::WithoutMatchers&, \
320  constness ::testing::internal::Function<__VA_ARGS__>* ) const { \
321  return ::testing::internal::AdjustConstness_##constness(this)-> \
322  gmock_##Method(::testing::A<GMOCK_ARG_(tn, 1, __VA_ARGS__)>(), \
323  ::testing::A<GMOCK_ARG_(tn, 2, __VA_ARGS__)>(), \
324  ::testing::A<GMOCK_ARG_(tn, 3, __VA_ARGS__)>(), \
325  ::testing::A<GMOCK_ARG_(tn, 4, __VA_ARGS__)>(), \
326  ::testing::A<GMOCK_ARG_(tn, 5, __VA_ARGS__)>()); \
327  } \
328  mutable ::testing::FunctionMocker<__VA_ARGS__> GMOCK_MOCKER_(5, constness, \
329  Method)
330 
331 // INTERNAL IMPLEMENTATION - DON'T USE IN USER CODE!!!
332 #define GMOCK_METHOD6_(tn, constness, ct, Method, ...) \
333  static_assert(6 == \
334  ::testing::internal::Function<__VA_ARGS__>::ArgumentCount, \
335  "MOCK_METHOD<N> must match argument count.");\
336  GMOCK_RESULT_(tn, __VA_ARGS__) ct Method( \
337  GMOCK_ARG_(tn, 1, __VA_ARGS__) gmock_a1, GMOCK_ARG_(tn, 2, \
338  __VA_ARGS__) gmock_a2, GMOCK_ARG_(tn, 3, __VA_ARGS__) gmock_a3, \
339  GMOCK_ARG_(tn, 4, __VA_ARGS__) gmock_a4, GMOCK_ARG_(tn, 5, \
340  __VA_ARGS__) gmock_a5, GMOCK_ARG_(tn, 6, \
341  __VA_ARGS__) gmock_a6) constness { \
342  GMOCK_MOCKER_(6, constness, Method).SetOwnerAndName(this, #Method); \
343  return GMOCK_MOCKER_(6, constness, \
344  Method).Invoke(::std::forward<GMOCK_ARG_(tn, 1, \
345  __VA_ARGS__)>(gmock_a1), \
346  ::std::forward<GMOCK_ARG_(tn, 2, __VA_ARGS__)>(gmock_a2), \
347  ::std::forward<GMOCK_ARG_(tn, 3, __VA_ARGS__)>(gmock_a3), \
348  ::std::forward<GMOCK_ARG_(tn, 4, __VA_ARGS__)>(gmock_a4), \
349  ::std::forward<GMOCK_ARG_(tn, 5, __VA_ARGS__)>(gmock_a5), \
350  ::std::forward<GMOCK_ARG_(tn, 6, __VA_ARGS__)>(gmock_a6)); \
351  } \
352  ::testing::MockSpec<__VA_ARGS__> \
353  gmock_##Method(GMOCK_MATCHER_(tn, 1, __VA_ARGS__) gmock_a1, \
354  GMOCK_MATCHER_(tn, 2, __VA_ARGS__) gmock_a2, \
355  GMOCK_MATCHER_(tn, 3, __VA_ARGS__) gmock_a3, \
356  GMOCK_MATCHER_(tn, 4, __VA_ARGS__) gmock_a4, \
357  GMOCK_MATCHER_(tn, 5, __VA_ARGS__) gmock_a5, \
358  GMOCK_MATCHER_(tn, 6, __VA_ARGS__) gmock_a6) constness { \
359  GMOCK_MOCKER_(6, constness, Method).RegisterOwner(this); \
360  return GMOCK_MOCKER_(6, constness, Method).With(gmock_a1, gmock_a2, \
361  gmock_a3, gmock_a4, gmock_a5, gmock_a6); \
362  } \
363  ::testing::MockSpec<__VA_ARGS__> gmock_##Method( \
364  const ::testing::internal::WithoutMatchers&, \
365  constness ::testing::internal::Function<__VA_ARGS__>* ) const { \
366  return ::testing::internal::AdjustConstness_##constness(this)-> \
367  gmock_##Method(::testing::A<GMOCK_ARG_(tn, 1, __VA_ARGS__)>(), \
368  ::testing::A<GMOCK_ARG_(tn, 2, __VA_ARGS__)>(), \
369  ::testing::A<GMOCK_ARG_(tn, 3, __VA_ARGS__)>(), \
370  ::testing::A<GMOCK_ARG_(tn, 4, __VA_ARGS__)>(), \
371  ::testing::A<GMOCK_ARG_(tn, 5, __VA_ARGS__)>(), \
372  ::testing::A<GMOCK_ARG_(tn, 6, __VA_ARGS__)>()); \
373  } \
374  mutable ::testing::FunctionMocker<__VA_ARGS__> GMOCK_MOCKER_(6, constness, \
375  Method)
376 
377 // INTERNAL IMPLEMENTATION - DON'T USE IN USER CODE!!!
378 #define GMOCK_METHOD7_(tn, constness, ct, Method, ...) \
379  static_assert(7 == \
380  ::testing::internal::Function<__VA_ARGS__>::ArgumentCount, \
381  "MOCK_METHOD<N> must match argument count.");\
382  GMOCK_RESULT_(tn, __VA_ARGS__) ct Method( \
383  GMOCK_ARG_(tn, 1, __VA_ARGS__) gmock_a1, GMOCK_ARG_(tn, 2, \
384  __VA_ARGS__) gmock_a2, GMOCK_ARG_(tn, 3, __VA_ARGS__) gmock_a3, \
385  GMOCK_ARG_(tn, 4, __VA_ARGS__) gmock_a4, GMOCK_ARG_(tn, 5, \
386  __VA_ARGS__) gmock_a5, GMOCK_ARG_(tn, 6, __VA_ARGS__) gmock_a6, \
387  GMOCK_ARG_(tn, 7, __VA_ARGS__) gmock_a7) constness { \
388  GMOCK_MOCKER_(7, constness, Method).SetOwnerAndName(this, #Method); \
389  return GMOCK_MOCKER_(7, constness, \
390  Method).Invoke(::std::forward<GMOCK_ARG_(tn, 1, \
391  __VA_ARGS__)>(gmock_a1), \
392  ::std::forward<GMOCK_ARG_(tn, 2, __VA_ARGS__)>(gmock_a2), \
393  ::std::forward<GMOCK_ARG_(tn, 3, __VA_ARGS__)>(gmock_a3), \
394  ::std::forward<GMOCK_ARG_(tn, 4, __VA_ARGS__)>(gmock_a4), \
395  ::std::forward<GMOCK_ARG_(tn, 5, __VA_ARGS__)>(gmock_a5), \
396  ::std::forward<GMOCK_ARG_(tn, 6, __VA_ARGS__)>(gmock_a6), \
397  ::std::forward<GMOCK_ARG_(tn, 7, __VA_ARGS__)>(gmock_a7)); \
398  } \
399  ::testing::MockSpec<__VA_ARGS__> \
400  gmock_##Method(GMOCK_MATCHER_(tn, 1, __VA_ARGS__) gmock_a1, \
401  GMOCK_MATCHER_(tn, 2, __VA_ARGS__) gmock_a2, \
402  GMOCK_MATCHER_(tn, 3, __VA_ARGS__) gmock_a3, \
403  GMOCK_MATCHER_(tn, 4, __VA_ARGS__) gmock_a4, \
404  GMOCK_MATCHER_(tn, 5, __VA_ARGS__) gmock_a5, \
405  GMOCK_MATCHER_(tn, 6, __VA_ARGS__) gmock_a6, \
406  GMOCK_MATCHER_(tn, 7, __VA_ARGS__) gmock_a7) constness { \
407  GMOCK_MOCKER_(7, constness, Method).RegisterOwner(this); \
408  return GMOCK_MOCKER_(7, constness, Method).With(gmock_a1, gmock_a2, \
409  gmock_a3, gmock_a4, gmock_a5, gmock_a6, gmock_a7); \
410  } \
411  ::testing::MockSpec<__VA_ARGS__> gmock_##Method( \
412  const ::testing::internal::WithoutMatchers&, \
413  constness ::testing::internal::Function<__VA_ARGS__>* ) const { \
414  return ::testing::internal::AdjustConstness_##constness(this)-> \
415  gmock_##Method(::testing::A<GMOCK_ARG_(tn, 1, __VA_ARGS__)>(), \
416  ::testing::A<GMOCK_ARG_(tn, 2, __VA_ARGS__)>(), \
417  ::testing::A<GMOCK_ARG_(tn, 3, __VA_ARGS__)>(), \
418  ::testing::A<GMOCK_ARG_(tn, 4, __VA_ARGS__)>(), \
419  ::testing::A<GMOCK_ARG_(tn, 5, __VA_ARGS__)>(), \
420  ::testing::A<GMOCK_ARG_(tn, 6, __VA_ARGS__)>(), \
421  ::testing::A<GMOCK_ARG_(tn, 7, __VA_ARGS__)>()); \
422  } \
423  mutable ::testing::FunctionMocker<__VA_ARGS__> GMOCK_MOCKER_(7, constness, \
424  Method)
425 
426 // INTERNAL IMPLEMENTATION - DON'T USE IN USER CODE!!!
427 #define GMOCK_METHOD8_(tn, constness, ct, Method, ...) \
428  static_assert(8 == \
429  ::testing::internal::Function<__VA_ARGS__>::ArgumentCount, \
430  "MOCK_METHOD<N> must match argument count.");\
431  GMOCK_RESULT_(tn, __VA_ARGS__) ct Method( \
432  GMOCK_ARG_(tn, 1, __VA_ARGS__) gmock_a1, GMOCK_ARG_(tn, 2, \
433  __VA_ARGS__) gmock_a2, GMOCK_ARG_(tn, 3, __VA_ARGS__) gmock_a3, \
434  GMOCK_ARG_(tn, 4, __VA_ARGS__) gmock_a4, GMOCK_ARG_(tn, 5, \
435  __VA_ARGS__) gmock_a5, GMOCK_ARG_(tn, 6, __VA_ARGS__) gmock_a6, \
436  GMOCK_ARG_(tn, 7, __VA_ARGS__) gmock_a7, GMOCK_ARG_(tn, 8, \
437  __VA_ARGS__) gmock_a8) constness { \
438  GMOCK_MOCKER_(8, constness, Method).SetOwnerAndName(this, #Method); \
439  return GMOCK_MOCKER_(8, constness, \
440  Method).Invoke(::std::forward<GMOCK_ARG_(tn, 1, \
441  __VA_ARGS__)>(gmock_a1), \
442  ::std::forward<GMOCK_ARG_(tn, 2, __VA_ARGS__)>(gmock_a2), \
443  ::std::forward<GMOCK_ARG_(tn, 3, __VA_ARGS__)>(gmock_a3), \
444  ::std::forward<GMOCK_ARG_(tn, 4, __VA_ARGS__)>(gmock_a4), \
445  ::std::forward<GMOCK_ARG_(tn, 5, __VA_ARGS__)>(gmock_a5), \
446  ::std::forward<GMOCK_ARG_(tn, 6, __VA_ARGS__)>(gmock_a6), \
447  ::std::forward<GMOCK_ARG_(tn, 7, __VA_ARGS__)>(gmock_a7), \
448  ::std::forward<GMOCK_ARG_(tn, 8, __VA_ARGS__)>(gmock_a8)); \
449  } \
450  ::testing::MockSpec<__VA_ARGS__> \
451  gmock_##Method(GMOCK_MATCHER_(tn, 1, __VA_ARGS__) gmock_a1, \
452  GMOCK_MATCHER_(tn, 2, __VA_ARGS__) gmock_a2, \
453  GMOCK_MATCHER_(tn, 3, __VA_ARGS__) gmock_a3, \
454  GMOCK_MATCHER_(tn, 4, __VA_ARGS__) gmock_a4, \
455  GMOCK_MATCHER_(tn, 5, __VA_ARGS__) gmock_a5, \
456  GMOCK_MATCHER_(tn, 6, __VA_ARGS__) gmock_a6, \
457  GMOCK_MATCHER_(tn, 7, __VA_ARGS__) gmock_a7, \
458  GMOCK_MATCHER_(tn, 8, __VA_ARGS__) gmock_a8) constness { \
459  GMOCK_MOCKER_(8, constness, Method).RegisterOwner(this); \
460  return GMOCK_MOCKER_(8, constness, Method).With(gmock_a1, gmock_a2, \
461  gmock_a3, gmock_a4, gmock_a5, gmock_a6, gmock_a7, gmock_a8); \
462  } \
463  ::testing::MockSpec<__VA_ARGS__> gmock_##Method( \
464  const ::testing::internal::WithoutMatchers&, \
465  constness ::testing::internal::Function<__VA_ARGS__>* ) const { \
466  return ::testing::internal::AdjustConstness_##constness(this)-> \
467  gmock_##Method(::testing::A<GMOCK_ARG_(tn, 1, __VA_ARGS__)>(), \
468  ::testing::A<GMOCK_ARG_(tn, 2, __VA_ARGS__)>(), \
469  ::testing::A<GMOCK_ARG_(tn, 3, __VA_ARGS__)>(), \
470  ::testing::A<GMOCK_ARG_(tn, 4, __VA_ARGS__)>(), \
471  ::testing::A<GMOCK_ARG_(tn, 5, __VA_ARGS__)>(), \
472  ::testing::A<GMOCK_ARG_(tn, 6, __VA_ARGS__)>(), \
473  ::testing::A<GMOCK_ARG_(tn, 7, __VA_ARGS__)>(), \
474  ::testing::A<GMOCK_ARG_(tn, 8, __VA_ARGS__)>()); \
475  } \
476  mutable ::testing::FunctionMocker<__VA_ARGS__> GMOCK_MOCKER_(8, constness, \
477  Method)
478 
479 // INTERNAL IMPLEMENTATION - DON'T USE IN USER CODE!!!
480 #define GMOCK_METHOD9_(tn, constness, ct, Method, ...) \
481  static_assert(9 == \
482  ::testing::internal::Function<__VA_ARGS__>::ArgumentCount, \
483  "MOCK_METHOD<N> must match argument count.");\
484  GMOCK_RESULT_(tn, __VA_ARGS__) ct Method( \
485  GMOCK_ARG_(tn, 1, __VA_ARGS__) gmock_a1, GMOCK_ARG_(tn, 2, \
486  __VA_ARGS__) gmock_a2, GMOCK_ARG_(tn, 3, __VA_ARGS__) gmock_a3, \
487  GMOCK_ARG_(tn, 4, __VA_ARGS__) gmock_a4, GMOCK_ARG_(tn, 5, \
488  __VA_ARGS__) gmock_a5, GMOCK_ARG_(tn, 6, __VA_ARGS__) gmock_a6, \
489  GMOCK_ARG_(tn, 7, __VA_ARGS__) gmock_a7, GMOCK_ARG_(tn, 8, \
490  __VA_ARGS__) gmock_a8, GMOCK_ARG_(tn, 9, \
491  __VA_ARGS__) gmock_a9) constness { \
492  GMOCK_MOCKER_(9, constness, Method).SetOwnerAndName(this, #Method); \
493  return GMOCK_MOCKER_(9, constness, \
494  Method).Invoke(::std::forward<GMOCK_ARG_(tn, 1, \
495  __VA_ARGS__)>(gmock_a1), \
496  ::std::forward<GMOCK_ARG_(tn, 2, __VA_ARGS__)>(gmock_a2), \
497  ::std::forward<GMOCK_ARG_(tn, 3, __VA_ARGS__)>(gmock_a3), \
498  ::std::forward<GMOCK_ARG_(tn, 4, __VA_ARGS__)>(gmock_a4), \
499  ::std::forward<GMOCK_ARG_(tn, 5, __VA_ARGS__)>(gmock_a5), \
500  ::std::forward<GMOCK_ARG_(tn, 6, __VA_ARGS__)>(gmock_a6), \
501  ::std::forward<GMOCK_ARG_(tn, 7, __VA_ARGS__)>(gmock_a7), \
502  ::std::forward<GMOCK_ARG_(tn, 8, __VA_ARGS__)>(gmock_a8), \
503  ::std::forward<GMOCK_ARG_(tn, 9, __VA_ARGS__)>(gmock_a9)); \
504  } \
505  ::testing::MockSpec<__VA_ARGS__> \
506  gmock_##Method(GMOCK_MATCHER_(tn, 1, __VA_ARGS__) gmock_a1, \
507  GMOCK_MATCHER_(tn, 2, __VA_ARGS__) gmock_a2, \
508  GMOCK_MATCHER_(tn, 3, __VA_ARGS__) gmock_a3, \
509  GMOCK_MATCHER_(tn, 4, __VA_ARGS__) gmock_a4, \
510  GMOCK_MATCHER_(tn, 5, __VA_ARGS__) gmock_a5, \
511  GMOCK_MATCHER_(tn, 6, __VA_ARGS__) gmock_a6, \
512  GMOCK_MATCHER_(tn, 7, __VA_ARGS__) gmock_a7, \
513  GMOCK_MATCHER_(tn, 8, __VA_ARGS__) gmock_a8, \
514  GMOCK_MATCHER_(tn, 9, __VA_ARGS__) gmock_a9) constness { \
515  GMOCK_MOCKER_(9, constness, Method).RegisterOwner(this); \
516  return GMOCK_MOCKER_(9, constness, Method).With(gmock_a1, gmock_a2, \
517  gmock_a3, gmock_a4, gmock_a5, gmock_a6, gmock_a7, gmock_a8, \
518  gmock_a9); \
519  } \
520  ::testing::MockSpec<__VA_ARGS__> gmock_##Method( \
521  const ::testing::internal::WithoutMatchers&, \
522  constness ::testing::internal::Function<__VA_ARGS__>* ) const { \
523  return ::testing::internal::AdjustConstness_##constness(this)-> \
524  gmock_##Method(::testing::A<GMOCK_ARG_(tn, 1, __VA_ARGS__)>(), \
525  ::testing::A<GMOCK_ARG_(tn, 2, __VA_ARGS__)>(), \
526  ::testing::A<GMOCK_ARG_(tn, 3, __VA_ARGS__)>(), \
527  ::testing::A<GMOCK_ARG_(tn, 4, __VA_ARGS__)>(), \
528  ::testing::A<GMOCK_ARG_(tn, 5, __VA_ARGS__)>(), \
529  ::testing::A<GMOCK_ARG_(tn, 6, __VA_ARGS__)>(), \
530  ::testing::A<GMOCK_ARG_(tn, 7, __VA_ARGS__)>(), \
531  ::testing::A<GMOCK_ARG_(tn, 8, __VA_ARGS__)>(), \
532  ::testing::A<GMOCK_ARG_(tn, 9, __VA_ARGS__)>()); \
533  } \
534  mutable ::testing::FunctionMocker<__VA_ARGS__> GMOCK_MOCKER_(9, constness, \
535  Method)
536 
537 // INTERNAL IMPLEMENTATION - DON'T USE IN USER CODE!!!
538 #define GMOCK_METHOD10_(tn, constness, ct, Method, ...) \
539  static_assert(10 == \
540  ::testing::internal::Function<__VA_ARGS__>::ArgumentCount, \
541  "MOCK_METHOD<N> must match argument count.");\
542  GMOCK_RESULT_(tn, __VA_ARGS__) ct Method( \
543  GMOCK_ARG_(tn, 1, __VA_ARGS__) gmock_a1, GMOCK_ARG_(tn, 2, \
544  __VA_ARGS__) gmock_a2, GMOCK_ARG_(tn, 3, __VA_ARGS__) gmock_a3, \
545  GMOCK_ARG_(tn, 4, __VA_ARGS__) gmock_a4, GMOCK_ARG_(tn, 5, \
546  __VA_ARGS__) gmock_a5, GMOCK_ARG_(tn, 6, __VA_ARGS__) gmock_a6, \
547  GMOCK_ARG_(tn, 7, __VA_ARGS__) gmock_a7, GMOCK_ARG_(tn, 8, \
548  __VA_ARGS__) gmock_a8, GMOCK_ARG_(tn, 9, __VA_ARGS__) gmock_a9, \
549  GMOCK_ARG_(tn, 10, __VA_ARGS__) gmock_a10) constness { \
550  GMOCK_MOCKER_(10, constness, Method).SetOwnerAndName(this, #Method); \
551  return GMOCK_MOCKER_(10, constness, \
552  Method).Invoke(::std::forward<GMOCK_ARG_(tn, 1, \
553  __VA_ARGS__)>(gmock_a1), \
554  ::std::forward<GMOCK_ARG_(tn, 2, __VA_ARGS__)>(gmock_a2), \
555  ::std::forward<GMOCK_ARG_(tn, 3, __VA_ARGS__)>(gmock_a3), \
556  ::std::forward<GMOCK_ARG_(tn, 4, __VA_ARGS__)>(gmock_a4), \
557  ::std::forward<GMOCK_ARG_(tn, 5, __VA_ARGS__)>(gmock_a5), \
558  ::std::forward<GMOCK_ARG_(tn, 6, __VA_ARGS__)>(gmock_a6), \
559  ::std::forward<GMOCK_ARG_(tn, 7, __VA_ARGS__)>(gmock_a7), \
560  ::std::forward<GMOCK_ARG_(tn, 8, __VA_ARGS__)>(gmock_a8), \
561  ::std::forward<GMOCK_ARG_(tn, 9, __VA_ARGS__)>(gmock_a9), \
562  ::std::forward<GMOCK_ARG_(tn, 10, __VA_ARGS__)>(gmock_a10)); \
563  } \
564  ::testing::MockSpec<__VA_ARGS__> \
565  gmock_##Method(GMOCK_MATCHER_(tn, 1, __VA_ARGS__) gmock_a1, \
566  GMOCK_MATCHER_(tn, 2, __VA_ARGS__) gmock_a2, \
567  GMOCK_MATCHER_(tn, 3, __VA_ARGS__) gmock_a3, \
568  GMOCK_MATCHER_(tn, 4, __VA_ARGS__) gmock_a4, \
569  GMOCK_MATCHER_(tn, 5, __VA_ARGS__) gmock_a5, \
570  GMOCK_MATCHER_(tn, 6, __VA_ARGS__) gmock_a6, \
571  GMOCK_MATCHER_(tn, 7, __VA_ARGS__) gmock_a7, \
572  GMOCK_MATCHER_(tn, 8, __VA_ARGS__) gmock_a8, \
573  GMOCK_MATCHER_(tn, 9, __VA_ARGS__) gmock_a9, \
574  GMOCK_MATCHER_(tn, 10, \
575  __VA_ARGS__) gmock_a10) constness { \
576  GMOCK_MOCKER_(10, constness, Method).RegisterOwner(this); \
577  return GMOCK_MOCKER_(10, constness, Method).With(gmock_a1, gmock_a2, \
578  gmock_a3, gmock_a4, gmock_a5, gmock_a6, gmock_a7, gmock_a8, gmock_a9, \
579  gmock_a10); \
580  } \
581  ::testing::MockSpec<__VA_ARGS__> gmock_##Method( \
582  const ::testing::internal::WithoutMatchers&, \
583  constness ::testing::internal::Function<__VA_ARGS__>* ) const { \
584  return ::testing::internal::AdjustConstness_##constness(this)-> \
585  gmock_##Method(::testing::A<GMOCK_ARG_(tn, 1, __VA_ARGS__)>(), \
586  ::testing::A<GMOCK_ARG_(tn, 2, __VA_ARGS__)>(), \
587  ::testing::A<GMOCK_ARG_(tn, 3, __VA_ARGS__)>(), \
588  ::testing::A<GMOCK_ARG_(tn, 4, __VA_ARGS__)>(), \
589  ::testing::A<GMOCK_ARG_(tn, 5, __VA_ARGS__)>(), \
590  ::testing::A<GMOCK_ARG_(tn, 6, __VA_ARGS__)>(), \
591  ::testing::A<GMOCK_ARG_(tn, 7, __VA_ARGS__)>(), \
592  ::testing::A<GMOCK_ARG_(tn, 8, __VA_ARGS__)>(), \
593  ::testing::A<GMOCK_ARG_(tn, 9, __VA_ARGS__)>(), \
594  ::testing::A<GMOCK_ARG_(tn, 10, __VA_ARGS__)>()); \
595  } \
596  mutable ::testing::FunctionMocker<__VA_ARGS__> GMOCK_MOCKER_(10, constness, \
597  Method)
598 
599 #define MOCK_METHOD0(m, ...) GMOCK_METHOD0_(, , , m, __VA_ARGS__)
600 #define MOCK_METHOD1(m, ...) GMOCK_METHOD1_(, , , m, __VA_ARGS__)
601 #define MOCK_METHOD2(m, ...) GMOCK_METHOD2_(, , , m, __VA_ARGS__)
602 #define MOCK_METHOD3(m, ...) GMOCK_METHOD3_(, , , m, __VA_ARGS__)
603 #define MOCK_METHOD4(m, ...) GMOCK_METHOD4_(, , , m, __VA_ARGS__)
604 #define MOCK_METHOD5(m, ...) GMOCK_METHOD5_(, , , m, __VA_ARGS__)
605 #define MOCK_METHOD6(m, ...) GMOCK_METHOD6_(, , , m, __VA_ARGS__)
606 #define MOCK_METHOD7(m, ...) GMOCK_METHOD7_(, , , m, __VA_ARGS__)
607 #define MOCK_METHOD8(m, ...) GMOCK_METHOD8_(, , , m, __VA_ARGS__)
608 #define MOCK_METHOD9(m, ...) GMOCK_METHOD9_(, , , m, __VA_ARGS__)
609 #define MOCK_METHOD10(m, ...) GMOCK_METHOD10_(, , , m, __VA_ARGS__)
610 
611 #define MOCK_CONST_METHOD0(m, ...) GMOCK_METHOD0_(, const, , m, __VA_ARGS__)
612 #define MOCK_CONST_METHOD1(m, ...) GMOCK_METHOD1_(, const, , m, __VA_ARGS__)
613 #define MOCK_CONST_METHOD2(m, ...) GMOCK_METHOD2_(, const, , m, __VA_ARGS__)
614 #define MOCK_CONST_METHOD3(m, ...) GMOCK_METHOD3_(, const, , m, __VA_ARGS__)
615 #define MOCK_CONST_METHOD4(m, ...) GMOCK_METHOD4_(, const, , m, __VA_ARGS__)
616 #define MOCK_CONST_METHOD5(m, ...) GMOCK_METHOD5_(, const, , m, __VA_ARGS__)
617 #define MOCK_CONST_METHOD6(m, ...) GMOCK_METHOD6_(, const, , m, __VA_ARGS__)
618 #define MOCK_CONST_METHOD7(m, ...) GMOCK_METHOD7_(, const, , m, __VA_ARGS__)
619 #define MOCK_CONST_METHOD8(m, ...) GMOCK_METHOD8_(, const, , m, __VA_ARGS__)
620 #define MOCK_CONST_METHOD9(m, ...) GMOCK_METHOD9_(, const, , m, __VA_ARGS__)
621 #define MOCK_CONST_METHOD10(m, ...) GMOCK_METHOD10_(, const, , m, __VA_ARGS__)
622 
623 #define MOCK_METHOD0_T(m, ...) GMOCK_METHOD0_(typename, , , m, __VA_ARGS__)
624 #define MOCK_METHOD1_T(m, ...) GMOCK_METHOD1_(typename, , , m, __VA_ARGS__)
625 #define MOCK_METHOD2_T(m, ...) GMOCK_METHOD2_(typename, , , m, __VA_ARGS__)
626 #define MOCK_METHOD3_T(m, ...) GMOCK_METHOD3_(typename, , , m, __VA_ARGS__)
627 #define MOCK_METHOD4_T(m, ...) GMOCK_METHOD4_(typename, , , m, __VA_ARGS__)
628 #define MOCK_METHOD5_T(m, ...) GMOCK_METHOD5_(typename, , , m, __VA_ARGS__)
629 #define MOCK_METHOD6_T(m, ...) GMOCK_METHOD6_(typename, , , m, __VA_ARGS__)
630 #define MOCK_METHOD7_T(m, ...) GMOCK_METHOD7_(typename, , , m, __VA_ARGS__)
631 #define MOCK_METHOD8_T(m, ...) GMOCK_METHOD8_(typename, , , m, __VA_ARGS__)
632 #define MOCK_METHOD9_T(m, ...) GMOCK_METHOD9_(typename, , , m, __VA_ARGS__)
633 #define MOCK_METHOD10_T(m, ...) GMOCK_METHOD10_(typename, , , m, __VA_ARGS__)
634 
635 #define MOCK_CONST_METHOD0_T(m, ...) \
636  GMOCK_METHOD0_(typename, const, , m, __VA_ARGS__)
637 #define MOCK_CONST_METHOD1_T(m, ...) \
638  GMOCK_METHOD1_(typename, const, , m, __VA_ARGS__)
639 #define MOCK_CONST_METHOD2_T(m, ...) \
640  GMOCK_METHOD2_(typename, const, , m, __VA_ARGS__)
641 #define MOCK_CONST_METHOD3_T(m, ...) \
642  GMOCK_METHOD3_(typename, const, , m, __VA_ARGS__)
643 #define MOCK_CONST_METHOD4_T(m, ...) \
644  GMOCK_METHOD4_(typename, const, , m, __VA_ARGS__)
645 #define MOCK_CONST_METHOD5_T(m, ...) \
646  GMOCK_METHOD5_(typename, const, , m, __VA_ARGS__)
647 #define MOCK_CONST_METHOD6_T(m, ...) \
648  GMOCK_METHOD6_(typename, const, , m, __VA_ARGS__)
649 #define MOCK_CONST_METHOD7_T(m, ...) \
650  GMOCK_METHOD7_(typename, const, , m, __VA_ARGS__)
651 #define MOCK_CONST_METHOD8_T(m, ...) \
652  GMOCK_METHOD8_(typename, const, , m, __VA_ARGS__)
653 #define MOCK_CONST_METHOD9_T(m, ...) \
654  GMOCK_METHOD9_(typename, const, , m, __VA_ARGS__)
655 #define MOCK_CONST_METHOD10_T(m, ...) \
656  GMOCK_METHOD10_(typename, const, , m, __VA_ARGS__)
657 
658 #define MOCK_METHOD0_WITH_CALLTYPE(ct, m, ...) \
659  GMOCK_METHOD0_(, , ct, m, __VA_ARGS__)
660 #define MOCK_METHOD1_WITH_CALLTYPE(ct, m, ...) \
661  GMOCK_METHOD1_(, , ct, m, __VA_ARGS__)
662 #define MOCK_METHOD2_WITH_CALLTYPE(ct, m, ...) \
663  GMOCK_METHOD2_(, , ct, m, __VA_ARGS__)
664 #define MOCK_METHOD3_WITH_CALLTYPE(ct, m, ...) \
665  GMOCK_METHOD3_(, , ct, m, __VA_ARGS__)
666 #define MOCK_METHOD4_WITH_CALLTYPE(ct, m, ...) \
667  GMOCK_METHOD4_(, , ct, m, __VA_ARGS__)
668 #define MOCK_METHOD5_WITH_CALLTYPE(ct, m, ...) \
669  GMOCK_METHOD5_(, , ct, m, __VA_ARGS__)
670 #define MOCK_METHOD6_WITH_CALLTYPE(ct, m, ...) \
671  GMOCK_METHOD6_(, , ct, m, __VA_ARGS__)
672 #define MOCK_METHOD7_WITH_CALLTYPE(ct, m, ...) \
673  GMOCK_METHOD7_(, , ct, m, __VA_ARGS__)
674 #define MOCK_METHOD8_WITH_CALLTYPE(ct, m, ...) \
675  GMOCK_METHOD8_(, , ct, m, __VA_ARGS__)
676 #define MOCK_METHOD9_WITH_CALLTYPE(ct, m, ...) \
677  GMOCK_METHOD9_(, , ct, m, __VA_ARGS__)
678 #define MOCK_METHOD10_WITH_CALLTYPE(ct, m, ...) \
679  GMOCK_METHOD10_(, , ct, m, __VA_ARGS__)
680 
681 #define MOCK_CONST_METHOD0_WITH_CALLTYPE(ct, m, ...) \
682  GMOCK_METHOD0_(, const, ct, m, __VA_ARGS__)
683 #define MOCK_CONST_METHOD1_WITH_CALLTYPE(ct, m, ...) \
684  GMOCK_METHOD1_(, const, ct, m, __VA_ARGS__)
685 #define MOCK_CONST_METHOD2_WITH_CALLTYPE(ct, m, ...) \
686  GMOCK_METHOD2_(, const, ct, m, __VA_ARGS__)
687 #define MOCK_CONST_METHOD3_WITH_CALLTYPE(ct, m, ...) \
688  GMOCK_METHOD3_(, const, ct, m, __VA_ARGS__)
689 #define MOCK_CONST_METHOD4_WITH_CALLTYPE(ct, m, ...) \
690  GMOCK_METHOD4_(, const, ct, m, __VA_ARGS__)
691 #define MOCK_CONST_METHOD5_WITH_CALLTYPE(ct, m, ...) \
692  GMOCK_METHOD5_(, const, ct, m, __VA_ARGS__)
693 #define MOCK_CONST_METHOD6_WITH_CALLTYPE(ct, m, ...) \
694  GMOCK_METHOD6_(, const, ct, m, __VA_ARGS__)
695 #define MOCK_CONST_METHOD7_WITH_CALLTYPE(ct, m, ...) \
696  GMOCK_METHOD7_(, const, ct, m, __VA_ARGS__)
697 #define MOCK_CONST_METHOD8_WITH_CALLTYPE(ct, m, ...) \
698  GMOCK_METHOD8_(, const, ct, m, __VA_ARGS__)
699 #define MOCK_CONST_METHOD9_WITH_CALLTYPE(ct, m, ...) \
700  GMOCK_METHOD9_(, const, ct, m, __VA_ARGS__)
701 #define MOCK_CONST_METHOD10_WITH_CALLTYPE(ct, m, ...) \
702  GMOCK_METHOD10_(, const, ct, m, __VA_ARGS__)
703 
704 #define MOCK_METHOD0_T_WITH_CALLTYPE(ct, m, ...) \
705  GMOCK_METHOD0_(typename, , ct, m, __VA_ARGS__)
706 #define MOCK_METHOD1_T_WITH_CALLTYPE(ct, m, ...) \
707  GMOCK_METHOD1_(typename, , ct, m, __VA_ARGS__)
708 #define MOCK_METHOD2_T_WITH_CALLTYPE(ct, m, ...) \
709  GMOCK_METHOD2_(typename, , ct, m, __VA_ARGS__)
710 #define MOCK_METHOD3_T_WITH_CALLTYPE(ct, m, ...) \
711  GMOCK_METHOD3_(typename, , ct, m, __VA_ARGS__)
712 #define MOCK_METHOD4_T_WITH_CALLTYPE(ct, m, ...) \
713  GMOCK_METHOD4_(typename, , ct, m, __VA_ARGS__)
714 #define MOCK_METHOD5_T_WITH_CALLTYPE(ct, m, ...) \
715  GMOCK_METHOD5_(typename, , ct, m, __VA_ARGS__)
716 #define MOCK_METHOD6_T_WITH_CALLTYPE(ct, m, ...) \
717  GMOCK_METHOD6_(typename, , ct, m, __VA_ARGS__)
718 #define MOCK_METHOD7_T_WITH_CALLTYPE(ct, m, ...) \
719  GMOCK_METHOD7_(typename, , ct, m, __VA_ARGS__)
720 #define MOCK_METHOD8_T_WITH_CALLTYPE(ct, m, ...) \
721  GMOCK_METHOD8_(typename, , ct, m, __VA_ARGS__)
722 #define MOCK_METHOD9_T_WITH_CALLTYPE(ct, m, ...) \
723  GMOCK_METHOD9_(typename, , ct, m, __VA_ARGS__)
724 #define MOCK_METHOD10_T_WITH_CALLTYPE(ct, m, ...) \
725  GMOCK_METHOD10_(typename, , ct, m, __VA_ARGS__)
726 
727 #define MOCK_CONST_METHOD0_T_WITH_CALLTYPE(ct, m, ...) \
728  GMOCK_METHOD0_(typename, const, ct, m, __VA_ARGS__)
729 #define MOCK_CONST_METHOD1_T_WITH_CALLTYPE(ct, m, ...) \
730  GMOCK_METHOD1_(typename, const, ct, m, __VA_ARGS__)
731 #define MOCK_CONST_METHOD2_T_WITH_CALLTYPE(ct, m, ...) \
732  GMOCK_METHOD2_(typename, const, ct, m, __VA_ARGS__)
733 #define MOCK_CONST_METHOD3_T_WITH_CALLTYPE(ct, m, ...) \
734  GMOCK_METHOD3_(typename, const, ct, m, __VA_ARGS__)
735 #define MOCK_CONST_METHOD4_T_WITH_CALLTYPE(ct, m, ...) \
736  GMOCK_METHOD4_(typename, const, ct, m, __VA_ARGS__)
737 #define MOCK_CONST_METHOD5_T_WITH_CALLTYPE(ct, m, ...) \
738  GMOCK_METHOD5_(typename, const, ct, m, __VA_ARGS__)
739 #define MOCK_CONST_METHOD6_T_WITH_CALLTYPE(ct, m, ...) \
740  GMOCK_METHOD6_(typename, const, ct, m, __VA_ARGS__)
741 #define MOCK_CONST_METHOD7_T_WITH_CALLTYPE(ct, m, ...) \
742  GMOCK_METHOD7_(typename, const, ct, m, __VA_ARGS__)
743 #define MOCK_CONST_METHOD8_T_WITH_CALLTYPE(ct, m, ...) \
744  GMOCK_METHOD8_(typename, const, ct, m, __VA_ARGS__)
745 #define MOCK_CONST_METHOD9_T_WITH_CALLTYPE(ct, m, ...) \
746  GMOCK_METHOD9_(typename, const, ct, m, __VA_ARGS__)
747 #define MOCK_CONST_METHOD10_T_WITH_CALLTYPE(ct, m, ...) \
748  GMOCK_METHOD10_(typename, const, ct, m, __VA_ARGS__)
749 
750 } // namespace testing
751 
752 #endif // GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_FUNCTION_MOCKERS_H_
Definition: gmock-actions.h:59
const MockType * AdjustConstness_const(const MockType *mock)
Definition: gmock-generated-function-mockers.h:93
MockType * AdjustConstness_(const MockType *mock)
Definition: gmock-generated-function-mockers.h:100