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
47 #include "gmock/gmock-spec-builders.h"
48 #include "gmock/internal/gmock-internal-utils.h"
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>
AdjustConstness_const(const MockType * mock)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>
AdjustConstness_(const MockType * mock)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_
753