diff --git a/googlemock/include/gmock/gmock-function-mocker.h b/googlemock/include/gmock/gmock-function-mocker.h index 2e86ea344..ac771007b 100644 --- a/googlemock/include/gmock/gmock-function-mocker.h +++ b/googlemock/include/gmock/gmock-function-mocker.h @@ -679,6 +679,379 @@ using internal::FunctionMocker; args_num, Method, GMOCK_PP_NARG0(constness), 0, 0, , ct, , \ (::testing::internal::identity_t<__VA_ARGS__>)) +#define DECLARE_MOCK_METHOD0(m, ...) \ + GMOCK_INTERNAL_DECLARE_MOCK_METHODN(, , m, 0, __VA_ARGS__) +#define DECLARE_MOCK_METHOD1(m, ...) \ + GMOCK_INTERNAL_DECLARE_MOCK_METHODN(, , m, 1, __VA_ARGS__) +#define DECLARE_MOCK_METHOD2(m, ...) \ + GMOCK_INTERNAL_DECLARE_MOCK_METHODN(, , m, 2, __VA_ARGS__) +#define DECLARE_MOCK_METHOD3(m, ...) \ + GMOCK_INTERNAL_DECLARE_MOCK_METHODN(, , m, 3, __VA_ARGS__) +#define DECLARE_MOCK_METHOD4(m, ...) \ + GMOCK_INTERNAL_DECLARE_MOCK_METHODN(, , m, 4, __VA_ARGS__) +#define DECLARE_MOCK_METHOD5(m, ...) \ + GMOCK_INTERNAL_DECLARE_MOCK_METHODN(, , m, 5, __VA_ARGS__) +#define DECLARE_MOCK_METHOD6(m, ...) \ + GMOCK_INTERNAL_DECLARE_MOCK_METHODN(, , m, 6, __VA_ARGS__) +#define DECLARE_MOCK_METHOD7(m, ...) \ + GMOCK_INTERNAL_DECLARE_MOCK_METHODN(, , m, 7, __VA_ARGS__) +#define DECLARE_MOCK_METHOD8(m, ...) \ + GMOCK_INTERNAL_DECLARE_MOCK_METHODN(, , m, 8, __VA_ARGS__) +#define DECLARE_MOCK_METHOD9(m, ...) \ + GMOCK_INTERNAL_DECLARE_MOCK_METHODN(, , m, 9, __VA_ARGS__) +#define DECLARE_MOCK_METHOD10(m, ...) \ + GMOCK_INTERNAL_DECLARE_MOCK_METHODN(, , m, 10, __VA_ARGS__) + +#define DECLARE_MOCK_CONST_METHOD0(m, ...) \ + GMOCK_INTERNAL_DECLARE_MOCK_METHODN(const, , m, 0, __VA_ARGS__) +#define DECLARE_MOCK_CONST_METHOD1(m, ...) \ + GMOCK_INTERNAL_DECLARE_MOCK_METHODN(const, , m, 1, __VA_ARGS__) +#define DECLARE_MOCK_CONST_METHOD2(m, ...) \ + GMOCK_INTERNAL_DECLARE_MOCK_METHODN(const, , m, 2, __VA_ARGS__) +#define DECLARE_MOCK_CONST_METHOD3(m, ...) \ + GMOCK_INTERNAL_DECLARE_MOCK_METHODN(const, , m, 3, __VA_ARGS__) +#define DECLARE_MOCK_CONST_METHOD4(m, ...) \ + GMOCK_INTERNAL_DECLARE_MOCK_METHODN(const, , m, 4, __VA_ARGS__) +#define DECLARE_MOCK_CONST_METHOD5(m, ...) \ + GMOCK_INTERNAL_DECLARE_MOCK_METHODN(const, , m, 5, __VA_ARGS__) +#define DECLARE_MOCK_CONST_METHOD6(m, ...) \ + GMOCK_INTERNAL_DECLARE_MOCK_METHODN(const, , m, 6, __VA_ARGS__) +#define DECLARE_MOCK_CONST_METHOD7(m, ...) \ + GMOCK_INTERNAL_DECLARE_MOCK_METHODN(const, , m, 7, __VA_ARGS__) +#define DECLARE_MOCK_CONST_METHOD8(m, ...) \ + GMOCK_INTERNAL_DECLARE_MOCK_METHODN(const, , m, 8, __VA_ARGS__) +#define DECLARE_MOCK_CONST_METHOD9(m, ...) \ + GMOCK_INTERNAL_DECLARE_MOCK_METHODN(const, , m, 9, __VA_ARGS__) +#define DECLARE_MOCK_CONST_METHOD10(m, ...) \ + GMOCK_INTERNAL_DECLARE_MOCK_METHODN(const, , m, 10, __VA_ARGS__) + +#define DECLARE_MOCK_METHOD0_T(m, ...) DECLARE_MOCK_METHOD0(m, __VA_ARGS__) +#define DECLARE_MOCK_METHOD1_T(m, ...) DECLARE_MOCK_METHOD1(m, __VA_ARGS__) +#define DECLARE_MOCK_METHOD2_T(m, ...) DECLARE_MOCK_METHOD2(m, __VA_ARGS__) +#define DECLARE_MOCK_METHOD3_T(m, ...) DECLARE_MOCK_METHOD3(m, __VA_ARGS__) +#define DECLARE_MOCK_METHOD4_T(m, ...) DECLARE_MOCK_METHOD4(m, __VA_ARGS__) +#define DECLARE_MOCK_METHOD5_T(m, ...) DECLARE_MOCK_METHOD5(m, __VA_ARGS__) +#define DECLARE_MOCK_METHOD6_T(m, ...) DECLARE_MOCK_METHOD6(m, __VA_ARGS__) +#define DECLARE_MOCK_METHOD7_T(m, ...) DECLARE_MOCK_METHOD7(m, __VA_ARGS__) +#define DECLARE_MOCK_METHOD8_T(m, ...) DECLARE_MOCK_METHOD8(m, __VA_ARGS__) +#define DECLARE_MOCK_METHOD9_T(m, ...) DECLARE_MOCK_METHOD9(m, __VA_ARGS__) +#define DECLARE_MOCK_METHOD10_T(m, ...) DECLARE_MOCK_METHOD10(m, __VA_ARGS__) + +#define DECLARE_MOCK_CONST_METHOD0_T(m, ...) \ + DECLARE_MOCK_CONST_METHOD0(m, __VA_ARGS__) +#define DECLARE_MOCK_CONST_METHOD1_T(m, ...) \ + DECLARE_MOCK_CONST_METHOD1(m, __VA_ARGS__) +#define DECLARE_MOCK_CONST_METHOD2_T(m, ...) \ + DECLARE_MOCK_CONST_METHOD2(m, __VA_ARGS__) +#define DECLARE_MOCK_CONST_METHOD3_T(m, ...) \ + DECLARE_MOCK_CONST_METHOD3(m, __VA_ARGS__) +#define DECLARE_MOCK_CONST_METHOD4_T(m, ...) \ + DECLARE_MOCK_CONST_METHOD4(m, __VA_ARGS__) +#define DECLARE_MOCK_CONST_METHOD5_T(m, ...) \ + DECLARE_MOCK_CONST_METHOD5(m, __VA_ARGS__) +#define DECLARE_MOCK_CONST_METHOD6_T(m, ...) \ + DECLARE_MOCK_CONST_METHOD6(m, __VA_ARGS__) +#define DECLARE_MOCK_CONST_METHOD7_T(m, ...) \ + DECLARE_MOCK_CONST_METHOD7(m, __VA_ARGS__) +#define DECLARE_MOCK_CONST_METHOD8_T(m, ...) \ + DECLARE_MOCK_CONST_METHOD8(m, __VA_ARGS__) +#define DECLARE_MOCK_CONST_METHOD9_T(m, ...) \ + DECLARE_MOCK_CONST_METHOD9(m, __VA_ARGS__) +#define DECLARE_MOCK_CONST_METHOD10_T(m, ...) \ + DECLARE_MOCK_CONST_METHOD10(m, __VA_ARGS__) + +#define DECLARE_MOCK_METHOD0_WITH_CALLTYPE(ct, m, ...) \ + GMOCK_INTERNAL_DECLARE_MOCK_METHODN(, ct, m, 0, __VA_ARGS__) +#define DECLARE_MOCK_METHOD1_WITH_CALLTYPE(ct, m, ...) \ + GMOCK_INTERNAL_DECLARE_MOCK_METHODN(, ct, m, 1, __VA_ARGS__) +#define DECLARE_MOCK_METHOD2_WITH_CALLTYPE(ct, m, ...) \ + GMOCK_INTERNAL_DECLARE_MOCK_METHODN(, ct, m, 2, __VA_ARGS__) +#define DECLARE_MOCK_METHOD3_WITH_CALLTYPE(ct, m, ...) \ + GMOCK_INTERNAL_DECLARE_MOCK_METHODN(, ct, m, 3, __VA_ARGS__) +#define DECLARE_MOCK_METHOD4_WITH_CALLTYPE(ct, m, ...) \ + GMOCK_INTERNAL_DECLARE_MOCK_METHODN(, ct, m, 4, __VA_ARGS__) +#define DECLARE_MOCK_METHOD5_WITH_CALLTYPE(ct, m, ...) \ + GMOCK_INTERNAL_DECLARE_MOCK_METHODN(, ct, m, 5, __VA_ARGS__) +#define DECLARE_MOCK_METHOD6_WITH_CALLTYPE(ct, m, ...) \ + GMOCK_INTERNAL_DECLARE_MOCK_METHODN(, ct, m, 6, __VA_ARGS__) +#define DECLARE_MOCK_METHOD7_WITH_CALLTYPE(ct, m, ...) \ + GMOCK_INTERNAL_DECLARE_MOCK_METHODN(, ct, m, 7, __VA_ARGS__) +#define DECLARE_MOCK_METHOD8_WITH_CALLTYPE(ct, m, ...) \ + GMOCK_INTERNAL_DECLARE_MOCK_METHODN(, ct, m, 8, __VA_ARGS__) +#define DECLARE_MOCK_METHOD9_WITH_CALLTYPE(ct, m, ...) \ + GMOCK_INTERNAL_DECLARE_MOCK_METHODN(, ct, m, 9, __VA_ARGS__) +#define DECLARE_MOCK_METHOD10_WITH_CALLTYPE(ct, m, ...) \ + GMOCK_INTERNAL_DECLARE_MOCK_METHODN(, ct, m, 10, __VA_ARGS__) + +#define DECLARE_MOCK_CONST_METHOD0_WITH_CALLTYPE(ct, m, ...) \ + GMOCK_INTERNAL_DECLARE_MOCK_METHODN(const, ct, m, 0, __VA_ARGS__) +#define DECLARE_MOCK_CONST_METHOD1_WITH_CALLTYPE(ct, m, ...) \ + GMOCK_INTERNAL_DECLARE_MOCK_METHODN(const, ct, m, 1, __VA_ARGS__) +#define DECLARE_MOCK_CONST_METHOD2_WITH_CALLTYPE(ct, m, ...) \ + GMOCK_INTERNAL_DECLARE_MOCK_METHODN(const, ct, m, 2, __VA_ARGS__) +#define DECLARE_MOCK_CONST_METHOD3_WITH_CALLTYPE(ct, m, ...) \ + GMOCK_INTERNAL_DECLARE_MOCK_METHODN(const, ct, m, 3, __VA_ARGS__) +#define DECLARE_MOCK_CONST_METHOD4_WITH_CALLTYPE(ct, m, ...) \ + GMOCK_INTERNAL_DECLARE_MOCK_METHODN(const, ct, m, 4, __VA_ARGS__) +#define DECLARE_MOCK_CONST_METHOD5_WITH_CALLTYPE(ct, m, ...) \ + GMOCK_INTERNAL_DECLARE_MOCK_METHODN(const, ct, m, 5, __VA_ARGS__) +#define DECLARE_MOCK_CONST_METHOD6_WITH_CALLTYPE(ct, m, ...) \ + GMOCK_INTERNAL_DECLARE_MOCK_METHODN(const, ct, m, 6, __VA_ARGS__) +#define DECLARE_MOCK_CONST_METHOD7_WITH_CALLTYPE(ct, m, ...) \ + GMOCK_INTERNAL_DECLARE_MOCK_METHODN(const, ct, m, 7, __VA_ARGS__) +#define DECLARE_MOCK_CONST_METHOD8_WITH_CALLTYPE(ct, m, ...) \ + GMOCK_INTERNAL_DECLARE_MOCK_METHODN(const, ct, m, 8, __VA_ARGS__) +#define DECLARE_MOCK_CONST_METHOD9_WITH_CALLTYPE(ct, m, ...) \ + GMOCK_INTERNAL_DECLARE_MOCK_METHODN(const, ct, m, 9, __VA_ARGS__) +#define DECLARE_MOCK_CONST_METHOD10_WITH_CALLTYPE(ct, m, ...) \ + GMOCK_INTERNAL_DECLARE_MOCK_METHODN(const, ct, m, 10, __VA_ARGS__) + +#define DECLARE_MOCK_METHOD0_T_WITH_CALLTYPE(ct, m, ...) \ + DECLARE_MOCK_METHOD0_WITH_CALLTYPE(ct, m, __VA_ARGS__) +#define DECLARE_MOCK_METHOD1_T_WITH_CALLTYPE(ct, m, ...) \ + DECLARE_MOCK_METHOD1_WITH_CALLTYPE(ct, m, __VA_ARGS__) +#define DECLARE_MOCK_METHOD2_T_WITH_CALLTYPE(ct, m, ...) \ + DECLARE_MOCK_METHOD2_WITH_CALLTYPE(ct, m, __VA_ARGS__) +#define DECLARE_MOCK_METHOD3_T_WITH_CALLTYPE(ct, m, ...) \ + DECLARE_MOCK_METHOD3_WITH_CALLTYPE(ct, m, __VA_ARGS__) +#define DECLARE_MOCK_METHOD4_T_WITH_CALLTYPE(ct, m, ...) \ + DECLARE_MOCK_METHOD4_WITH_CALLTYPE(ct, m, __VA_ARGS__) +#define DECLARE_MOCK_METHOD5_T_WITH_CALLTYPE(ct, m, ...) \ + DECLARE_MOCK_METHOD5_WITH_CALLTYPE(ct, m, __VA_ARGS__) +#define DECLARE_MOCK_METHOD6_T_WITH_CALLTYPE(ct, m, ...) \ + DECLARE_MOCK_METHOD6_WITH_CALLTYPE(ct, m, __VA_ARGS__) +#define DECLARE_MOCK_METHOD7_T_WITH_CALLTYPE(ct, m, ...) \ + DECLARE_MOCK_METHOD7_WITH_CALLTYPE(ct, m, __VA_ARGS__) +#define DECLARE_MOCK_METHOD8_T_WITH_CALLTYPE(ct, m, ...) \ + DECLARE_MOCK_METHOD8_WITH_CALLTYPE(ct, m, __VA_ARGS__) +#define DECLARE_MOCK_METHOD9_T_WITH_CALLTYPE(ct, m, ...) \ + DECLARE_MOCK_METHOD9_WITH_CALLTYPE(ct, m, __VA_ARGS__) +#define DECLARE_MOCK_METHOD10_T_WITH_CALLTYPE(ct, m, ...) \ + DECLARE_MOCK_METHOD10_WITH_CALLTYPE(ct, m, __VA_ARGS__) + +#define DECLARE_MOCK_CONST_METHOD0_T_WITH_CALLTYPE(ct, m, ...) \ + DECLARE_MOCK_CONST_METHOD0_WITH_CALLTYPE(ct, m, __VA_ARGS__) +#define DECLARE_MOCK_CONST_METHOD1_T_WITH_CALLTYPE(ct, m, ...) \ + DECLARE_MOCK_CONST_METHOD1_WITH_CALLTYPE(ct, m, __VA_ARGS__) +#define DECLARE_MOCK_CONST_METHOD2_T_WITH_CALLTYPE(ct, m, ...) \ + DECLARE_MOCK_CONST_METHOD2_WITH_CALLTYPE(ct, m, __VA_ARGS__) +#define DECLARE_MOCK_CONST_METHOD3_T_WITH_CALLTYPE(ct, m, ...) \ + DECLARE_MOCK_CONST_METHOD3_WITH_CALLTYPE(ct, m, __VA_ARGS__) +#define DECLARE_MOCK_CONST_METHOD4_T_WITH_CALLTYPE(ct, m, ...) \ + DECLARE_MOCK_CONST_METHOD4_WITH_CALLTYPE(ct, m, __VA_ARGS__) +#define DECLARE_MOCK_CONST_METHOD5_T_WITH_CALLTYPE(ct, m, ...) \ + DECLARE_MOCK_CONST_METHOD5_WITH_CALLTYPE(ct, m, __VA_ARGS__) +#define DECLARE_MOCK_CONST_METHOD6_T_WITH_CALLTYPE(ct, m, ...) \ + DECLARE_MOCK_CONST_METHOD6_WITH_CALLTYPE(ct, m, __VA_ARGS__) +#define DECLARE_MOCK_CONST_METHOD7_T_WITH_CALLTYPE(ct, m, ...) \ + DECLARE_MOCK_CONST_METHOD7_WITH_CALLTYPE(ct, m, __VA_ARGS__) +#define DECLARE_MOCK_CONST_METHOD8_T_WITH_CALLTYPE(ct, m, ...) \ + DECLARE_MOCK_CONST_METHOD8_WITH_CALLTYPE(ct, m, __VA_ARGS__) +#define DECLARE_MOCK_CONST_METHOD9_T_WITH_CALLTYPE(ct, m, ...) \ + DECLARE_MOCK_CONST_METHOD9_WITH_CALLTYPE(ct, m, __VA_ARGS__) +#define DECLARE_MOCK_CONST_METHOD10_T_WITH_CALLTYPE(ct, m, ...) \ + DECLARE_MOCK_CONST_METHOD10_WITH_CALLTYPE(ct, m, __VA_ARGS__) + +#define GMOCK_INTERNAL_DECLARE_MOCK_METHODN(constness, ct, Method, args_num, \ + ...) \ + GMOCK_INTERNAL_ASSERT_VALID_SIGNATURE( \ + args_num, ::testing::internal::identity_t<__VA_ARGS__>); \ + GMOCK_INTERNAL_DECLARE_MOCK_METHOD_IMPL( \ + args_num, Method, GMOCK_PP_NARG0(constness), 0, 0, , ct, , \ + (::testing::internal::identity_t<__VA_ARGS__>)) + +#define DEFINE_MOCK_METHOD0(cls, m, ...) \ + GMOCK_INTERNAL_DEFINE_MOCK_METHODN(, , cls, m, 0, __VA_ARGS__) +#define DEFINE_MOCK_METHOD1(cls, m, ...) \ + GMOCK_INTERNAL_DEFINE_MOCK_METHODN(, , cls, m, 1, __VA_ARGS__) +#define DEFINE_MOCK_METHOD2(cls, m, ...) \ + GMOCK_INTERNAL_DEFINE_MOCK_METHODN(, , cls, m, 2, __VA_ARGS__) +#define DEFINE_MOCK_METHOD3(cls, m, ...) \ + GMOCK_INTERNAL_DEFINE_MOCK_METHODN(, , cls, m, 3, __VA_ARGS__) +#define DEFINE_MOCK_METHOD4(cls, m, ...) \ + GMOCK_INTERNAL_DEFINE_MOCK_METHODN(, , cls, m, 4, __VA_ARGS__) +#define DEFINE_MOCK_METHOD5(cls, m, ...) \ + GMOCK_INTERNAL_DEFINE_MOCK_METHODN(, , cls, m, 5, __VA_ARGS__) +#define DEFINE_MOCK_METHOD6(cls, m, ...) \ + GMOCK_INTERNAL_DEFINE_MOCK_METHODN(, , cls, m, 6, __VA_ARGS__) +#define DEFINE_MOCK_METHOD7(cls, m, ...) \ + GMOCK_INTERNAL_DEFINE_MOCK_METHODN(, , cls, m, 7, __VA_ARGS__) +#define DEFINE_MOCK_METHOD8(cls, m, ...) \ + GMOCK_INTERNAL_DEFINE_MOCK_METHODN(, , cls, m, 8, __VA_ARGS__) +#define DEFINE_MOCK_METHOD9(cls, m, ...) \ + GMOCK_INTERNAL_DEFINE_MOCK_METHODN(, , cls, m, 9, __VA_ARGS__) +#define DEFINE_MOCK_METHOD10(cls, m, ...) \ + GMOCK_INTERNAL_DEFINE_MOCK_METHODN(, , cls, m, 10, __VA_ARGS__) + +#define DEFINE_MOCK_CONST_METHOD0(cls, m, ...) \ + GMOCK_INTERNAL_DEFINE_MOCK_METHODN(const, , cls, m, 0, __VA_ARGS__) +#define DEFINE_MOCK_CONST_METHOD1(cls, m, ...) \ + GMOCK_INTERNAL_DEFINE_MOCK_METHODN(const, , cls, m, 1, __VA_ARGS__) +#define DEFINE_MOCK_CONST_METHOD2(cls, m, ...) \ + GMOCK_INTERNAL_DEFINE_MOCK_METHODN(const, , cls, m, 2, __VA_ARGS__) +#define DEFINE_MOCK_CONST_METHOD3(cls, m, ...) \ + GMOCK_INTERNAL_DEFINE_MOCK_METHODN(const, , cls, m, 3, __VA_ARGS__) +#define DEFINE_MOCK_CONST_METHOD4(cls, m, ...) \ + GMOCK_INTERNAL_DEFINE_MOCK_METHODN(const, , cls, m, 4, __VA_ARGS__) +#define DEFINE_MOCK_CONST_METHOD5(cls, m, ...) \ + GMOCK_INTERNAL_DEFINE_MOCK_METHODN(const, , cls, m, 5, __VA_ARGS__) +#define DEFINE_MOCK_CONST_METHOD6(cls, m, ...) \ + GMOCK_INTERNAL_DEFINE_MOCK_METHODN(const, , cls, m, 6, __VA_ARGS__) +#define DEFINE_MOCK_CONST_METHOD7(cls, m, ...) \ + GMOCK_INTERNAL_DEFINE_MOCK_METHODN(const, , cls, m, 7, __VA_ARGS__) +#define DEFINE_MOCK_CONST_METHOD8(cls, m, ...) \ + GMOCK_INTERNAL_DEFINE_MOCK_METHODN(const, , cls, m, 8, __VA_ARGS__) +#define DEFINE_MOCK_CONST_METHOD9(cls, m, ...) \ + GMOCK_INTERNAL_DEFINE_MOCK_METHODN(const, , cls, m, 9, __VA_ARGS__) +#define DEFINE_MOCK_CONST_METHOD10(cls, m, ...) \ + GMOCK_INTERNAL_DEFINE_MOCK_METHODN(const, , cls, m, 10, __VA_ARGS__) + +#define DEFINE_MOCK_METHOD0_T(cls, m, ...) \ + DEFINE_MOCK_METHOD0(cls, m, __VA_ARGS__) +#define DEFINE_MOCK_METHOD1_T(cls, m, ...) \ + DEFINE_MOCK_METHOD1(cls, m, __VA_ARGS__) +#define DEFINE_MOCK_METHOD2_T(cls, m, ...) \ + DEFINE_MOCK_METHOD2(cls, m, __VA_ARGS__) +#define DEFINE_MOCK_METHOD3_T(cls, m, ...) \ + DEFINE_MOCK_METHOD3(cls, m, __VA_ARGS__) +#define DEFINE_MOCK_METHOD4_T(cls, m, ...) \ + DEFINE_MOCK_METHOD4(cls, m, __VA_ARGS__) +#define DEFINE_MOCK_METHOD5_T(cls, m, ...) \ + DEFINE_MOCK_METHOD5(cls, m, __VA_ARGS__) +#define DEFINE_MOCK_METHOD6_T(cls, m, ...) \ + DEFINE_MOCK_METHOD6(cls, m, __VA_ARGS__) +#define DEFINE_MOCK_METHOD7_T(cls, m, ...) \ + DEFINE_MOCK_METHOD7(cls, m, __VA_ARGS__) +#define DEFINE_MOCK_METHOD8_T(cls, m, ...) \ + DEFINE_MOCK_METHOD8(cls, m, __VA_ARGS__) +#define DEFINE_MOCK_METHOD9_T(cls, m, ...) \ + DEFINE_MOCK_METHOD9(cls, m, __VA_ARGS__) +#define DEFINE_MOCK_METHOD10_T(cls, m, ...) \ + DEFINE_MOCK_METHOD10(cls, m, __VA_ARGS__) + +#define DEFINE_MOCK_CONST_METHOD0_T(cls, m, ...) \ + DEFINE_MOCK_CONST_METHOD0(cls, m, __VA_ARGS__) +#define DEFINE_MOCK_CONST_METHOD1_T(cls, m, ...) \ + DEFINE_MOCK_CONST_METHOD1(cls, m, __VA_ARGS__) +#define DEFINE_MOCK_CONST_METHOD2_T(cls, m, ...) \ + DEFINE_MOCK_CONST_METHOD2(cls, m, __VA_ARGS__) +#define DEFINE_MOCK_CONST_METHOD3_T(cls, m, ...) \ + DEFINE_MOCK_CONST_METHOD3(cls, m, __VA_ARGS__) +#define DEFINE_MOCK_CONST_METHOD4_T(cls, m, ...) \ + DEFINE_MOCK_CONST_METHOD4(cls, m, __VA_ARGS__) +#define DEFINE_MOCK_CONST_METHOD5_T(cls, m, ...) \ + DEFINE_MOCK_CONST_METHOD5(cls, m, __VA_ARGS__) +#define DEFINE_MOCK_CONST_METHOD6_T(cls, m, ...) \ + DEFINE_MOCK_CONST_METHOD6(cls, m, __VA_ARGS__) +#define DEFINE_MOCK_CONST_METHOD7_T(cls, m, ...) \ + DEFINE_MOCK_CONST_METHOD7(cls, m, __VA_ARGS__) +#define DEFINE_MOCK_CONST_METHOD8_T(cls, m, ...) \ + DEFINE_MOCK_CONST_METHOD8(cls, m, __VA_ARGS__) +#define DEFINE_MOCK_CONST_METHOD9_T(cls, m, ...) \ + DEFINE_MOCK_CONST_METHOD9(cls, m, __VA_ARGS__) +#define DEFINE_MOCK_CONST_METHOD10_T(cls, m, ...) \ + DEFINE_MOCK_CONST_METHOD10(cls, m, __VA_ARGS__) + +#define DEFINE_MOCK_METHOD0_WITH_CALLTYPE(ct, cls, m, ...) \ + GMOCK_INTERNAL_DEFINE_MOCK_METHODN(, ct, cls, m, 0, __VA_ARGS__) +#define DEFINE_MOCK_METHOD1_WITH_CALLTYPE(ct, cls, m, ...) \ + GMOCK_INTERNAL_DEFINE_MOCK_METHODN(, ct, cls, m, 1, __VA_ARGS__) +#define DEFINE_MOCK_METHOD2_WITH_CALLTYPE(ct, cls, m, ...) \ + GMOCK_INTERNAL_DEFINE_MOCK_METHODN(, ct, cls, m, 2, __VA_ARGS__) +#define DEFINE_MOCK_METHOD3_WITH_CALLTYPE(ct, cls, m, ...) \ + GMOCK_INTERNAL_DEFINE_MOCK_METHODN(, ct, cls, m, 3, __VA_ARGS__) +#define DEFINE_MOCK_METHOD4_WITH_CALLTYPE(ct, cls, m, ...) \ + GMOCK_INTERNAL_DEFINE_MOCK_METHODN(, ct, cls, m, 4, __VA_ARGS__) +#define DEFINE_MOCK_METHOD5_WITH_CALLTYPE(ct, cls, m, ...) \ + GMOCK_INTERNAL_DEFINE_MOCK_METHODN(, ct, cls, m, 5, __VA_ARGS__) +#define DEFINE_MOCK_METHOD6_WITH_CALLTYPE(ct, cls, m, ...) \ + GMOCK_INTERNAL_DEFINE_MOCK_METHODN(, ct, cls, m, 6, __VA_ARGS__) +#define DEFINE_MOCK_METHOD7_WITH_CALLTYPE(ct, cls, m, ...) \ + GMOCK_INTERNAL_DEFINE_MOCK_METHODN(, ct, cls, m, 7, __VA_ARGS__) +#define DEFINE_MOCK_METHOD8_WITH_CALLTYPE(ct, cls, m, ...) \ + GMOCK_INTERNAL_DEFINE_MOCK_METHODN(, ct, cls, m, 8, __VA_ARGS__) +#define DEFINE_MOCK_METHOD9_WITH_CALLTYPE(ct, cls, m, ...) \ + GMOCK_INTERNAL_DEFINE_MOCK_METHODN(, ct, cls, m, 9, __VA_ARGS__) +#define DEFINE_MOCK_METHOD10_WITH_CALLTYPE(ct, cls, m, ...) \ + GMOCK_INTERNAL_DEFINE_MOCK_METHODN(, ct, cls, m, 10, __VA_ARGS__) + +#define DEFINE_MOCK_CONST_METHOD0_WITH_CALLTYPE(ct, cls, m, ...) \ + GMOCK_INTERNAL_DEFINE_MOCK_METHODN(const, ct, cls, m, 0, __VA_ARGS__) +#define DEFINE_MOCK_CONST_METHOD1_WITH_CALLTYPE(ct, cls, m, ...) \ + GMOCK_INTERNAL_DEFINE_MOCK_METHODN(const, ct, cls, m, 1, __VA_ARGS__) +#define DEFINE_MOCK_CONST_METHOD2_WITH_CALLTYPE(ct, cls, m, ...) \ + GMOCK_INTERNAL_DEFINE_MOCK_METHODN(const, ct, cls, m, 2, __VA_ARGS__) +#define DEFINE_MOCK_CONST_METHOD3_WITH_CALLTYPE(ct, cls, m, ...) \ + GMOCK_INTERNAL_DEFINE_MOCK_METHODN(const, ct, cls, m, 3, __VA_ARGS__) +#define DEFINE_MOCK_CONST_METHOD4_WITH_CALLTYPE(ct, cls, m, ...) \ + GMOCK_INTERNAL_DEFINE_MOCK_METHODN(const, ct, cls, m, 4, __VA_ARGS__) +#define DEFINE_MOCK_CONST_METHOD5_WITH_CALLTYPE(ct, cls, m, ...) \ + GMOCK_INTERNAL_DEFINE_MOCK_METHODN(const, ct, cls, m, 5, __VA_ARGS__) +#define DEFINE_MOCK_CONST_METHOD6_WITH_CALLTYPE(ct, cls, m, ...) \ + GMOCK_INTERNAL_DEFINE_MOCK_METHODN(const, ct, cls, m, 6, __VA_ARGS__) +#define DEFINE_MOCK_CONST_METHOD7_WITH_CALLTYPE(ct, cls, m, ...) \ + GMOCK_INTERNAL_DEFINE_MOCK_METHODN(const, ct, cls, m, 7, __VA_ARGS__) +#define DEFINE_MOCK_CONST_METHOD8_WITH_CALLTYPE(ct, cls, m, ...) \ + GMOCK_INTERNAL_DEFINE_MOCK_METHODN(const, ct, cls, m, 8, __VA_ARGS__) +#define DEFINE_MOCK_CONST_METHOD9_WITH_CALLTYPE(ct, cls, m, ...) \ + GMOCK_INTERNAL_DEFINE_MOCK_METHODN(const, ct, cls, m, 9, __VA_ARGS__) +#define DEFINE_MOCK_CONST_METHOD10_WITH_CALLTYPE(ct, cls, m, ...) \ + GMOCK_INTERNAL_DEFINE_MOCK_METHODN(const, ct, cls, m, 10, __VA_ARGS__) + +#define DEFINE_MOCK_METHOD0_T_WITH_CALLTYPE(ct, cls, m, ...) \ + DEFINE_MOCK_METHOD0_WITH_CALLTYPE(ct, cls, m, __VA_ARGS__) +#define DEFINE_MOCK_METHOD1_T_WITH_CALLTYPE(ct, cls, m, ...) \ + DEFINE_MOCK_METHOD1_WITH_CALLTYPE(ct, cls, m, __VA_ARGS__) +#define DEFINE_MOCK_METHOD2_T_WITH_CALLTYPE(ct, cls, m, ...) \ + DEFINE_MOCK_METHOD2_WITH_CALLTYPE(ct, cls, m, __VA_ARGS__) +#define DEFINE_MOCK_METHOD3_T_WITH_CALLTYPE(ct, cls, m, ...) \ + DEFINE_MOCK_METHOD3_WITH_CALLTYPE(ct, cls, m, __VA_ARGS__) +#define DEFINE_MOCK_METHOD4_T_WITH_CALLTYPE(ct, cls, m, ...) \ + DEFINE_MOCK_METHOD4_WITH_CALLTYPE(ct, cls, m, __VA_ARGS__) +#define DEFINE_MOCK_METHOD5_T_WITH_CALLTYPE(ct, cls, m, ...) \ + DEFINE_MOCK_METHOD5_WITH_CALLTYPE(ct, cls, m, __VA_ARGS__) +#define DEFINE_MOCK_METHOD6_T_WITH_CALLTYPE(ct, cls, m, ...) \ + DEFINE_MOCK_METHOD6_WITH_CALLTYPE(ct, cls, m, __VA_ARGS__) +#define DEFINE_MOCK_METHOD7_T_WITH_CALLTYPE(ct, cls, m, ...) \ + DEFINE_MOCK_METHOD7_WITH_CALLTYPE(ct, cls, m, __VA_ARGS__) +#define DEFINE_MOCK_METHOD8_T_WITH_CALLTYPE(ct, cls, m, ...) \ + DEFINE_MOCK_METHOD8_WITH_CALLTYPE(ct, cls, m, __VA_ARGS__) +#define DEFINE_MOCK_METHOD9_T_WITH_CALLTYPE(ct, cls, m, ...) \ + DEFINE_MOCK_METHOD9_WITH_CALLTYPE(ct, cls, m, __VA_ARGS__) +#define DEFINE_MOCK_METHOD10_T_WITH_CALLTYPE(ct, cls, m, ...) \ + DEFINE_MOCK_METHOD10_WITH_CALLTYPE(ct, cls, m, __VA_ARGS__) + +#define DEFINE_MOCK_CONST_METHOD0_T_WITH_CALLTYPE(ct, cls, m, ...) \ + DEFINE_MOCK_CONST_METHOD0_WITH_CALLTYPE(ct, cls, m, __VA_ARGS__) +#define DEFINE_MOCK_CONST_METHOD1_T_WITH_CALLTYPE(ct, cls, m, ...) \ + DEFINE_MOCK_CONST_METHOD1_WITH_CALLTYPE(ct, cls, m, __VA_ARGS__) +#define DEFINE_MOCK_CONST_METHOD2_T_WITH_CALLTYPE(ct, cls, m, ...) \ + DEFINE_MOCK_CONST_METHOD2_WITH_CALLTYPE(ct, cls, m, __VA_ARGS__) +#define DEFINE_MOCK_CONST_METHOD3_T_WITH_CALLTYPE(ct, cls, m, ...) \ + DEFINE_MOCK_CONST_METHOD3_WITH_CALLTYPE(ct, cls, m, __VA_ARGS__) +#define DEFINE_MOCK_CONST_METHOD4_T_WITH_CALLTYPE(ct, cls, m, ...) \ + DEFINE_MOCK_CONST_METHOD4_WITH_CALLTYPE(ct, cls, m, __VA_ARGS__) +#define DEFINE_MOCK_CONST_METHOD5_T_WITH_CALLTYPE(ct, cls, m, ...) \ + DEFINE_MOCK_CONST_METHOD5_WITH_CALLTYPE(ct, cls, m, __VA_ARGS__) +#define DEFINE_MOCK_CONST_METHOD6_T_WITH_CALLTYPE(ct, cls, m, ...) \ + DEFINE_MOCK_CONST_METHOD6_WITH_CALLTYPE(ct, cls, m, __VA_ARGS__) +#define DEFINE_MOCK_CONST_METHOD7_T_WITH_CALLTYPE(ct, cls, m, ...) \ + DEFINE_MOCK_CONST_METHOD7_WITH_CALLTYPE(ct, cls, m, __VA_ARGS__) +#define DEFINE_MOCK_CONST_METHOD8_T_WITH_CALLTYPE(ct, cls, m, ...) \ + DEFINE_MOCK_CONST_METHOD8_WITH_CALLTYPE(ct, cls, m, __VA_ARGS__) +#define DEFINE_MOCK_CONST_METHOD9_T_WITH_CALLTYPE(ct, cls, m, ...) \ + DEFINE_MOCK_CONST_METHOD9_WITH_CALLTYPE(ct, cls, m, __VA_ARGS__) +#define DEFINE_MOCK_CONST_METHOD10_T_WITH_CALLTYPE(ct, cls, m, ...) \ + DEFINE_MOCK_CONST_METHOD10_WITH_CALLTYPE(ct, cls, m, __VA_ARGS__) + +#define GMOCK_INTERNAL_DEFINE_MOCK_METHODN(constness, ct, Class, Method, \ + args_num, ...) \ + GMOCK_INTERNAL_ASSERT_VALID_SIGNATURE( \ + args_num, ::testing::internal::identity_t<__VA_ARGS__>); \ + GMOCK_INTERNAL_DEFINE_MOCK_METHOD_IMPL( \ + args_num, Class, Method, GMOCK_PP_NARG0(constness), 0, 0, , ct, , \ + (::testing::internal::identity_t<__VA_ARGS__>)) + #define GMOCK_MOCKER_(arity, constness, Method) \ GTEST_CONCAT_TOKEN_(gmock##constness##arity##_##Method##_, __LINE__)