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