36 #ifndef GMOCK_INCLUDE_GMOCK_GMOCK_H_ 37 #define GMOCK_INCLUDE_GMOCK_GMOCK_H_ 93 #ifndef GMOCK_INCLUDE_GMOCK_GMOCK_ACTIONS_H_ 94 #define GMOCK_INCLUDE_GMOCK_GMOCK_ACTIONS_H_ 140 #ifndef GMOCK_INCLUDE_GMOCK_INTERNAL_GMOCK_INTERNAL_UTILS_H_ 141 #define GMOCK_INCLUDE_GMOCK_INTERNAL_GMOCK_INTERNAL_UTILS_H_ 187 #ifndef GMOCK_INCLUDE_GMOCK_INTERNAL_GMOCK_GENERATED_INTERNAL_UTILS_H_ 188 #define GMOCK_INCLUDE_GMOCK_INTERNAL_GMOCK_GENERATED_INTERNAL_UTILS_H_ 225 #ifndef GMOCK_INCLUDE_GMOCK_INTERNAL_GMOCK_PORT_H_ 226 #define GMOCK_INCLUDE_GMOCK_INTERNAL_GMOCK_PORT_H_ 234 #include "gtest/gtest.h" 243 #if defined(_MSC_VER) && _MSC_VER < 1310 244 # error "At least Visual C++ 2003 (7.1) is required to compile Google Mock." 249 #define GMOCK_FLAG(name) FLAGS_gmock_##name 252 #define GMOCK_DECLARE_bool_(name) extern GTEST_API_ bool GMOCK_FLAG(name) 253 #define GMOCK_DECLARE_int32_(name) \ 254 extern GTEST_API_ ::testing::internal::Int32 GMOCK_FLAG(name) 255 #define GMOCK_DECLARE_string_(name) \ 256 extern GTEST_API_ ::std::string GMOCK_FLAG(name) 259 #define GMOCK_DEFINE_bool_(name, default_val, doc) \ 260 GTEST_API_ bool GMOCK_FLAG(name) = (default_val) 261 #define GMOCK_DEFINE_int32_(name, default_val, doc) \ 262 GTEST_API_ ::testing::internal::Int32 GMOCK_FLAG(name) = (default_val) 263 #define GMOCK_DEFINE_string_(name, default_val, doc) \ 264 GTEST_API_ ::std::string GMOCK_FLAG(name) = (default_val) 266 #endif // GMOCK_INCLUDE_GMOCK_INTERNAL_GMOCK_PORT_H_ 271 template <
typename T>
287 template <
typename T>
293 template <
typename Tuple>
299 typedef ::std::tr1::tuple< >
type;
302 template <
typename A1>
305 typedef ::std::tr1::tuple<Matcher<A1> >
type;
308 template <
typename A1,
typename A2>
314 template <
typename A1,
typename A2,
typename A3>
320 template <
typename A1,
typename A2,
typename A3,
typename A4>
327 template <
typename A1,
typename A2,
typename A3,
typename A4,
typename A5>
334 template <
typename A1,
typename A2,
typename A3,
typename A4,
typename A5,
342 template <
typename A1,
typename A2,
typename A3,
typename A4,
typename A5,
343 typename A6,
typename A7>
350 template <
typename A1,
typename A2,
typename A3,
typename A4,
typename A5,
351 typename A6,
typename A7,
typename A8>
358 template <
typename A1,
typename A2,
typename A3,
typename A4,
typename A5,
359 typename A6,
typename A7,
typename A8,
typename A9>
366 template <
typename A1,
typename A2,
typename A3,
typename A4,
typename A5,
367 typename A6,
typename A7,
typename A8,
typename A9,
typename A10>
389 template <
typename F>
392 template <
typename R>
402 template <
typename R,
typename A1>
413 template <
typename R,
typename A1,
typename A2>
424 template <
typename R,
typename A1,
typename A2,
typename A3>
435 template <
typename R,
typename A1,
typename A2,
typename A3,
typename A4>
446 template <
typename R,
typename A1,
typename A2,
typename A3,
typename A4,
458 template <
typename R,
typename A1,
typename A2,
typename A3,
typename A4,
459 typename A5,
typename A6>
470 template <
typename R,
typename A1,
typename A2,
typename A3,
typename A4,
471 typename A5,
typename A6,
typename A7>
473 :
Function<R(A1, A2, A3, A4, A5, A6)>
482 template <
typename R,
typename A1,
typename A2,
typename A3,
typename A4,
483 typename A5,
typename A6,
typename A7,
typename A8>
485 :
Function<R(A1, A2, A3, A4, A5, A6, A7)>
494 template <
typename R,
typename A1,
typename A2,
typename A3,
typename A4,
495 typename A5,
typename A6,
typename A7,
typename A8,
typename A9>
496 struct Function<R(A1, A2, A3, A4, A5, A6, A7, A8, A9)>
497 :
Function<R(A1, A2, A3, A4, A5, A6, A7, A8)>
500 typedef ::std::tr1::tuple<A1, A2, A3, A4, A5, A6, A7, A8, A9>
ArgumentTuple;
507 template <
typename R,
typename A1,
typename A2,
typename A3,
typename A4,
508 typename A5,
typename A6,
typename A7,
typename A8,
typename A9,
510 struct Function<R(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10)>
511 :
Function<R(A1, A2, A3, A4, A5, A6, A7, A8, A9)>
514 typedef ::std::tr1::tuple<A1, A2, A3, A4, A5, A6, A7, A8, A9,
526 #endif // GMOCK_INCLUDE_GMOCK_INTERNAL_GMOCK_GENERATED_INTERNAL_UTILS_H_ 543 template <
typename Po
inter>
548 typedef typename Pointer::element_type
type;
551 template <
typename T>
557 template <
typename Po
inter>
558 inline const typename Pointer::element_type *
GetRawPointer(
const Pointer & p)
563 template <
typename Element>
567 template <
typename T>
570 bool operator()(const ::testing::internal::linked_ptr<T> & lhs,
571 const ::testing::internal::linked_ptr<T> & rhs)
const 573 return lhs.get() < rhs.get();
585 #if (GTEST_OS_SYMBIAN && defined(_STLP_NO_WCHAR_T)) || \ 586 (defined(_MSC_VER) && !defined(_NATIVE_WCHAR_T_DEFINED)) 589 # define GMOCK_WCHAR_T_IS_NATIVE_ 1 603 # define GMOCK_HAS_SIGNED_WCHAR_T_ 1 619 enum { value = kOther };
623 #define GMOCK_DECLARE_KIND_(type, kind) \ 624 template <> struct KindOf<type> { enum { value = kind }; } 639 #if GMOCK_WCHAR_T_IS_NATIVE_ 652 #undef GMOCK_DECLARE_KIND_ 655 #define GMOCK_KIND_OF_(type) \ 656 static_cast< ::testing::internal::TypeKind>( \ 657 ::testing::internal::KindOf<type>::value) 660 #define GMOCK_IS_SIGNED_(T) (static_cast<T>(-1) < 0) 671 template <TypeKind kFromKind,
typename From, TypeKind kToKind,
typename To>
680 template <
typename To>
685 template <
typename To>
690 template <
typename From>
696 template <
typename From,
typename To>
701 ((sizeof(From) < sizeof(To)) &&
702 (!GMOCK_IS_SIGNED_(From) || GMOCK_IS_SIGNED_(To))) ||
704 ((sizeof(From) == sizeof(To)) &&
705 (GMOCK_IS_SIGNED_(From) == GMOCK_IS_SIGNED_(To))) > {};
707 #undef GMOCK_IS_SIGNED_
711 template <typename From, typename To>
712 struct LosslessArithmeticConvertibleImpl<kInteger, From, kFloatingPoint, To>
713 : public false_type {};
716 template <typename From>
717 struct LosslessArithmeticConvertibleImpl<kFloatingPoint, From, kBool, bool>
718 : public false_type {};
721 template <typename From, typename To>
722 struct LosslessArithmeticConvertibleImpl<kFloatingPoint, From, kInteger, To>
723 : public false_type {};
727 template <typename From, typename To>
728 struct LosslessArithmeticConvertibleImpl <
729 kFloatingPoint, From, kFloatingPoint, To >
730 : public bool_constant < sizeof(From) <= sizeof(To) > {};
739 template <typename From, typename To>
740 struct LosslessArithmeticConvertible
741 : public LosslessArithmeticConvertibleImpl <
742 GMOCK_KIND_OF_(From), From, GMOCK_KIND_OF_(To), To > {};
746 class FailureReporterInterface
755 virtual ~FailureReporterInterface() {}
758 virtual void ReportFailure(FailureType type, const char * file, int line,
759 const string & message) = 0;
763 GTEST_API_ FailureReporterInterface * GetFailureReporter();
770 inline void Assert(bool condition, const char * file, int line,
775 GetFailureReporter()->ReportFailure(FailureReporterInterface::kFatal,
779 inline void Assert(bool condition, const char * file, int line)
781 Assert(condition, file, line, "Assertion failed.");
786 inline void Expect(bool condition, const char * file, int line,
791 GetFailureReporter()->ReportFailure(FailureReporterInterface::kNonfatal,
795 inline void
Expect(bool condition, const char * file, int line)
797 Expect(condition, file, line,
"Expectation failed.");
829 int stack_frames_to_skip);
866 template <
typename T>
891 template <
class RawContainer>
905 static type
Copy(
const RawContainer & container) {
return container; }
909 template <
typename Element,
size_t N>
925 testing::StaticAssertTypeEq<Element, RawElement>();
940 return type(const_cast<Element *>(&array[0]), N,
kReference);
943 #endif // GTEST_OS_SYMBIAN 945 static type
Copy(
const Element(&array)[N])
948 return type(const_cast<Element *>(&array[0]), N,
kCopy);
950 return type(array, N,
kCopy);
951 #endif // GTEST_OS_SYMBIAN 957 template <
typename ElementPo
inter,
typename Size>
967 const ::std::tr1::tuple<ElementPointer, Size> & array)
970 return type(get<0>(array), get<1>(array),
kReference);
972 static type
Copy(const ::std::tr1::tuple<ElementPointer, Size> & array)
975 return type(get<0>(array), get<1>(array),
kCopy);
986 template <
typename T>
993 template <
typename K,
typename V>
1001 template <
bool kValue>
1007 #endif // GMOCK_INCLUDE_GMOCK_INTERNAL_GMOCK_INTERNAL_UTILS_H_ 1024 template <
typename F1,
typename F2>
1032 template <
typename T>
1040 Assert(
false, __FILE__, __LINE__,
1041 "Default action undefined for the function return type.");
1042 return internal::Invalid<T>();
1050 template <
typename T>
1060 template <
typename T>
1065 static T *
Get() {
return NULL; }
1070 #define GMOCK_DEFINE_DEFAULT_ACTION_FOR_RETURN_TYPE_(type, value) \ 1072 class BuiltInDefaultValue<type> { \ 1074 static bool Exists() { return true; } \ 1075 static type Get() { return value; } \ 1079 #if GTEST_HAS_GLOBAL_STRING 1081 #endif // GTEST_HAS_GLOBAL_STRING 1094 #if GMOCK_WCHAR_T_IS_NATIVE_ 1109 #undef GMOCK_DEFINE_DEFAULT_ACTION_FOR_RETURN_TYPE_ 1126 template <
typename T>
1146 static bool IsSet() {
return value_ != NULL; }
1160 return value_ == NULL ?
1170 template <
typename T>
1187 static bool IsSet() {
return address_ != NULL; }
1201 return address_ == NULL ?
1220 template <
typename T>
1224 template <
typename T>
1228 template <
typename F>
1242 virtual Result Perform(
const ArgumentTuple & args) = 0;
1257 template <
typename F>
1279 template <
typename Func>
1294 !IsDoDefault(), __FILE__, __LINE__,
1295 "You are using DoDefault() inside a composite action like " 1296 "DoAll() or WithArgs(). This is not supported for technical " 1297 "reasons. Please instead spell out the default action, or " 1298 "assign the default action to an Action variable and use " 1299 "the variable in various places.");
1300 return impl_->Perform(args);
1304 template <
typename F1,
typename F2>
1331 template <
typename Impl>
1337 template <
typename F>
1344 template <
typename F>
1353 virtual Result
Perform(
const ArgumentTuple & args)
1355 return impl_.template Perform<Result>(args);
1371 template <
typename F>
1384 template <
typename Impl>
1395 template <
typename F1,
typename F2>
1404 virtual Result
Perform(
const ArgumentTuple & args)
1406 return impl_->Perform(args);
1439 template <
typename R>
1450 template <
typename F>
1464 use_ReturnRef_instead_of_Return_to_return_a_reference);
1470 template <
typename F>
1487 virtual Result
Perform(
const ArgumentTuple &) {
return value_; }
1491 Result_cannot_be_a_reference_type);
1507 template <
typename Result,
typename ArgumentTuple>
1511 ReturnNull_can_be_used_to_return_a_pointer_only);
1521 template <
typename Result,
typename ArgumentTuple>
1531 template <
typename T>
1540 template <
typename F>
1548 use_Return_instead_of_ReturnRef_to_return_a_value);
1554 template <
typename F>
1561 explicit Impl(T & ref) : ref_(ref) {}
1582 template <
typename T>
1592 template <
typename F>
1601 use_Return_instead_of_ReturnRefOfCopy_to_return_a_value);
1607 template <
typename F>
1614 explicit Impl(
const T & value) : value_(value) {}
1638 template <
typename F>
1644 template <
typename T1,
typename T2>
1650 template <
typename Result,
typename ArgumentTuple>
1663 #if !GTEST_OS_WINDOWS_MOBILE 1667 template <
typename T>
1672 : errno_(errno_value),
1674 template <
typename Result,
typename ArgumentTuple>
1688 #endif // !GTEST_OS_WINDOWS_MOBILE 1694 template <
size_t N,
typename A,
bool kIsProto>
1702 template <
typename Result,
typename ArgumentTuple>
1706 *::std::tr1::get<N>(args) = value_;
1715 template <
size_t N,
typename Proto>
1725 proto_->CopyFrom(proto);
1728 template <
typename Result,
typename ArgumentTuple>
1732 ::std::tr1::get<N>(args)->CopyFrom(*proto_);
1746 template <
typename FunctionImpl>
1753 : function_impl_(function_impl) {}
1757 template <
typename Result,
typename ArgumentTuple>
1758 Result
Perform(
const ArgumentTuple &) {
return function_impl_(); }
1767 template <
class Class,
typename MethodPtr>
1772 : obj_ptr_(obj_ptr), method_ptr_(method_ptr) {}
1774 template <
typename Result,
typename ArgumentTuple>
1777 return (obj_ptr_->*method_ptr_)();
1788 template <
typename A>
1794 template <
typename F>
1814 template <
typename F>
1821 explicit Impl(
const A & action) : action_(action) {}
1826 action_.Perform(args);
1852 template <
typename T>
1861 operator T & ()
const {
return *pointer_; }
1867 template <
typename T>
1876 template <
typename Action1,
typename Action2>
1881 : action1_(action1), action2_(action2) {}
1885 template <
typename F>
1893 template <
typename F>
1902 : action1_(action1), action2_(action2) {}
1904 virtual Result
Perform(
const ArgumentTuple & args)
1906 action1_.Perform(args);
1907 return action2_.Perform(args);
1961 template <
typename To>
1962 template <
typename From>
1964 : impl_(new internal::ActionAdaptor<To, From>(from)) {}
1969 template <
typename R>
1988 template <
typename R>
1997 template <
typename R>
2011 template <
size_t N,
typename T>
2021 #if !((GTEST_GCC_VER_ && GTEST_GCC_VER_ < 40000) || GTEST_OS_SYMBIAN) 2031 N,
const char *,
false > (p));
2040 N,
const wchar_t *,
false > (p));
2045 template <
size_t N,
typename T>
2056 template <
typename T1,
typename T2>
2062 #if !GTEST_OS_WINDOWS_MOBILE 2065 template <
typename T>
2073 #endif // !GTEST_OS_WINDOWS_MOBILE 2078 template <
typename FunctionImpl>
2088 template <
class Class,
typename MethodPtr>
2094 obj_ptr, method_ptr));
2100 template <
typename A>
2113 template <
typename T>
2121 #endif // GMOCK_INCLUDE_GMOCK_GMOCK_ACTIONS_H_ 2159 #ifndef GMOCK_INCLUDE_GMOCK_GMOCK_CARDINALITIES_H_ 2160 #define GMOCK_INCLUDE_GMOCK_GMOCK_CARDINALITIES_H_ 2190 virtual bool IsSatisfiedByCallCount(
int call_count)
const = 0;
2193 virtual bool IsSaturatedByCallCount(
int call_count)
const = 0;
2196 virtual void DescribeTo(::std::ostream * os)
const = 0;
2222 return impl_->IsSatisfiedByCallCount(call_count);
2228 return impl_->IsSaturatedByCallCount(call_count);
2235 return impl_->IsSaturatedByCallCount(call_count) &&
2236 !
impl_->IsSatisfiedByCallCount(call_count);
2243 static void DescribeActualCallCountTo(
int actual_call_count,
2244 ::std::ostream * os);
2273 #endif // GMOCK_INCLUDE_GMOCK_GMOCK_CARDINALITIES_H_ 2311 #ifndef GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_ACTIONS_H_ 2312 #define GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_ACTIONS_H_ 2323 template <
typename Result,
typename ArgumentTuple>
2326 template <
typename R>
2330 template <
typename Function>
2336 template <
class Class,
typename MethodPtr>
2338 MethodPtr method_ptr,
2339 const ::std::tr1::tuple<> &)
2341 return (obj_ptr->*method_ptr)();
2345 template <
typename R,
typename A1>
2349 template <
typename Function>
2353 return function(get<0>(args));
2356 template <
class Class,
typename MethodPtr>
2358 MethodPtr method_ptr,
2359 const ::std::tr1::tuple<A1> & args)
2362 return (obj_ptr->*method_ptr)(get<0>(args));
2366 template <
typename R,
typename A1,
typename A2>
2370 template <
typename Function>
2374 return function(get<0>(args), get<1>(args));
2377 template <
class Class,
typename MethodPtr>
2379 MethodPtr method_ptr,
2380 const ::std::tr1::tuple<A1, A2> & args)
2383 return (obj_ptr->*method_ptr)(get<0>(args), get<1>(args));
2387 template <
typename R,
typename A1,
typename A2,
typename A3>
2391 template <
typename Function>
2396 return function(get<0>(args), get<1>(args), get<2>(args));
2399 template <
class Class,
typename MethodPtr>
2401 MethodPtr method_ptr,
2402 const ::std::tr1::tuple<A1, A2, A3> & args)
2405 return (obj_ptr->*method_ptr)(get<0>(args), get<1>(args), get<2>(args));
2409 template <
typename R,
typename A1,
typename A2,
typename A3,
typename A4>
2413 template <
typename Function>
2418 return function(get<0>(args), get<1>(args), get<2>(args), get<3>(args));
2421 template <
class Class,
typename MethodPtr>
2423 MethodPtr method_ptr,
2424 const ::std::tr1::tuple<A1, A2, A3, A4> & args)
2427 return (obj_ptr->*method_ptr)(get<0>(args), get<1>(args), get<2>(args),
2432 template <
typename R,
typename A1,
typename A2,
typename A3,
typename A4,
2437 template <
typename Function>
2442 return function(get<0>(args), get<1>(args), get<2>(args), get<3>(args),
2446 template <
class Class,
typename MethodPtr>
2448 MethodPtr method_ptr,
2449 const ::std::tr1::tuple<A1, A2, A3, A4, A5> & args)
2452 return (obj_ptr->*method_ptr)(get<0>(args), get<1>(args), get<2>(args),
2453 get<3>(args), get<4>(args));
2457 template <
typename R,
typename A1,
typename A2,
typename A3,
typename A4,
2458 typename A5,
typename A6>
2462 template <
typename Function>
2467 return function(get<0>(args), get<1>(args), get<2>(args), get<3>(args),
2468 get<4>(args), get<5>(args));
2471 template <
class Class,
typename MethodPtr>
2473 MethodPtr method_ptr,
2474 const ::std::tr1::tuple<A1, A2, A3, A4, A5, A6> & args)
2477 return (obj_ptr->*method_ptr)(get<0>(args), get<1>(args), get<2>(args),
2478 get<3>(args), get<4>(args), get<5>(args));
2482 template <
typename R,
typename A1,
typename A2,
typename A3,
typename A4,
2483 typename A5,
typename A6,
typename A7>
2487 template <
typename Function>
2492 return function(get<0>(args), get<1>(args), get<2>(args), get<3>(args),
2493 get<4>(args), get<5>(args), get<6>(args));
2496 template <
class Class,
typename MethodPtr>
2498 MethodPtr method_ptr,
2499 const ::std::tr1::tuple<A1, A2, A3, A4, A5, A6,
2503 return (obj_ptr->*method_ptr)(get<0>(args), get<1>(args), get<2>(args),
2504 get<3>(args), get<4>(args), get<5>(args), get<6>(args));
2508 template <
typename R,
typename A1,
typename A2,
typename A3,
typename A4,
2509 typename A5,
typename A6,
typename A7,
typename A8>
2513 template <
typename Function>
2515 A5, A6, A7, A8> & args)
2518 return function(get<0>(args), get<1>(args), get<2>(args), get<3>(args),
2519 get<4>(args), get<5>(args), get<6>(args), get<7>(args));
2522 template <
class Class,
typename MethodPtr>
2524 MethodPtr method_ptr,
2525 const ::std::tr1::tuple<A1, A2, A3, A4, A5, A6, A7,
2529 return (obj_ptr->*method_ptr)(get<0>(args), get<1>(args), get<2>(args),
2530 get<3>(args), get<4>(args), get<5>(args), get<6>(args), get<7>(args));
2534 template <
typename R,
typename A1,
typename A2,
typename A3,
typename A4,
2535 typename A5,
typename A6,
typename A7,
typename A8,
typename A9>
2539 template <
typename Function>
2541 A5, A6, A7, A8, A9> & args)
2544 return function(get<0>(args), get<1>(args), get<2>(args), get<3>(args),
2545 get<4>(args), get<5>(args), get<6>(args), get<7>(args), get<8>(args));
2548 template <
class Class,
typename MethodPtr>
2550 MethodPtr method_ptr,
2551 const ::std::tr1::tuple<A1, A2, A3, A4, A5, A6, A7, A8,
2555 return (obj_ptr->*method_ptr)(get<0>(args), get<1>(args), get<2>(args),
2556 get<3>(args), get<4>(args), get<5>(args), get<6>(args), get<7>(args),
2561 template <
typename R,
typename A1,
typename A2,
typename A3,
typename A4,
2562 typename A5,
typename A6,
typename A7,
typename A8,
typename A9,
2564 class InvokeHelper<R, ::
std::tr1::tuple<A1, A2, A3, A4, A5, A6, A7, A8, A9,
2568 template <
typename Function>
2570 A5, A6, A7, A8, A9, A10> & args)
2573 return function(get<0>(args), get<1>(args), get<2>(args), get<3>(args),
2574 get<4>(args), get<5>(args), get<6>(args), get<7>(args), get<8>(args),
2578 template <
class Class,
typename MethodPtr>
2580 MethodPtr method_ptr,
2581 const ::std::tr1::tuple<A1, A2, A3, A4, A5, A6, A7, A8,
2585 return (obj_ptr->*method_ptr)(get<0>(args), get<1>(args), get<2>(args),
2586 get<3>(args), get<4>(args), get<5>(args), get<6>(args), get<7>(args),
2587 get<8>(args), get<9>(args));
2601 template <
typename R>
2606 template <
typename Function>
2622 template <
typename Function,
typename A1>
2626 template <
typename Function,
typename A1,
typename A2>
2629 return function(a1, a2);
2633 template <
typename Function,
typename A1,
typename A2,
typename A3>
2636 return function(a1, a2, a3);
2640 template <
typename Function,
typename A1,
typename A2,
typename A3,
2644 return function(a1, a2, a3, a4);
2648 template <
typename Function,
typename A1,
typename A2,
typename A3,
2649 typename A4,
typename A5>
2652 return function(a1, a2, a3, a4, a5);
2656 template <
typename Function,
typename A1,
typename A2,
typename A3,
2657 typename A4,
typename A5,
typename A6>
2660 return function(a1, a2, a3, a4, a5, a6);
2664 template <
typename Function,
typename A1,
typename A2,
typename A3,
2665 typename A4,
typename A5,
typename A6,
typename A7>
2669 return function(a1, a2, a3, a4, a5, a6, a7);
2673 template <
typename Function,
typename A1,
typename A2,
typename A3,
2674 typename A4,
typename A5,
typename A6,
typename A7,
typename A8>
2678 return function(a1, a2, a3, a4, a5, a6, a7, a8);
2682 template <
typename Function,
typename A1,
typename A2,
typename A3,
2683 typename A4,
typename A5,
typename A6,
typename A7,
typename A8,
2686 A7 a7, A8 a8, A9 a9)
2688 return function(a1, a2, a3, a4, a5, a6, a7, a8, a9);
2692 template <
typename Function,
typename A1,
typename A2,
typename A3,
2693 typename A4,
typename A5,
typename A6,
typename A7,
typename A8,
2694 typename A9,
typename A10>
2696 A7 a7, A8 a8, A9 a9, A10 a10)
2698 return function(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10);
2704 #define GMOCK_FIELD_(Tuple, N) \ 2705 typename ::std::tr1::tuple_element<N, Tuple>::type 2726 int k4,
int k5,
int k6,
int k7,
int k8,
int k9,
int k10>
2737 static SelectedArgs
Select(
const ArgumentTuple & args)
2740 return SelectedArgs(get<k1>(args), get<k2>(args), get<k3>(args),
2741 get<k4>(args), get<k5>(args), get<k6>(args), get<k7>(args),
2742 get<k8>(args), get<k9>(args), get<k10>(args));
2746 template <
typename Result,
typename ArgumentTuple>
2748 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 >
2753 static SelectedArgs
Select(
const ArgumentTuple & )
2756 return SelectedArgs();
2760 template <
typename Result,
typename ArgumentTuple,
int k1>
2762 k1, -1, -1, -1, -1, -1, -1, -1, -1, -1 >
2767 static SelectedArgs
Select(
const ArgumentTuple & args)
2770 return SelectedArgs(get<k1>(args));
2774 template <
typename Result,
typename ArgumentTuple,
int k1,
int k2>
2776 k1, k2, -1, -1, -1, -1, -1, -1, -1, -1 >
2782 static SelectedArgs
Select(
const ArgumentTuple & args)
2785 return SelectedArgs(get<k1>(args), get<k2>(args));
2789 template <
typename Result,
typename ArgumentTuple,
int k1,
int k2,
int k3>
2791 k1, k2, k3, -1, -1, -1, -1, -1, -1, -1 >
2797 static SelectedArgs
Select(
const ArgumentTuple & args)
2800 return SelectedArgs(get<k1>(args), get<k2>(args), get<k3>(args));
2807 k1, k2, k3, k4, -1, -1, -1, -1, -1, -1 >
2814 static SelectedArgs
Select(
const ArgumentTuple & args)
2817 return SelectedArgs(get<k1>(args), get<k2>(args), get<k3>(args),
2825 k1, k2, k3, k4, k5, -1, -1, -1, -1, -1 >
2832 static SelectedArgs
Select(
const ArgumentTuple & args)
2835 return SelectedArgs(get<k1>(args), get<k2>(args), get<k3>(args),
2836 get<k4>(args), get<k5>(args));
2841 int k4,
int k5,
int k6>
2843 k1, k2, k3, k4, k5, k6, -1, -1, -1, -1 >
2851 static SelectedArgs
Select(
const ArgumentTuple & args)
2854 return SelectedArgs(get<k1>(args), get<k2>(args), get<k3>(args),
2855 get<k4>(args), get<k5>(args), get<k6>(args));
2860 int k4,
int k5,
int k6,
int k7>
2862 k1, k2, k3, k4, k5, k6, k7, -1, -1, -1 >
2870 static SelectedArgs
Select(
const ArgumentTuple & args)
2873 return SelectedArgs(get<k1>(args), get<k2>(args), get<k3>(args),
2874 get<k4>(args), get<k5>(args), get<k6>(args), get<k7>(args));
2879 int k4,
int k5,
int k6,
int k7,
int k8>
2881 k1, k2, k3, k4, k5, k6, k7, k8, -1, -1 >
2890 static SelectedArgs
Select(
const ArgumentTuple & args)
2893 return SelectedArgs(get<k1>(args), get<k2>(args), get<k3>(args),
2894 get<k4>(args), get<k5>(args), get<k6>(args), get<k7>(args),
2900 int k4,
int k5,
int k6,
int k7,
int k8,
int k9>
2902 k1, k2, k3, k4, k5, k6, k7, k8, k9, -1 >
2911 static SelectedArgs
Select(
const ArgumentTuple & args)
2914 return SelectedArgs(get<k1>(args), get<k2>(args), get<k3>(args),
2915 get<k4>(args), get<k5>(args), get<k6>(args), get<k7>(args),
2916 get<k8>(args), get<k9>(args));
2923 template <
typename InnerAction,
int k1 = -1,
int k2 = -1,
int k3 = -1,
2924 int k4 = -1,
int k5 = -1,
int k6 = -1,
int k7 = -1,
int k8 = -1,
2925 int k9 = -1,
int k10 = -1 >
2931 template <
typename F>
2935 template <
typename F>
2942 explicit Impl(
const InnerAction & action) : action_(action) {}
2944 virtual Result
Perform(
const ArgumentTuple & args)
2946 return action_.Perform(
SelectArgs<Result, ArgumentTuple, k1, k2, k3, k4,
2947 k5, k6, k7, k8, k9, k10>::Select(args));
2979 template <
typename Result,
class Impl>
2986 return impl->template gmock_PerformImpl<>(args,
ExcessiveArg(),
2992 template <
typename A0>
2996 return impl->template gmock_PerformImpl<A0>(args, get<0>(args),
3002 template <
typename A0,
typename A1>
3006 return impl->template gmock_PerformImpl<A0, A1>(args, get<0>(args),
3012 template <
typename A0,
typename A1,
typename A2>
3016 return impl->template gmock_PerformImpl<A0, A1, A2>(args, get<0>(args),
3022 template <
typename A0,
typename A1,
typename A2,
typename A3>
3027 return impl->template gmock_PerformImpl<A0, A1, A2, A3>(args, get<0>(args),
3028 get<1>(args), get<2>(args), get<3>(args),
ExcessiveArg(),
3033 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename A4>
3038 return impl->template gmock_PerformImpl<A0, A1, A2, A3, A4>(args,
3039 get<0>(args), get<1>(args), get<2>(args), get<3>(args), get<4>(args),
3044 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename A4,
3050 return impl->template gmock_PerformImpl<A0, A1, A2, A3, A4, A5>(args,
3051 get<0>(args), get<1>(args), get<2>(args), get<3>(args), get<4>(args),
3056 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename A4,
3057 typename A5,
typename A6>
3062 return impl->template gmock_PerformImpl<A0, A1, A2, A3, A4, A5, A6>(args,
3063 get<0>(args), get<1>(args), get<2>(args), get<3>(args), get<4>(args),
3068 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename A4,
3069 typename A5,
typename A6,
typename A7>
3074 return impl->template gmock_PerformImpl<A0, A1, A2, A3, A4, A5, A6,
3075 A7>(args, get<0>(args), get<1>(args), get<2>(args), get<3>(args),
3076 get<4>(args), get<5>(args), get<6>(args), get<7>(args),
ExcessiveArg(),
3080 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename A4,
3081 typename A5,
typename A6,
typename A7,
typename A8>
3083 A5, A6, A7, A8> & args)
3086 return impl->template gmock_PerformImpl<A0, A1, A2, A3, A4, A5, A6, A7,
3087 A8>(args, get<0>(args), get<1>(args), get<2>(args), get<3>(args),
3088 get<4>(args), get<5>(args), get<6>(args), get<7>(args), get<8>(args),
3092 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename A4,
3093 typename A5,
typename A6,
typename A7,
typename A8,
typename A9>
3095 A5, A6, A7, A8, A9> & args)
3098 return impl->template gmock_PerformImpl<A0, A1, A2, A3, A4, A5, A6, A7, A8,
3099 A9>(args, get<0>(args), get<1>(args), get<2>(args), get<3>(args),
3100 get<4>(args), get<5>(args), get<6>(args), get<7>(args), get<8>(args),
3114 template <
int k1,
typename InnerAction>
3121 template <
int k1,
int k2,
typename InnerAction>
3128 template <
int k1,
int k2,
int k3,
typename InnerAction>
3135 template <
int k1,
int k2,
int k3,
int k4,
typename InnerAction>
3142 template <
int k1,
int k2,
int k3,
int k4,
int k5,
typename InnerAction>
3149 template <
int k1,
int k2,
int k3,
int k4,
int k5,
int k6,
typename InnerAction>
3156 template <
int k1,
int k2,
int k3,
int k4,
int k5,
int k6,
int k7,
3157 typename InnerAction>
3165 template <
int k1,
int k2,
int k3,
int k4,
int k5,
int k6,
int k7,
int k8,
3166 typename InnerAction>
3174 template <
int k1,
int k2,
int k3,
int k4,
int k5,
int k6,
int k7,
int k8,
3175 int k9,
typename InnerAction>
3183 template <
int k1,
int k2,
int k3,
int k4,
int k5,
int k6,
int k7,
int k8,
3184 int k9,
int k10,
typename InnerAction>
3195 template <
typename Action1,
typename Action2>
3202 template <
typename Action1,
typename Action2,
typename Action3>
3205 DoAll(Action1 a1, Action2 a2, Action3 a3)
3210 template <
typename Action1,
typename Action2,
typename Action3,
3214 DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4)
3219 template <
typename Action1,
typename Action2,
typename Action3,
3220 typename Action4,
typename Action5>
3224 DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5)
3229 template <
typename Action1,
typename Action2,
typename Action3,
3230 typename Action4,
typename Action5,
typename Action6>
3234 DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6)
3239 template <
typename Action1,
typename Action2,
typename Action3,
3240 typename Action4,
typename Action5,
typename Action6,
typename Action7>
3245 DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
3248 return DoAll(a1,
DoAll(a2, a3, a4, a5, a6, a7));
3251 template <
typename Action1,
typename Action2,
typename Action3,
3252 typename Action4,
typename Action5,
typename Action6,
typename Action7,
3258 DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
3259 Action7 a7, Action8 a8)
3261 return DoAll(a1,
DoAll(a2, a3, a4, a5, a6, a7, a8));
3264 template <
typename Action1,
typename Action2,
typename Action3,
3265 typename Action4,
typename Action5,
typename Action6,
typename Action7,
3266 typename Action8,
typename Action9>
3271 Action9> > > > > > > >
3272 DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
3273 Action7 a7, Action8 a8, Action9 a9)
3275 return DoAll(a1,
DoAll(a2, a3, a4, a5, a6, a7, a8, a9));
3278 template <
typename Action1,
typename Action2,
typename Action3,
3279 typename Action4,
typename Action5,
typename Action6,
typename Action7,
3280 typename Action8,
typename Action9,
typename Action10>
3286 DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
3287 Action7 a7, Action8 a8, Action9 a9, Action10 a10)
3289 return DoAll(a1,
DoAll(a2, a3, a4, a5, a6, a7, a8, a9, a10));
3391 #define GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_\ 3392 const args_type& args GTEST_ATTRIBUTE_UNUSED_, \ 3393 arg0_type arg0 GTEST_ATTRIBUTE_UNUSED_, \ 3394 arg1_type arg1 GTEST_ATTRIBUTE_UNUSED_, \ 3395 arg2_type arg2 GTEST_ATTRIBUTE_UNUSED_, \ 3396 arg3_type arg3 GTEST_ATTRIBUTE_UNUSED_, \ 3397 arg4_type arg4 GTEST_ATTRIBUTE_UNUSED_, \ 3398 arg5_type arg5 GTEST_ATTRIBUTE_UNUSED_, \ 3399 arg6_type arg6 GTEST_ATTRIBUTE_UNUSED_, \ 3400 arg7_type arg7 GTEST_ATTRIBUTE_UNUSED_, \ 3401 arg8_type arg8 GTEST_ATTRIBUTE_UNUSED_, \ 3402 arg9_type arg9 GTEST_ATTRIBUTE_UNUSED_ 3486 #define GMOCK_INTERNAL_DECL_HAS_1_TEMPLATE_PARAMS(kind0, name0) kind0 name0 3487 #define GMOCK_INTERNAL_DECL_HAS_2_TEMPLATE_PARAMS(kind0, name0, kind1, \ 3488 name1) kind0 name0, kind1 name1 3489 #define GMOCK_INTERNAL_DECL_HAS_3_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ 3490 kind2, name2) kind0 name0, kind1 name1, kind2 name2 3491 #define GMOCK_INTERNAL_DECL_HAS_4_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ 3492 kind2, name2, kind3, name3) kind0 name0, kind1 name1, kind2 name2, \ 3494 #define GMOCK_INTERNAL_DECL_HAS_5_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ 3495 kind2, name2, kind3, name3, kind4, name4) kind0 name0, kind1 name1, \ 3496 kind2 name2, kind3 name3, kind4 name4 3497 #define GMOCK_INTERNAL_DECL_HAS_6_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ 3498 kind2, name2, kind3, name3, kind4, name4, kind5, name5) kind0 name0, \ 3499 kind1 name1, kind2 name2, kind3 name3, kind4 name4, kind5 name5 3500 #define GMOCK_INTERNAL_DECL_HAS_7_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ 3501 kind2, name2, kind3, name3, kind4, name4, kind5, name5, kind6, \ 3502 name6) kind0 name0, kind1 name1, kind2 name2, kind3 name3, kind4 name4, \ 3503 kind5 name5, kind6 name6 3504 #define GMOCK_INTERNAL_DECL_HAS_8_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ 3505 kind2, name2, kind3, name3, kind4, name4, kind5, name5, kind6, name6, \ 3506 kind7, name7) kind0 name0, kind1 name1, kind2 name2, kind3 name3, \ 3507 kind4 name4, kind5 name5, kind6 name6, kind7 name7 3508 #define GMOCK_INTERNAL_DECL_HAS_9_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ 3509 kind2, name2, kind3, name3, kind4, name4, kind5, name5, kind6, name6, \ 3510 kind7, name7, kind8, name8) kind0 name0, kind1 name1, kind2 name2, \ 3511 kind3 name3, kind4 name4, kind5 name5, kind6 name6, kind7 name7, \ 3513 #define GMOCK_INTERNAL_DECL_HAS_10_TEMPLATE_PARAMS(kind0, name0, kind1, \ 3514 name1, kind2, name2, kind3, name3, kind4, name4, kind5, name5, kind6, \ 3515 name6, kind7, name7, kind8, name8, kind9, name9) kind0 name0, \ 3516 kind1 name1, kind2 name2, kind3 name3, kind4 name4, kind5 name5, \ 3517 kind6 name6, kind7 name7, kind8 name8, kind9 name9 3520 #define GMOCK_INTERNAL_LIST_HAS_1_TEMPLATE_PARAMS(kind0, name0) name0 3521 #define GMOCK_INTERNAL_LIST_HAS_2_TEMPLATE_PARAMS(kind0, name0, kind1, \ 3523 #define GMOCK_INTERNAL_LIST_HAS_3_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ 3524 kind2, name2) name0, name1, name2 3525 #define GMOCK_INTERNAL_LIST_HAS_4_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ 3526 kind2, name2, kind3, name3) name0, name1, name2, name3 3527 #define GMOCK_INTERNAL_LIST_HAS_5_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ 3528 kind2, name2, kind3, name3, kind4, name4) name0, name1, name2, name3, \ 3530 #define GMOCK_INTERNAL_LIST_HAS_6_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ 3531 kind2, name2, kind3, name3, kind4, name4, kind5, name5) name0, name1, \ 3532 name2, name3, name4, name5 3533 #define GMOCK_INTERNAL_LIST_HAS_7_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ 3534 kind2, name2, kind3, name3, kind4, name4, kind5, name5, kind6, \ 3535 name6) name0, name1, name2, name3, name4, name5, name6 3536 #define GMOCK_INTERNAL_LIST_HAS_8_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ 3537 kind2, name2, kind3, name3, kind4, name4, kind5, name5, kind6, name6, \ 3538 kind7, name7) name0, name1, name2, name3, name4, name5, name6, name7 3539 #define GMOCK_INTERNAL_LIST_HAS_9_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ 3540 kind2, name2, kind3, name3, kind4, name4, kind5, name5, kind6, name6, \ 3541 kind7, name7, kind8, name8) name0, name1, name2, name3, name4, name5, \ 3543 #define GMOCK_INTERNAL_LIST_HAS_10_TEMPLATE_PARAMS(kind0, name0, kind1, \ 3544 name1, kind2, name2, kind3, name3, kind4, name4, kind5, name5, kind6, \ 3545 name6, kind7, name7, kind8, name8, kind9, name9) name0, name1, name2, \ 3546 name3, name4, name5, name6, name7, name8, name9 3549 #define GMOCK_INTERNAL_DECL_TYPE_AND_0_VALUE_PARAMS() 3550 #define GMOCK_INTERNAL_DECL_TYPE_AND_1_VALUE_PARAMS(p0) , typename p0##_type 3551 #define GMOCK_INTERNAL_DECL_TYPE_AND_2_VALUE_PARAMS(p0, p1) , \ 3552 typename p0##_type, typename p1##_type 3553 #define GMOCK_INTERNAL_DECL_TYPE_AND_3_VALUE_PARAMS(p0, p1, p2) , \ 3554 typename p0##_type, typename p1##_type, typename p2##_type 3555 #define GMOCK_INTERNAL_DECL_TYPE_AND_4_VALUE_PARAMS(p0, p1, p2, p3) , \ 3556 typename p0##_type, typename p1##_type, typename p2##_type, \ 3558 #define GMOCK_INTERNAL_DECL_TYPE_AND_5_VALUE_PARAMS(p0, p1, p2, p3, p4) , \ 3559 typename p0##_type, typename p1##_type, typename p2##_type, \ 3560 typename p3##_type, typename p4##_type 3561 #define GMOCK_INTERNAL_DECL_TYPE_AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, p5) , \ 3562 typename p0##_type, typename p1##_type, typename p2##_type, \ 3563 typename p3##_type, typename p4##_type, typename p5##_type 3564 #define GMOCK_INTERNAL_DECL_TYPE_AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \ 3565 p6) , typename p0##_type, typename p1##_type, typename p2##_type, \ 3566 typename p3##_type, typename p4##_type, typename p5##_type, \ 3568 #define GMOCK_INTERNAL_DECL_TYPE_AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \ 3569 p6, p7) , typename p0##_type, typename p1##_type, typename p2##_type, \ 3570 typename p3##_type, typename p4##_type, typename p5##_type, \ 3571 typename p6##_type, typename p7##_type 3572 #define GMOCK_INTERNAL_DECL_TYPE_AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \ 3573 p6, p7, p8) , typename p0##_type, typename p1##_type, typename p2##_type, \ 3574 typename p3##_type, typename p4##_type, typename p5##_type, \ 3575 typename p6##_type, typename p7##_type, typename p8##_type 3576 #define GMOCK_INTERNAL_DECL_TYPE_AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \ 3577 p6, p7, p8, p9) , typename p0##_type, typename p1##_type, \ 3578 typename p2##_type, typename p3##_type, typename p4##_type, \ 3579 typename p5##_type, typename p6##_type, typename p7##_type, \ 3580 typename p8##_type, typename p9##_type 3583 #define GMOCK_INTERNAL_INIT_AND_0_VALUE_PARAMS()\ 3585 #define GMOCK_INTERNAL_INIT_AND_1_VALUE_PARAMS(p0)\ 3586 (p0##_type gmock_p0) : p0(gmock_p0) 3587 #define GMOCK_INTERNAL_INIT_AND_2_VALUE_PARAMS(p0, p1)\ 3588 (p0##_type gmock_p0, p1##_type gmock_p1) : p0(gmock_p0), p1(gmock_p1) 3589 #define GMOCK_INTERNAL_INIT_AND_3_VALUE_PARAMS(p0, p1, p2)\ 3590 (p0##_type gmock_p0, p1##_type gmock_p1, \ 3591 p2##_type gmock_p2) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2) 3592 #define GMOCK_INTERNAL_INIT_AND_4_VALUE_PARAMS(p0, p1, p2, p3)\ 3593 (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ 3594 p3##_type gmock_p3) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \ 3596 #define GMOCK_INTERNAL_INIT_AND_5_VALUE_PARAMS(p0, p1, p2, p3, p4)\ 3597 (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ 3598 p3##_type gmock_p3, p4##_type gmock_p4) : p0(gmock_p0), p1(gmock_p1), \ 3599 p2(gmock_p2), p3(gmock_p3), p4(gmock_p4) 3600 #define GMOCK_INTERNAL_INIT_AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, p5)\ 3601 (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ 3602 p3##_type gmock_p3, p4##_type gmock_p4, \ 3603 p5##_type gmock_p5) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \ 3604 p3(gmock_p3), p4(gmock_p4), p5(gmock_p5) 3605 #define GMOCK_INTERNAL_INIT_AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6)\ 3606 (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ 3607 p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \ 3608 p6##_type gmock_p6) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \ 3609 p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), p6(gmock_p6) 3610 #define GMOCK_INTERNAL_INIT_AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, p7)\ 3611 (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ 3612 p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \ 3613 p6##_type gmock_p6, p7##_type gmock_p7) : p0(gmock_p0), p1(gmock_p1), \ 3614 p2(gmock_p2), p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), p6(gmock_p6), \ 3616 #define GMOCK_INTERNAL_INIT_AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ 3618 (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ 3619 p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \ 3620 p6##_type gmock_p6, p7##_type gmock_p7, \ 3621 p8##_type gmock_p8) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \ 3622 p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), p6(gmock_p6), p7(gmock_p7), \ 3624 #define GMOCK_INTERNAL_INIT_AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ 3626 (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ 3627 p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \ 3628 p6##_type gmock_p6, p7##_type gmock_p7, p8##_type gmock_p8, \ 3629 p9##_type gmock_p9) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \ 3630 p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), p6(gmock_p6), p7(gmock_p7), \ 3631 p8(gmock_p8), p9(gmock_p9) 3634 #define GMOCK_INTERNAL_DEFN_AND_0_VALUE_PARAMS() 3635 #define GMOCK_INTERNAL_DEFN_AND_1_VALUE_PARAMS(p0) p0##_type p0; 3636 #define GMOCK_INTERNAL_DEFN_AND_2_VALUE_PARAMS(p0, p1) p0##_type p0; \ 3638 #define GMOCK_INTERNAL_DEFN_AND_3_VALUE_PARAMS(p0, p1, p2) p0##_type p0; \ 3639 p1##_type p1; p2##_type p2; 3640 #define GMOCK_INTERNAL_DEFN_AND_4_VALUE_PARAMS(p0, p1, p2, p3) p0##_type p0; \ 3641 p1##_type p1; p2##_type p2; p3##_type p3; 3642 #define GMOCK_INTERNAL_DEFN_AND_5_VALUE_PARAMS(p0, p1, p2, p3, \ 3643 p4) p0##_type p0; p1##_type p1; p2##_type p2; p3##_type p3; p4##_type p4; 3644 #define GMOCK_INTERNAL_DEFN_AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, \ 3645 p5) p0##_type p0; p1##_type p1; p2##_type p2; p3##_type p3; p4##_type p4; \ 3647 #define GMOCK_INTERNAL_DEFN_AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \ 3648 p6) p0##_type p0; p1##_type p1; p2##_type p2; p3##_type p3; p4##_type p4; \ 3649 p5##_type p5; p6##_type p6; 3650 #define GMOCK_INTERNAL_DEFN_AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ 3651 p7) p0##_type p0; p1##_type p1; p2##_type p2; p3##_type p3; p4##_type p4; \ 3652 p5##_type p5; p6##_type p6; p7##_type p7; 3653 #define GMOCK_INTERNAL_DEFN_AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ 3654 p7, p8) p0##_type p0; p1##_type p1; p2##_type p2; p3##_type p3; \ 3655 p4##_type p4; p5##_type p5; p6##_type p6; p7##_type p7; p8##_type p8; 3656 #define GMOCK_INTERNAL_DEFN_AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ 3657 p7, p8, p9) p0##_type p0; p1##_type p1; p2##_type p2; p3##_type p3; \ 3658 p4##_type p4; p5##_type p5; p6##_type p6; p7##_type p7; p8##_type p8; \ 3662 #define GMOCK_INTERNAL_LIST_AND_0_VALUE_PARAMS() 3663 #define GMOCK_INTERNAL_LIST_AND_1_VALUE_PARAMS(p0) p0 3664 #define GMOCK_INTERNAL_LIST_AND_2_VALUE_PARAMS(p0, p1) p0, p1 3665 #define GMOCK_INTERNAL_LIST_AND_3_VALUE_PARAMS(p0, p1, p2) p0, p1, p2 3666 #define GMOCK_INTERNAL_LIST_AND_4_VALUE_PARAMS(p0, p1, p2, p3) p0, p1, p2, p3 3667 #define GMOCK_INTERNAL_LIST_AND_5_VALUE_PARAMS(p0, p1, p2, p3, p4) p0, p1, \ 3669 #define GMOCK_INTERNAL_LIST_AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, p5) p0, \ 3671 #define GMOCK_INTERNAL_LIST_AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \ 3672 p6) p0, p1, p2, p3, p4, p5, p6 3673 #define GMOCK_INTERNAL_LIST_AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ 3674 p7) p0, p1, p2, p3, p4, p5, p6, p7 3675 #define GMOCK_INTERNAL_LIST_AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ 3676 p7, p8) p0, p1, p2, p3, p4, p5, p6, p7, p8 3677 #define GMOCK_INTERNAL_LIST_AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ 3678 p7, p8, p9) p0, p1, p2, p3, p4, p5, p6, p7, p8, p9 3681 #define GMOCK_INTERNAL_LIST_TYPE_AND_0_VALUE_PARAMS() 3682 #define GMOCK_INTERNAL_LIST_TYPE_AND_1_VALUE_PARAMS(p0) , p0##_type 3683 #define GMOCK_INTERNAL_LIST_TYPE_AND_2_VALUE_PARAMS(p0, p1) , p0##_type, \ 3685 #define GMOCK_INTERNAL_LIST_TYPE_AND_3_VALUE_PARAMS(p0, p1, p2) , p0##_type, \ 3686 p1##_type, p2##_type 3687 #define GMOCK_INTERNAL_LIST_TYPE_AND_4_VALUE_PARAMS(p0, p1, p2, p3) , \ 3688 p0##_type, p1##_type, p2##_type, p3##_type 3689 #define GMOCK_INTERNAL_LIST_TYPE_AND_5_VALUE_PARAMS(p0, p1, p2, p3, p4) , \ 3690 p0##_type, p1##_type, p2##_type, p3##_type, p4##_type 3691 #define GMOCK_INTERNAL_LIST_TYPE_AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, p5) , \ 3692 p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, p5##_type 3693 #define GMOCK_INTERNAL_LIST_TYPE_AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \ 3694 p6) , p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, p5##_type, \ 3696 #define GMOCK_INTERNAL_LIST_TYPE_AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \ 3697 p6, p7) , p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \ 3698 p5##_type, p6##_type, p7##_type 3699 #define GMOCK_INTERNAL_LIST_TYPE_AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \ 3700 p6, p7, p8) , p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \ 3701 p5##_type, p6##_type, p7##_type, p8##_type 3702 #define GMOCK_INTERNAL_LIST_TYPE_AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \ 3703 p6, p7, p8, p9) , p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \ 3704 p5##_type, p6##_type, p7##_type, p8##_type, p9##_type 3707 #define GMOCK_INTERNAL_DECL_AND_0_VALUE_PARAMS() 3708 #define GMOCK_INTERNAL_DECL_AND_1_VALUE_PARAMS(p0) p0##_type p0 3709 #define GMOCK_INTERNAL_DECL_AND_2_VALUE_PARAMS(p0, p1) p0##_type p0, \ 3711 #define GMOCK_INTERNAL_DECL_AND_3_VALUE_PARAMS(p0, p1, p2) p0##_type p0, \ 3712 p1##_type p1, p2##_type p2 3713 #define GMOCK_INTERNAL_DECL_AND_4_VALUE_PARAMS(p0, p1, p2, p3) p0##_type p0, \ 3714 p1##_type p1, p2##_type p2, p3##_type p3 3715 #define GMOCK_INTERNAL_DECL_AND_5_VALUE_PARAMS(p0, p1, p2, p3, \ 3716 p4) p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, p4##_type p4 3717 #define GMOCK_INTERNAL_DECL_AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, \ 3718 p5) p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, p4##_type p4, \ 3720 #define GMOCK_INTERNAL_DECL_AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \ 3721 p6) p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, p4##_type p4, \ 3722 p5##_type p5, p6##_type p6 3723 #define GMOCK_INTERNAL_DECL_AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ 3724 p7) p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, p4##_type p4, \ 3725 p5##_type p5, p6##_type p6, p7##_type p7 3726 #define GMOCK_INTERNAL_DECL_AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ 3727 p7, p8) p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, \ 3728 p4##_type p4, p5##_type p5, p6##_type p6, p7##_type p7, p8##_type p8 3729 #define GMOCK_INTERNAL_DECL_AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ 3730 p7, p8, p9) p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, \ 3731 p4##_type p4, p5##_type p5, p6##_type p6, p7##_type p7, p8##_type p8, \ 3735 #define GMOCK_INTERNAL_COUNT_AND_0_VALUE_PARAMS() 3736 #define GMOCK_INTERNAL_COUNT_AND_1_VALUE_PARAMS(p0) P 3737 #define GMOCK_INTERNAL_COUNT_AND_2_VALUE_PARAMS(p0, p1) P2 3738 #define GMOCK_INTERNAL_COUNT_AND_3_VALUE_PARAMS(p0, p1, p2) P3 3739 #define GMOCK_INTERNAL_COUNT_AND_4_VALUE_PARAMS(p0, p1, p2, p3) P4 3740 #define GMOCK_INTERNAL_COUNT_AND_5_VALUE_PARAMS(p0, p1, p2, p3, p4) P5 3741 #define GMOCK_INTERNAL_COUNT_AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, p5) P6 3742 #define GMOCK_INTERNAL_COUNT_AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6) P7 3743 #define GMOCK_INTERNAL_COUNT_AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ 3745 #define GMOCK_INTERNAL_COUNT_AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ 3747 #define GMOCK_INTERNAL_COUNT_AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ 3751 #define GMOCK_ACTION_CLASS_(name, value_params)\ 3752 GTEST_CONCAT_TOKEN_(name##Action, GMOCK_INTERNAL_COUNT_##value_params) 3754 #define ACTION_TEMPLATE(name, template_params, value_params)\ 3755 template <GMOCK_INTERNAL_DECL_##template_params\ 3756 GMOCK_INTERNAL_DECL_TYPE_##value_params>\ 3757 class GMOCK_ACTION_CLASS_(name, value_params) {\ 3759 GMOCK_ACTION_CLASS_(name, value_params)\ 3760 GMOCK_INTERNAL_INIT_##value_params {}\ 3761 template <typename F>\ 3762 class gmock_Impl : public ::testing::ActionInterface<F> {\ 3764 typedef F function_type;\ 3765 typedef typename ::testing::internal::Function<F>::Result return_type;\ 3766 typedef typename ::testing::internal::Function<F>::ArgumentTuple\ 3768 explicit gmock_Impl GMOCK_INTERNAL_INIT_##value_params {}\ 3769 virtual return_type Perform(const args_type& args) {\ 3770 return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\ 3771 Perform(this, args);\ 3773 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 3774 typename arg3_type, typename arg4_type, typename arg5_type, \ 3775 typename arg6_type, typename arg7_type, typename arg8_type, \ 3776 typename arg9_type>\ 3777 return_type gmock_PerformImpl(const args_type& args, arg0_type arg0, \ 3778 arg1_type arg1, arg2_type arg2, arg3_type arg3, arg4_type arg4, \ 3779 arg5_type arg5, arg6_type arg6, arg7_type arg7, arg8_type arg8, \ 3780 arg9_type arg9) const;\ 3781 GMOCK_INTERNAL_DEFN_##value_params\ 3783 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\ 3785 template <typename F> operator ::testing::Action<F>() const {\ 3786 return ::testing::Action<F>(\ 3787 new gmock_Impl<F>(GMOCK_INTERNAL_LIST_##value_params));\ 3789 GMOCK_INTERNAL_DEFN_##value_params\ 3791 GTEST_DISALLOW_ASSIGN_(GMOCK_ACTION_CLASS_(name, value_params));\ 3793 template <GMOCK_INTERNAL_DECL_##template_params\ 3794 GMOCK_INTERNAL_DECL_TYPE_##value_params>\ 3795 inline GMOCK_ACTION_CLASS_(name, value_params)<\ 3796 GMOCK_INTERNAL_LIST_##template_params\ 3797 GMOCK_INTERNAL_LIST_TYPE_##value_params> name(\ 3798 GMOCK_INTERNAL_DECL_##value_params) {\ 3799 return GMOCK_ACTION_CLASS_(name, value_params)<\ 3800 GMOCK_INTERNAL_LIST_##template_params\ 3801 GMOCK_INTERNAL_LIST_TYPE_##value_params>(\ 3802 GMOCK_INTERNAL_LIST_##value_params);\ 3804 template <GMOCK_INTERNAL_DECL_##template_params\ 3805 GMOCK_INTERNAL_DECL_TYPE_##value_params>\ 3806 template <typename F>\ 3807 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 3808 typename arg3_type, typename arg4_type, typename arg5_type, \ 3809 typename arg6_type, typename arg7_type, typename arg8_type, \ 3810 typename arg9_type>\ 3811 typename ::testing::internal::Function<F>::Result\ 3812 GMOCK_ACTION_CLASS_(name, value_params)<\ 3813 GMOCK_INTERNAL_LIST_##template_params\ 3814 GMOCK_INTERNAL_LIST_TYPE_##value_params>::gmock_Impl<F>::\ 3816 GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const 3818 #define ACTION(name)\ 3819 class name##Action {\ 3822 template <typename F>\ 3823 class gmock_Impl : public ::testing::ActionInterface<F> {\ 3825 typedef F function_type;\ 3826 typedef typename ::testing::internal::Function<F>::Result return_type;\ 3827 typedef typename ::testing::internal::Function<F>::ArgumentTuple\ 3830 virtual return_type Perform(const args_type& args) {\ 3831 return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\ 3832 Perform(this, args);\ 3834 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 3835 typename arg3_type, typename arg4_type, typename arg5_type, \ 3836 typename arg6_type, typename arg7_type, typename arg8_type, \ 3837 typename arg9_type>\ 3838 return_type gmock_PerformImpl(const args_type& args, arg0_type arg0, \ 3839 arg1_type arg1, arg2_type arg2, arg3_type arg3, arg4_type arg4, \ 3840 arg5_type arg5, arg6_type arg6, arg7_type arg7, arg8_type arg8, \ 3841 arg9_type arg9) const;\ 3843 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\ 3845 template <typename F> operator ::testing::Action<F>() const {\ 3846 return ::testing::Action<F>(new gmock_Impl<F>());\ 3849 GTEST_DISALLOW_ASSIGN_(name##Action);\ 3851 inline name##Action name() {\ 3852 return name##Action();\ 3854 template <typename F>\ 3855 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 3856 typename arg3_type, typename arg4_type, typename arg5_type, \ 3857 typename arg6_type, typename arg7_type, typename arg8_type, \ 3858 typename arg9_type>\ 3859 typename ::testing::internal::Function<F>::Result\ 3860 name##Action::gmock_Impl<F>::gmock_PerformImpl(\ 3861 GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const 3863 #define ACTION_P(name, p0)\ 3864 template <typename p0##_type>\ 3865 class name##ActionP {\ 3867 name##ActionP(p0##_type gmock_p0) : p0(gmock_p0) {}\ 3868 template <typename F>\ 3869 class gmock_Impl : public ::testing::ActionInterface<F> {\ 3871 typedef F function_type;\ 3872 typedef typename ::testing::internal::Function<F>::Result return_type;\ 3873 typedef typename ::testing::internal::Function<F>::ArgumentTuple\ 3875 explicit gmock_Impl(p0##_type gmock_p0) : p0(gmock_p0) {}\ 3876 virtual return_type Perform(const args_type& args) {\ 3877 return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\ 3878 Perform(this, args);\ 3880 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 3881 typename arg3_type, typename arg4_type, typename arg5_type, \ 3882 typename arg6_type, typename arg7_type, typename arg8_type, \ 3883 typename arg9_type>\ 3884 return_type gmock_PerformImpl(const args_type& args, arg0_type arg0, \ 3885 arg1_type arg1, arg2_type arg2, arg3_type arg3, arg4_type arg4, \ 3886 arg5_type arg5, arg6_type arg6, arg7_type arg7, arg8_type arg8, \ 3887 arg9_type arg9) const;\ 3890 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\ 3892 template <typename F> operator ::testing::Action<F>() const {\ 3893 return ::testing::Action<F>(new gmock_Impl<F>(p0));\ 3897 GTEST_DISALLOW_ASSIGN_(name##ActionP);\ 3899 template <typename p0##_type>\ 3900 inline name##ActionP<p0##_type> name(p0##_type p0) {\ 3901 return name##ActionP<p0##_type>(p0);\ 3903 template <typename p0##_type>\ 3904 template <typename F>\ 3905 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 3906 typename arg3_type, typename arg4_type, typename arg5_type, \ 3907 typename arg6_type, typename arg7_type, typename arg8_type, \ 3908 typename arg9_type>\ 3909 typename ::testing::internal::Function<F>::Result\ 3910 name##ActionP<p0##_type>::gmock_Impl<F>::gmock_PerformImpl(\ 3911 GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const 3913 #define ACTION_P2(name, p0, p1)\ 3914 template <typename p0##_type, typename p1##_type>\ 3915 class name##ActionP2 {\ 3917 name##ActionP2(p0##_type gmock_p0, p1##_type gmock_p1) : p0(gmock_p0), \ 3919 template <typename F>\ 3920 class gmock_Impl : public ::testing::ActionInterface<F> {\ 3922 typedef F function_type;\ 3923 typedef typename ::testing::internal::Function<F>::Result return_type;\ 3924 typedef typename ::testing::internal::Function<F>::ArgumentTuple\ 3926 gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1) : p0(gmock_p0), \ 3928 virtual return_type Perform(const args_type& args) {\ 3929 return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\ 3930 Perform(this, args);\ 3932 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 3933 typename arg3_type, typename arg4_type, typename arg5_type, \ 3934 typename arg6_type, typename arg7_type, typename arg8_type, \ 3935 typename arg9_type>\ 3936 return_type gmock_PerformImpl(const args_type& args, arg0_type arg0, \ 3937 arg1_type arg1, arg2_type arg2, arg3_type arg3, arg4_type arg4, \ 3938 arg5_type arg5, arg6_type arg6, arg7_type arg7, arg8_type arg8, \ 3939 arg9_type arg9) const;\ 3943 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\ 3945 template <typename F> operator ::testing::Action<F>() const {\ 3946 return ::testing::Action<F>(new gmock_Impl<F>(p0, p1));\ 3951 GTEST_DISALLOW_ASSIGN_(name##ActionP2);\ 3953 template <typename p0##_type, typename p1##_type>\ 3954 inline name##ActionP2<p0##_type, p1##_type> name(p0##_type p0, \ 3956 return name##ActionP2<p0##_type, p1##_type>(p0, p1);\ 3958 template <typename p0##_type, typename p1##_type>\ 3959 template <typename F>\ 3960 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 3961 typename arg3_type, typename arg4_type, typename arg5_type, \ 3962 typename arg6_type, typename arg7_type, typename arg8_type, \ 3963 typename arg9_type>\ 3964 typename ::testing::internal::Function<F>::Result\ 3965 name##ActionP2<p0##_type, p1##_type>::gmock_Impl<F>::gmock_PerformImpl(\ 3966 GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const 3968 #define ACTION_P3(name, p0, p1, p2)\ 3969 template <typename p0##_type, typename p1##_type, typename p2##_type>\ 3970 class name##ActionP3 {\ 3972 name##ActionP3(p0##_type gmock_p0, p1##_type gmock_p1, \ 3973 p2##_type gmock_p2) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2) {}\ 3974 template <typename F>\ 3975 class gmock_Impl : public ::testing::ActionInterface<F> {\ 3977 typedef F function_type;\ 3978 typedef typename ::testing::internal::Function<F>::Result return_type;\ 3979 typedef typename ::testing::internal::Function<F>::ArgumentTuple\ 3981 gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, \ 3982 p2##_type gmock_p2) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2) {}\ 3983 virtual return_type Perform(const args_type& args) {\ 3984 return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\ 3985 Perform(this, args);\ 3987 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 3988 typename arg3_type, typename arg4_type, typename arg5_type, \ 3989 typename arg6_type, typename arg7_type, typename arg8_type, \ 3990 typename arg9_type>\ 3991 return_type gmock_PerformImpl(const args_type& args, arg0_type arg0, \ 3992 arg1_type arg1, arg2_type arg2, arg3_type arg3, arg4_type arg4, \ 3993 arg5_type arg5, arg6_type arg6, arg7_type arg7, arg8_type arg8, \ 3994 arg9_type arg9) const;\ 3999 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\ 4001 template <typename F> operator ::testing::Action<F>() const {\ 4002 return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2));\ 4008 GTEST_DISALLOW_ASSIGN_(name##ActionP3);\ 4010 template <typename p0##_type, typename p1##_type, typename p2##_type>\ 4011 inline name##ActionP3<p0##_type, p1##_type, p2##_type> name(p0##_type p0, \ 4012 p1##_type p1, p2##_type p2) {\ 4013 return name##ActionP3<p0##_type, p1##_type, p2##_type>(p0, p1, p2);\ 4015 template <typename p0##_type, typename p1##_type, typename p2##_type>\ 4016 template <typename F>\ 4017 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 4018 typename arg3_type, typename arg4_type, typename arg5_type, \ 4019 typename arg6_type, typename arg7_type, typename arg8_type, \ 4020 typename arg9_type>\ 4021 typename ::testing::internal::Function<F>::Result\ 4022 name##ActionP3<p0##_type, p1##_type, \ 4023 p2##_type>::gmock_Impl<F>::gmock_PerformImpl(\ 4024 GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const 4026 #define ACTION_P4(name, p0, p1, p2, p3)\ 4027 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 4028 typename p3##_type>\ 4029 class name##ActionP4 {\ 4031 name##ActionP4(p0##_type gmock_p0, p1##_type gmock_p1, \ 4032 p2##_type gmock_p2, p3##_type gmock_p3) : p0(gmock_p0), p1(gmock_p1), \ 4033 p2(gmock_p2), p3(gmock_p3) {}\ 4034 template <typename F>\ 4035 class gmock_Impl : public ::testing::ActionInterface<F> {\ 4037 typedef F function_type;\ 4038 typedef typename ::testing::internal::Function<F>::Result return_type;\ 4039 typedef typename ::testing::internal::Function<F>::ArgumentTuple\ 4041 gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ 4042 p3##_type gmock_p3) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \ 4044 virtual return_type Perform(const args_type& args) {\ 4045 return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\ 4046 Perform(this, args);\ 4048 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 4049 typename arg3_type, typename arg4_type, typename arg5_type, \ 4050 typename arg6_type, typename arg7_type, typename arg8_type, \ 4051 typename arg9_type>\ 4052 return_type gmock_PerformImpl(const args_type& args, arg0_type arg0, \ 4053 arg1_type arg1, arg2_type arg2, arg3_type arg3, arg4_type arg4, \ 4054 arg5_type arg5, arg6_type arg6, arg7_type arg7, arg8_type arg8, \ 4055 arg9_type arg9) const;\ 4061 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\ 4063 template <typename F> operator ::testing::Action<F>() const {\ 4064 return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2, p3));\ 4071 GTEST_DISALLOW_ASSIGN_(name##ActionP4);\ 4073 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 4074 typename p3##_type>\ 4075 inline name##ActionP4<p0##_type, p1##_type, p2##_type, \ 4076 p3##_type> name(p0##_type p0, p1##_type p1, p2##_type p2, \ 4078 return name##ActionP4<p0##_type, p1##_type, p2##_type, p3##_type>(p0, p1, \ 4081 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 4082 typename p3##_type>\ 4083 template <typename F>\ 4084 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 4085 typename arg3_type, typename arg4_type, typename arg5_type, \ 4086 typename arg6_type, typename arg7_type, typename arg8_type, \ 4087 typename arg9_type>\ 4088 typename ::testing::internal::Function<F>::Result\ 4089 name##ActionP4<p0##_type, p1##_type, p2##_type, \ 4090 p3##_type>::gmock_Impl<F>::gmock_PerformImpl(\ 4091 GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const 4093 #define ACTION_P5(name, p0, p1, p2, p3, p4)\ 4094 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 4095 typename p3##_type, typename p4##_type>\ 4096 class name##ActionP5 {\ 4098 name##ActionP5(p0##_type gmock_p0, p1##_type gmock_p1, \ 4099 p2##_type gmock_p2, p3##_type gmock_p3, \ 4100 p4##_type gmock_p4) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \ 4101 p3(gmock_p3), p4(gmock_p4) {}\ 4102 template <typename F>\ 4103 class gmock_Impl : public ::testing::ActionInterface<F> {\ 4105 typedef F function_type;\ 4106 typedef typename ::testing::internal::Function<F>::Result return_type;\ 4107 typedef typename ::testing::internal::Function<F>::ArgumentTuple\ 4109 gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ 4110 p3##_type gmock_p3, p4##_type gmock_p4) : p0(gmock_p0), \ 4111 p1(gmock_p1), p2(gmock_p2), p3(gmock_p3), p4(gmock_p4) {}\ 4112 virtual return_type Perform(const args_type& args) {\ 4113 return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\ 4114 Perform(this, args);\ 4116 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 4117 typename arg3_type, typename arg4_type, typename arg5_type, \ 4118 typename arg6_type, typename arg7_type, typename arg8_type, \ 4119 typename arg9_type>\ 4120 return_type gmock_PerformImpl(const args_type& args, arg0_type arg0, \ 4121 arg1_type arg1, arg2_type arg2, arg3_type arg3, arg4_type arg4, \ 4122 arg5_type arg5, arg6_type arg6, arg7_type arg7, arg8_type arg8, \ 4123 arg9_type arg9) const;\ 4130 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\ 4132 template <typename F> operator ::testing::Action<F>() const {\ 4133 return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2, p3, p4));\ 4141 GTEST_DISALLOW_ASSIGN_(name##ActionP5);\ 4143 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 4144 typename p3##_type, typename p4##_type>\ 4145 inline name##ActionP5<p0##_type, p1##_type, p2##_type, p3##_type, \ 4146 p4##_type> name(p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, \ 4148 return name##ActionP5<p0##_type, p1##_type, p2##_type, p3##_type, \ 4149 p4##_type>(p0, p1, p2, p3, p4);\ 4151 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 4152 typename p3##_type, typename p4##_type>\ 4153 template <typename F>\ 4154 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 4155 typename arg3_type, typename arg4_type, typename arg5_type, \ 4156 typename arg6_type, typename arg7_type, typename arg8_type, \ 4157 typename arg9_type>\ 4158 typename ::testing::internal::Function<F>::Result\ 4159 name##ActionP5<p0##_type, p1##_type, p2##_type, p3##_type, \ 4160 p4##_type>::gmock_Impl<F>::gmock_PerformImpl(\ 4161 GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const 4163 #define ACTION_P6(name, p0, p1, p2, p3, p4, p5)\ 4164 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 4165 typename p3##_type, typename p4##_type, typename p5##_type>\ 4166 class name##ActionP6 {\ 4168 name##ActionP6(p0##_type gmock_p0, p1##_type gmock_p1, \ 4169 p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \ 4170 p5##_type gmock_p5) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \ 4171 p3(gmock_p3), p4(gmock_p4), p5(gmock_p5) {}\ 4172 template <typename F>\ 4173 class gmock_Impl : public ::testing::ActionInterface<F> {\ 4175 typedef F function_type;\ 4176 typedef typename ::testing::internal::Function<F>::Result return_type;\ 4177 typedef typename ::testing::internal::Function<F>::ArgumentTuple\ 4179 gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ 4180 p3##_type gmock_p3, p4##_type gmock_p4, \ 4181 p5##_type gmock_p5) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \ 4182 p3(gmock_p3), p4(gmock_p4), p5(gmock_p5) {}\ 4183 virtual return_type Perform(const args_type& args) {\ 4184 return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\ 4185 Perform(this, args);\ 4187 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 4188 typename arg3_type, typename arg4_type, typename arg5_type, \ 4189 typename arg6_type, typename arg7_type, typename arg8_type, \ 4190 typename arg9_type>\ 4191 return_type gmock_PerformImpl(const args_type& args, arg0_type arg0, \ 4192 arg1_type arg1, arg2_type arg2, arg3_type arg3, arg4_type arg4, \ 4193 arg5_type arg5, arg6_type arg6, arg7_type arg7, arg8_type arg8, \ 4194 arg9_type arg9) const;\ 4202 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\ 4204 template <typename F> operator ::testing::Action<F>() const {\ 4205 return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2, p3, p4, p5));\ 4214 GTEST_DISALLOW_ASSIGN_(name##ActionP6);\ 4216 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 4217 typename p3##_type, typename p4##_type, typename p5##_type>\ 4218 inline name##ActionP6<p0##_type, p1##_type, p2##_type, p3##_type, \ 4219 p4##_type, p5##_type> name(p0##_type p0, p1##_type p1, p2##_type p2, \ 4220 p3##_type p3, p4##_type p4, p5##_type p5) {\ 4221 return name##ActionP6<p0##_type, p1##_type, p2##_type, p3##_type, \ 4222 p4##_type, p5##_type>(p0, p1, p2, p3, p4, p5);\ 4224 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 4225 typename p3##_type, typename p4##_type, typename p5##_type>\ 4226 template <typename F>\ 4227 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 4228 typename arg3_type, typename arg4_type, typename arg5_type, \ 4229 typename arg6_type, typename arg7_type, typename arg8_type, \ 4230 typename arg9_type>\ 4231 typename ::testing::internal::Function<F>::Result\ 4232 name##ActionP6<p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \ 4233 p5##_type>::gmock_Impl<F>::gmock_PerformImpl(\ 4234 GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const 4236 #define ACTION_P7(name, p0, p1, p2, p3, p4, p5, p6)\ 4237 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 4238 typename p3##_type, typename p4##_type, typename p5##_type, \ 4239 typename p6##_type>\ 4240 class name##ActionP7 {\ 4242 name##ActionP7(p0##_type gmock_p0, p1##_type gmock_p1, \ 4243 p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \ 4244 p5##_type gmock_p5, p6##_type gmock_p6) : p0(gmock_p0), p1(gmock_p1), \ 4245 p2(gmock_p2), p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), \ 4247 template <typename F>\ 4248 class gmock_Impl : public ::testing::ActionInterface<F> {\ 4250 typedef F function_type;\ 4251 typedef typename ::testing::internal::Function<F>::Result return_type;\ 4252 typedef typename ::testing::internal::Function<F>::ArgumentTuple\ 4254 gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ 4255 p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \ 4256 p6##_type gmock_p6) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \ 4257 p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), p6(gmock_p6) {}\ 4258 virtual return_type Perform(const args_type& args) {\ 4259 return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\ 4260 Perform(this, args);\ 4262 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 4263 typename arg3_type, typename arg4_type, typename arg5_type, \ 4264 typename arg6_type, typename arg7_type, typename arg8_type, \ 4265 typename arg9_type>\ 4266 return_type gmock_PerformImpl(const args_type& args, arg0_type arg0, \ 4267 arg1_type arg1, arg2_type arg2, arg3_type arg3, arg4_type arg4, \ 4268 arg5_type arg5, arg6_type arg6, arg7_type arg7, arg8_type arg8, \ 4269 arg9_type arg9) const;\ 4278 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\ 4280 template <typename F> operator ::testing::Action<F>() const {\ 4281 return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2, p3, p4, p5, \ 4292 GTEST_DISALLOW_ASSIGN_(name##ActionP7);\ 4294 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 4295 typename p3##_type, typename p4##_type, typename p5##_type, \ 4296 typename p6##_type>\ 4297 inline name##ActionP7<p0##_type, p1##_type, p2##_type, p3##_type, \ 4298 p4##_type, p5##_type, p6##_type> name(p0##_type p0, p1##_type p1, \ 4299 p2##_type p2, p3##_type p3, p4##_type p4, p5##_type p5, \ 4301 return name##ActionP7<p0##_type, p1##_type, p2##_type, p3##_type, \ 4302 p4##_type, p5##_type, p6##_type>(p0, p1, p2, p3, p4, p5, p6);\ 4304 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 4305 typename p3##_type, typename p4##_type, typename p5##_type, \ 4306 typename p6##_type>\ 4307 template <typename F>\ 4308 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 4309 typename arg3_type, typename arg4_type, typename arg5_type, \ 4310 typename arg6_type, typename arg7_type, typename arg8_type, \ 4311 typename arg9_type>\ 4312 typename ::testing::internal::Function<F>::Result\ 4313 name##ActionP7<p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \ 4314 p5##_type, p6##_type>::gmock_Impl<F>::gmock_PerformImpl(\ 4315 GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const 4317 #define ACTION_P8(name, p0, p1, p2, p3, p4, p5, p6, p7)\ 4318 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 4319 typename p3##_type, typename p4##_type, typename p5##_type, \ 4320 typename p6##_type, typename p7##_type>\ 4321 class name##ActionP8 {\ 4323 name##ActionP8(p0##_type gmock_p0, p1##_type gmock_p1, \ 4324 p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \ 4325 p5##_type gmock_p5, p6##_type gmock_p6, \ 4326 p7##_type gmock_p7) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \ 4327 p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), p6(gmock_p6), \ 4329 template <typename F>\ 4330 class gmock_Impl : public ::testing::ActionInterface<F> {\ 4332 typedef F function_type;\ 4333 typedef typename ::testing::internal::Function<F>::Result return_type;\ 4334 typedef typename ::testing::internal::Function<F>::ArgumentTuple\ 4336 gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ 4337 p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \ 4338 p6##_type gmock_p6, p7##_type gmock_p7) : p0(gmock_p0), \ 4339 p1(gmock_p1), p2(gmock_p2), p3(gmock_p3), p4(gmock_p4), \ 4340 p5(gmock_p5), p6(gmock_p6), p7(gmock_p7) {}\ 4341 virtual return_type Perform(const args_type& args) {\ 4342 return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\ 4343 Perform(this, args);\ 4345 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 4346 typename arg3_type, typename arg4_type, typename arg5_type, \ 4347 typename arg6_type, typename arg7_type, typename arg8_type, \ 4348 typename arg9_type>\ 4349 return_type gmock_PerformImpl(const args_type& args, arg0_type arg0, \ 4350 arg1_type arg1, arg2_type arg2, arg3_type arg3, arg4_type arg4, \ 4351 arg5_type arg5, arg6_type arg6, arg7_type arg7, arg8_type arg8, \ 4352 arg9_type arg9) const;\ 4362 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\ 4364 template <typename F> operator ::testing::Action<F>() const {\ 4365 return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2, p3, p4, p5, \ 4377 GTEST_DISALLOW_ASSIGN_(name##ActionP8);\ 4379 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 4380 typename p3##_type, typename p4##_type, typename p5##_type, \ 4381 typename p6##_type, typename p7##_type>\ 4382 inline name##ActionP8<p0##_type, p1##_type, p2##_type, p3##_type, \ 4383 p4##_type, p5##_type, p6##_type, p7##_type> name(p0##_type p0, \ 4384 p1##_type p1, p2##_type p2, p3##_type p3, p4##_type p4, p5##_type p5, \ 4385 p6##_type p6, p7##_type p7) {\ 4386 return name##ActionP8<p0##_type, p1##_type, p2##_type, p3##_type, \ 4387 p4##_type, p5##_type, p6##_type, p7##_type>(p0, p1, p2, p3, p4, p5, \ 4390 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 4391 typename p3##_type, typename p4##_type, typename p5##_type, \ 4392 typename p6##_type, typename p7##_type>\ 4393 template <typename F>\ 4394 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 4395 typename arg3_type, typename arg4_type, typename arg5_type, \ 4396 typename arg6_type, typename arg7_type, typename arg8_type, \ 4397 typename arg9_type>\ 4398 typename ::testing::internal::Function<F>::Result\ 4399 name##ActionP8<p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \ 4400 p5##_type, p6##_type, \ 4401 p7##_type>::gmock_Impl<F>::gmock_PerformImpl(\ 4402 GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const 4404 #define ACTION_P9(name, p0, p1, p2, p3, p4, p5, p6, p7, p8)\ 4405 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 4406 typename p3##_type, typename p4##_type, typename p5##_type, \ 4407 typename p6##_type, typename p7##_type, typename p8##_type>\ 4408 class name##ActionP9 {\ 4410 name##ActionP9(p0##_type gmock_p0, p1##_type gmock_p1, \ 4411 p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \ 4412 p5##_type gmock_p5, p6##_type gmock_p6, p7##_type gmock_p7, \ 4413 p8##_type gmock_p8) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \ 4414 p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), p6(gmock_p6), p7(gmock_p7), \ 4416 template <typename F>\ 4417 class gmock_Impl : public ::testing::ActionInterface<F> {\ 4419 typedef F function_type;\ 4420 typedef typename ::testing::internal::Function<F>::Result return_type;\ 4421 typedef typename ::testing::internal::Function<F>::ArgumentTuple\ 4423 gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ 4424 p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \ 4425 p6##_type gmock_p6, p7##_type gmock_p7, \ 4426 p8##_type gmock_p8) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \ 4427 p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), p6(gmock_p6), \ 4428 p7(gmock_p7), p8(gmock_p8) {}\ 4429 virtual return_type Perform(const args_type& args) {\ 4430 return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\ 4431 Perform(this, args);\ 4433 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 4434 typename arg3_type, typename arg4_type, typename arg5_type, \ 4435 typename arg6_type, typename arg7_type, typename arg8_type, \ 4436 typename arg9_type>\ 4437 return_type gmock_PerformImpl(const args_type& args, arg0_type arg0, \ 4438 arg1_type arg1, arg2_type arg2, arg3_type arg3, arg4_type arg4, \ 4439 arg5_type arg5, arg6_type arg6, arg7_type arg7, arg8_type arg8, \ 4440 arg9_type arg9) const;\ 4451 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\ 4453 template <typename F> operator ::testing::Action<F>() const {\ 4454 return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2, p3, p4, p5, \ 4467 GTEST_DISALLOW_ASSIGN_(name##ActionP9);\ 4469 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 4470 typename p3##_type, typename p4##_type, typename p5##_type, \ 4471 typename p6##_type, typename p7##_type, typename p8##_type>\ 4472 inline name##ActionP9<p0##_type, p1##_type, p2##_type, p3##_type, \ 4473 p4##_type, p5##_type, p6##_type, p7##_type, \ 4474 p8##_type> name(p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, \ 4475 p4##_type p4, p5##_type p5, p6##_type p6, p7##_type p7, \ 4477 return name##ActionP9<p0##_type, p1##_type, p2##_type, p3##_type, \ 4478 p4##_type, p5##_type, p6##_type, p7##_type, p8##_type>(p0, p1, p2, \ 4479 p3, p4, p5, p6, p7, p8);\ 4481 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 4482 typename p3##_type, typename p4##_type, typename p5##_type, \ 4483 typename p6##_type, typename p7##_type, typename p8##_type>\ 4484 template <typename F>\ 4485 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 4486 typename arg3_type, typename arg4_type, typename arg5_type, \ 4487 typename arg6_type, typename arg7_type, typename arg8_type, \ 4488 typename arg9_type>\ 4489 typename ::testing::internal::Function<F>::Result\ 4490 name##ActionP9<p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \ 4491 p5##_type, p6##_type, p7##_type, \ 4492 p8##_type>::gmock_Impl<F>::gmock_PerformImpl(\ 4493 GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const 4495 #define ACTION_P10(name, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9)\ 4496 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 4497 typename p3##_type, typename p4##_type, typename p5##_type, \ 4498 typename p6##_type, typename p7##_type, typename p8##_type, \ 4499 typename p9##_type>\ 4500 class name##ActionP10 {\ 4502 name##ActionP10(p0##_type gmock_p0, p1##_type gmock_p1, \ 4503 p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \ 4504 p5##_type gmock_p5, p6##_type gmock_p6, p7##_type gmock_p7, \ 4505 p8##_type gmock_p8, p9##_type gmock_p9) : p0(gmock_p0), p1(gmock_p1), \ 4506 p2(gmock_p2), p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), p6(gmock_p6), \ 4507 p7(gmock_p7), p8(gmock_p8), p9(gmock_p9) {}\ 4508 template <typename F>\ 4509 class gmock_Impl : public ::testing::ActionInterface<F> {\ 4511 typedef F function_type;\ 4512 typedef typename ::testing::internal::Function<F>::Result return_type;\ 4513 typedef typename ::testing::internal::Function<F>::ArgumentTuple\ 4515 gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ 4516 p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \ 4517 p6##_type gmock_p6, p7##_type gmock_p7, p8##_type gmock_p8, \ 4518 p9##_type gmock_p9) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \ 4519 p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), p6(gmock_p6), \ 4520 p7(gmock_p7), p8(gmock_p8), p9(gmock_p9) {}\ 4521 virtual return_type Perform(const args_type& args) {\ 4522 return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\ 4523 Perform(this, args);\ 4525 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 4526 typename arg3_type, typename arg4_type, typename arg5_type, \ 4527 typename arg6_type, typename arg7_type, typename arg8_type, \ 4528 typename arg9_type>\ 4529 return_type gmock_PerformImpl(const args_type& args, arg0_type arg0, \ 4530 arg1_type arg1, arg2_type arg2, arg3_type arg3, arg4_type arg4, \ 4531 arg5_type arg5, arg6_type arg6, arg7_type arg7, arg8_type arg8, \ 4532 arg9_type arg9) const;\ 4544 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\ 4546 template <typename F> operator ::testing::Action<F>() const {\ 4547 return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2, p3, p4, p5, \ 4561 GTEST_DISALLOW_ASSIGN_(name##ActionP10);\ 4563 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 4564 typename p3##_type, typename p4##_type, typename p5##_type, \ 4565 typename p6##_type, typename p7##_type, typename p8##_type, \ 4566 typename p9##_type>\ 4567 inline name##ActionP10<p0##_type, p1##_type, p2##_type, p3##_type, \ 4568 p4##_type, p5##_type, p6##_type, p7##_type, p8##_type, \ 4569 p9##_type> name(p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, \ 4570 p4##_type p4, p5##_type p5, p6##_type p6, p7##_type p7, p8##_type p8, \ 4572 return name##ActionP10<p0##_type, p1##_type, p2##_type, p3##_type, \ 4573 p4##_type, p5##_type, p6##_type, p7##_type, p8##_type, p9##_type>(p0, \ 4574 p1, p2, p3, p4, p5, p6, p7, p8, p9);\ 4576 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 4577 typename p3##_type, typename p4##_type, typename p5##_type, \ 4578 typename p6##_type, typename p7##_type, typename p8##_type, \ 4579 typename p9##_type>\ 4580 template <typename F>\ 4581 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 4582 typename arg3_type, typename arg4_type, typename arg5_type, \ 4583 typename arg6_type, typename arg7_type, typename arg8_type, \ 4584 typename arg9_type>\ 4585 typename ::testing::internal::Function<F>::Result\ 4586 name##ActionP10<p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \ 4587 p5##_type, p6##_type, p7##_type, p8##_type, \ 4588 p9##_type>::gmock_Impl<F>::gmock_PerformImpl(\ 4589 GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const 4600 # pragma warning(push) 4601 # pragma warning(disable:4100) 4635 HAS_1_TEMPLATE_PARAMS(
int, k),
4636 AND_0_VALUE_PARAMS())
4639 ::std::tr1::get<k>(args));
4643 HAS_1_TEMPLATE_PARAMS(
int, k),
4644 AND_1_VALUE_PARAMS(p0))
4647 ::std::tr1::get<k>(args), p0);
4651 HAS_1_TEMPLATE_PARAMS(
int, k),
4652 AND_2_VALUE_PARAMS(p0, p1))
4655 ::std::tr1::get<k>(args), p0, p1);
4659 HAS_1_TEMPLATE_PARAMS(
int, k),
4660 AND_3_VALUE_PARAMS(p0, p1, p2))
4663 ::std::tr1::get<k>(args), p0, p1, p2);
4667 HAS_1_TEMPLATE_PARAMS(
int, k),
4668 AND_4_VALUE_PARAMS(p0, p1, p2, p3))
4671 ::std::tr1::get<k>(args), p0, p1, p2, p3);
4675 HAS_1_TEMPLATE_PARAMS(
int, k),
4676 AND_5_VALUE_PARAMS(p0, p1, p2, p3, p4))
4679 ::std::tr1::get<k>(args), p0, p1, p2, p3, p4);
4683 HAS_1_TEMPLATE_PARAMS(
int, k),
4684 AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, p5))
4687 ::std::tr1::get<k>(args), p0, p1, p2, p3, p4, p5);
4691 HAS_1_TEMPLATE_PARAMS(
int, k),
4692 AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6))
4695 ::std::tr1::get<k>(args), p0, p1, p2, p3, p4, p5, p6);
4699 HAS_1_TEMPLATE_PARAMS(
int, k),
4700 AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, p7))
4703 ::std::tr1::get<k>(args), p0, p1, p2, p3, p4, p5, p6, p7);
4707 HAS_1_TEMPLATE_PARAMS(
int, k),
4708 AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, p7, p8))
4711 ::std::tr1::get<k>(args), p0, p1, p2, p3, p4, p5, p6, p7, p8);
4715 HAS_1_TEMPLATE_PARAMS(
int, k),
4716 AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9))
4719 ::std::tr1::get<k>(args), p0, p1, p2, p3, p4, p5, p6, p7, p8, p9);
4728 HAS_1_TEMPLATE_PARAMS(
typename, T),
4729 AND_0_VALUE_PARAMS())
4735 HAS_1_TEMPLATE_PARAMS(
typename, T),
4736 AND_1_VALUE_PARAMS(p0))
4742 HAS_1_TEMPLATE_PARAMS(
typename, T),
4743 AND_2_VALUE_PARAMS(p0, p1))
4745 return new T(p0, p1);
4749 HAS_1_TEMPLATE_PARAMS(
typename, T),
4750 AND_3_VALUE_PARAMS(p0, p1, p2))
4752 return new T(p0, p1, p2);
4756 HAS_1_TEMPLATE_PARAMS(
typename, T),
4757 AND_4_VALUE_PARAMS(p0, p1, p2, p3))
4759 return new T(p0, p1, p2, p3);
4763 HAS_1_TEMPLATE_PARAMS(
typename, T),
4764 AND_5_VALUE_PARAMS(p0, p1, p2, p3, p4))
4766 return new T(p0, p1, p2, p3, p4);
4770 HAS_1_TEMPLATE_PARAMS(
typename, T),
4771 AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, p5))
4773 return new T(p0, p1, p2, p3, p4, p5);
4777 HAS_1_TEMPLATE_PARAMS(
typename, T),
4778 AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6))
4780 return new T(p0, p1, p2, p3, p4, p5, p6);
4784 HAS_1_TEMPLATE_PARAMS(
typename, T),
4785 AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, p7))
4787 return new T(p0, p1, p2, p3, p4, p5, p6, p7);
4791 HAS_1_TEMPLATE_PARAMS(
typename, T),
4792 AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, p7, p8))
4794 return new T(p0, p1, p2, p3, p4, p5, p6, p7, p8);
4798 HAS_1_TEMPLATE_PARAMS(
typename, T),
4799 AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9))
4801 return new T(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9);
4805 # pragma warning(pop) 4810 #endif // GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_ACTIONS_H_ 4850 #ifndef GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_FUNCTION_MOCKERS_H_ 4851 #define GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_FUNCTION_MOCKERS_H_ 4912 #ifndef GMOCK_INCLUDE_GMOCK_GMOCK_SPEC_BUILDERS_H_ 4913 #define GMOCK_INCLUDE_GMOCK_GMOCK_SPEC_BUILDERS_H_ 4921 #if GTEST_HAS_EXCEPTIONS 4922 # include <stdexcept> 4962 #ifndef GMOCK_INCLUDE_GMOCK_GMOCK_MATCHERS_H_ 4963 #define GMOCK_INCLUDE_GMOCK_GMOCK_MATCHERS_H_ 4966 #include <algorithm> 4976 #if GTEST_LANG_CXX11 4977 #include <initializer_list> 5013 template <
typename T>
5016 if (stream_ != NULL)
5023 ::std::ostream *
stream() {
return stream_; }
5053 virtual void DescribeTo(::std::ostream * os)
const = 0;
5070 template <
typename T>
5159 template <
typename T>
5167 return impl_->MatchAndExplain(x, listener);
5174 return MatchAndExplain(x, &dummy);
5183 impl_->DescribeNegationTo(os);
5190 MatchAndExplain(x, &listener);
5232 template <
typename T>
5243 : internal::MatcherBase<T>(impl) {}
5261 : internal::MatcherBase<const internal::
string & >(impl) {}
5279 : internal::MatcherBase<internal::
string>(impl) {}
5289 #if GTEST_HAS_STRING_PIECE_ 5294 class GTEST_API_ Matcher<const StringPiece &>
5308 Matcher(
const char * s);
5311 Matcher(StringPiece s);
5329 Matcher(
const char * s);
5332 Matcher(StringPiece s);
5334 #endif // GTEST_HAS_STRING_PIECE_ 5348 template <
class Impl>
5362 template <
typename T>
5369 template <
typename T>
5377 impl_.DescribeTo(os);
5382 impl_.DescribeNegationTo(os);
5387 return impl_.MatchAndExplain(x, listener);
5408 template <
typename T>
5421 template <
class Impl>
5442 template <
typename T,
typename M>
5462 polymorphic_matcher_or_value,
5487 return polymorphic_matcher_or_value;
5494 template <
typename T,
typename U>
5508 : source_matcher_(source_matcher) {}
5513 return source_matcher_.MatchAndExplain(static_cast<U>(x), listener);
5518 source_matcher_.DescribeTo(os);
5523 source_matcher_.DescribeNegationTo(os);
5535 template <
typename T>
5548 template <
typename T,
typename M>
5561 template <
typename T>
5567 template <
typename M>
5582 template <
typename U>
5587 T_must_be_implicitly_convertible_to_U);
5592 cannot_convert_non_referentce_arg_to_reference);
5600 kTIsOther || kUIsOther ||
5601 (internal::LosslessArithmeticConvertible<RawT, RawU>::value),
5602 conversion_of_arithmetic_types_must_be_lossless);
5603 return MatcherCast<T>(matcher);
5607 template <
typename T,
typename M>
5614 template <
typename T>
5624 ::std::ostream * os)
5626 if (explanation !=
"" && os != NULL)
5628 *os <<
", " << explanation;
5639 return (type_name.length() <= 20 ||
5640 type_name.find_first_of(
"<(") == string::npos);
5648 template <
typename Value,
typename T>
5656 return matcher.
Matches(value);
5664 const string & type_name = GetTypeName<Value>();
5667 { *listener->
stream() <<
" (of type " << type_name <<
")"; }
5684 template <
typename MatcherTuple,
typename ValueTuple>
5686 const ValueTuple & value_tuple)
5690 &&
get < N - 1 > (matcher_tuple).
Matches(get < N - 1 > (value_tuple));
5697 template <
typename MatcherTuple,
typename ValueTuple>
5699 const ValueTuple & values,
5700 ::std::ostream * os)
5702 using ::std::tr1::tuple_element;
5706 TuplePrefix < N - 1 >::ExplainMatchFailuresTo(matchers, values, os);
5710 typename tuple_element < N - 1,
MatcherTuple >::type matcher =
5711 get < N - 1 > (matchers);
5712 typedef typename tuple_element < N - 1, ValueTuple >::type
Value;
5713 Value value =
get < N - 1 > (values);
5716 if (!matcher.MatchAndExplain(value, &listener))
5720 *os <<
" Expected arg #" << N - 1 <<
": ";
5721 get < N - 1 > (matchers).DescribeTo(os);
5722 *os <<
"\n Actual: ";
5740 template <
typename MatcherTuple,
typename ValueTuple>
5742 const ValueTuple & )
5747 template <
typename MatcherTuple,
typename ValueTuple>
5749 const ValueTuple & ,
5750 ::std::ostream * ) {}
5758 template <
typename MatcherTuple,
typename ValueTuple>
5760 const ValueTuple & value_tuple)
5762 using ::std::tr1::tuple_size;
5766 tuple_size<ValueTuple>::value,
5767 matcher_and_value_have_different_numbers_of_fields);
5769 Matches(matcher_tuple, value_tuple);
5774 template <
typename MatcherTuple,
typename ValueTuple>
5776 const ValueTuple & values,
5777 ::std::ostream * os)
5779 using ::std::tr1::tuple_size;
5781 matchers, values, os);
5788 template <
typename Tuple,
typename Func,
typename OutIter>
5797 static OutIter
Run(Func f,
const Tuple & t, OutIter out)
5803 template <
typename Tup,
size_t kRemainingSize>
5808 *out++ = f(::std::tr1::get < TupleSize::value - kRemainingSize > (t));
5812 template <
typename Tup>
5825 template <
typename Tuple,
typename Func,
typename OutIter>
5832 template <
typename T>
5838 virtual void DescribeTo(::std::ostream * os)
const { *os <<
"is anything"; }
5844 *os <<
"never matches";
5855 template <
typename T>
5872 #define GMOCK_IMPLEMENT_COMPARISON_MATCHER_( \ 5873 name, op, relation, negated_relation) \ 5874 template <typename Rhs> class name##Matcher { \ 5876 explicit name##Matcher(const Rhs& rhs) : rhs_(rhs) {} \ 5877 template <typename Lhs> \ 5878 operator Matcher<Lhs>() const { \ 5879 return MakeMatcher(new Impl<Lhs>(rhs_)); \ 5882 template <typename Lhs> \ 5883 class Impl : public MatcherInterface<Lhs> { \ 5885 explicit Impl(const Rhs& rhs) : rhs_(rhs) {} \ 5886 virtual bool MatchAndExplain(\ 5887 Lhs lhs, MatchResultListener* ) const { \ 5888 return lhs op rhs_; \ 5890 virtual void DescribeTo(::std::ostream* os) const { \ 5891 *os << relation " "; \ 5892 UniversalPrint(rhs_, os); \ 5894 virtual void DescribeNegationTo(::std::ostream* os) const { \ 5895 *os << negated_relation " "; \ 5896 UniversalPrint(rhs_, os); \ 5900 GTEST_DISALLOW_ASSIGN_(Impl); \ 5903 GTEST_DISALLOW_ASSIGN_(name##Matcher); \ 5915 #undef GMOCK_IMPLEMENT_COMPARISON_MATCHER_ 5922 template <
typename Po
inter>
5932 *os <<
"isn't NULL";
5941 template <
typename Po
inter>
5948 void DescribeTo(::std::ostream * os)
const { *os <<
"isn't NULL"; }
5968 template <
typename T>
5971 template <
typename T>
5985 template <
typename Super>
5997 template <
typename Super>
6001 explicit Impl(Super & x) : object_(x) {}
6008 *listener <<
"which is located @" <<
static_cast<const void *
>(&x);
6009 return &x == &object_;
6014 *os <<
"references the variable ";
6020 *os <<
"does not reference the variable ";
6042 const wchar_t * rhs)
6044 return String::CaseInsensitiveWideCStringEquals(lhs, rhs);
6049 template <
typename StringType>
6051 const StringType & s2)
6060 const typename StringType::value_type nul = 0;
6061 const size_t i1 = s1.find(nul), i2 = s2.find(nul);
6064 if (i1 == StringType::npos || i2 == StringType::npos)
6076 template <
typename StringType>
6081 bool case_sensitive)
6082 : string_(str), expect_eq_(expect_eq), case_sensitive_(case_sensitive) {}
6089 template <
typename CharType>
6097 return MatchAndExplain(StringType(s), listener);
6104 template <
typename MatcheeStringType>
6108 const StringType & s2(s);
6109 const bool eq = case_sensitive_ ? s2 == string_ :
6111 return expect_eq_ == eq;
6116 DescribeToHelper(expect_eq_, os);
6121 DescribeToHelper(!expect_eq_, os);
6127 *os << (expect_eq ?
"is " :
"isn't ");
6130 if (!case_sensitive_)
6132 *os <<
"(ignoring case) ";
6148 template <
typename StringType>
6153 : substring_(substring) {}
6160 template <
typename CharType>
6163 return s != NULL && MatchAndExplain(StringType(s), listener);
6170 template <
typename MatcheeStringType>
6174 const StringType & s2(s);
6175 return s2.find(substring_) != StringType::npos;
6181 *os <<
"has substring ";
6187 *os <<
"has no substring ";
6200 template <
typename StringType>
6213 template <
typename CharType>
6216 return s != NULL && MatchAndExplain(StringType(s), listener);
6223 template <
typename MatcheeStringType>
6227 const StringType & s2(s);
6228 return s2.length() >= prefix_.length() &&
6229 s2.substr(0, prefix_.length()) == prefix_;
6234 *os <<
"starts with ";
6240 *os <<
"doesn't start with ";
6253 template <
typename StringType>
6264 template <
typename CharType>
6267 return s != NULL && MatchAndExplain(StringType(s), listener);
6274 template <
typename MatcheeStringType>
6278 const StringType & s2(s);
6279 return s2.length() >= suffix_.length() &&
6280 s2.substr(s2.length() - suffix_.length()) == suffix_;
6285 *os <<
"ends with ";
6291 *os <<
"doesn't end with ";
6308 : regex_(regex), full_match_(full_match) {}
6315 template <
typename CharType>
6325 template <
class MatcheeStringType>
6330 return full_match_ ? RE::FullMatch(s2, *regex_) :
6331 RE::PartialMatch(s2, *regex_);
6336 *os << (full_match_ ?
"matches" :
"contains")
6337 <<
" regular expression ";
6343 *os <<
"doesn't " << (full_match_ ?
"match" :
"contain")
6344 <<
" regular expression ";
6366 #define GMOCK_IMPLEMENT_COMPARISON2_MATCHER_(name, op, relation) \ 6367 class name##2Matcher { \ 6369 template <typename T1, typename T2> \ 6370 operator Matcher< ::std::tr1::tuple<T1, T2> >() const { \ 6371 return MakeMatcher(new Impl< ::std::tr1::tuple<T1, T2> >); \ 6373 template <typename T1, typename T2> \ 6374 operator Matcher<const ::std::tr1::tuple<T1, T2>&>() const { \ 6375 return MakeMatcher(new Impl<const ::std::tr1::tuple<T1, T2>&>); \ 6378 template <typename Tuple> \ 6379 class Impl : public MatcherInterface<Tuple> { \ 6381 virtual bool MatchAndExplain( \ 6383 MatchResultListener* ) const { \ 6384 return ::std::tr1::get<0>(args) op ::std::tr1::get<1>(args); \ 6386 virtual void DescribeTo(::std::ostream* os) const { \ 6387 *os << "are " relation; \ 6389 virtual void DescribeNegationTo(::std::ostream* os) const { \ 6390 *os << "aren't " relation; \ 6398 Ge, >=,
"a pair where the first >= the second");
6400 Gt, >,
"a pair where the first > the second");
6402 Le, <=,
"a pair where the first <= the second");
6404 Lt, <,
"a pair where the first < the second");
6407 #undef GMOCK_IMPLEMENT_COMPARISON2_MATCHER_ 6413 template <
typename T>
6418 : matcher_(matcher) {}
6422 return !matcher_.MatchAndExplain(x, listener);
6427 matcher_.DescribeNegationTo(os);
6432 matcher_.DescribeTo(os);
6443 template <
typename InnerMatcher>
6451 template <
typename T>
6467 template <
typename T>
6472 : matcher1_(matcher1), matcher2_(matcher2) {}
6477 matcher1_.DescribeTo(os);
6479 matcher2_.DescribeTo(os);
6486 matcher1_.DescribeNegationTo(os);
6488 matcher2_.DescribeNegationTo(os);
6498 if (!matcher1_.MatchAndExplain(x, &listener1))
6500 *listener << listener1.
str();
6506 if (!matcher2_.MatchAndExplain(x, &listener2))
6508 *listener << listener2.
str();
6527 *listener <<
", and " << s2;
6541 #if GTEST_LANG_CXX11 6549 template <
int kSize,
typename Head,
typename... Tail>
6552 typedef MatcherList < kSize - 1, Tail... > MatcherListTail;
6553 typedef ::std::pair<Head, typename MatcherListTail::ListType> ListType;
6559 static ListType BuildList(
const Head & matcher,
const Tail & ... tail)
6561 return ListType(matcher, MatcherListTail::BuildList(tail...));
6568 template <
typename T,
template <
typename >
class CombiningMatcher>
6569 static Matcher<T> CreateMatcher(const ListType & matchers)
6572 SafeMatcherCast<T>(matchers.first),
6573 MatcherListTail::template CreateMatcher<T, CombiningMatcher>(
6580 template <
typename Matcher1,
typename Matcher2>
6581 struct MatcherList<2, Matcher1, Matcher2>
6583 typedef ::std::pair<Matcher1, Matcher2> ListType;
6585 static ListType BuildList(
const Matcher1 & matcher1,
6586 const Matcher2 & matcher2)
6588 return ::std::pair<Matcher1, Matcher2>(matcher1, matcher2);
6591 template <
typename T,
template <
typename >
class CombiningMatcher>
6592 static Matcher<T> CreateMatcher(const ListType & matchers)
6595 SafeMatcherCast<T>(matchers.first),
6596 SafeMatcherCast<T>(matchers.second)));
6604 template <
template <
typename T>
class CombiningMatcher,
typename...
Args>
6605 class VariadicMatcher
6608 VariadicMatcher(
const Args & ... matchers)
6609 : matchers_(MatcherListType::BuildList(matchers...)) {}
6614 template <
typename T>
6617 return MatcherListType::template CreateMatcher<T, CombiningMatcher>(
6622 typedef MatcherList<
sizeof...(Args),
Args...> MatcherListType;
6624 const typename MatcherListType::ListType matchers_;
6629 template <
typename...
Args>
6632 #endif // GTEST_LANG_CXX11 6636 template <
typename Matcher1,
typename Matcher2>
6641 : matcher1_(matcher1), matcher2_(matcher2) {}
6646 template <
typename T>
6650 SafeMatcherCast<T>(matcher2_)));
6664 template <
typename T>
6669 : matcher1_(matcher1), matcher2_(matcher2) {}
6674 matcher1_.DescribeTo(os);
6676 matcher2_.DescribeTo(os);
6683 matcher1_.DescribeNegationTo(os);
6685 matcher2_.DescribeNegationTo(os);
6695 if (matcher1_.MatchAndExplain(x, &listener1))
6697 *listener << listener1.
str();
6703 if (matcher2_.MatchAndExplain(x, &listener2))
6705 *listener << listener2.
str();
6724 *listener <<
", and " << s2;
6738 #if GTEST_LANG_CXX11 6740 template <
typename...
Args>
6743 #endif // GTEST_LANG_CXX11 6748 template <
typename Matcher1,
typename Matcher2>
6753 : matcher1_(matcher1), matcher2_(matcher2) {}
6758 template <
typename T>
6762 SafeMatcherCast<T>(matcher1_), SafeMatcherCast<T>(matcher2_)));
6774 template <
typename Predicate>
6784 template <
typename T>
6802 *os <<
"satisfies the given predicate";
6807 *os <<
"doesn't satisfy the given predicate";
6818 template <
typename M>
6830 template <
typename T>
6847 return MatcherCast<const T &>(matcher_).
Matches(x);
6858 template <
typename M>
6867 template <
typename T>
6887 ::std::stringstream ss;
6888 ss <<
"Value of: " << value_text <<
"\n" 6891 ss <<
"\n Actual: " << listener.str();
6904 template <
typename M>
6915 template <
typename FloatType>
6926 rhs_(rhs), nan_eq_nan_(nan_eq_nan), max_abs_error_(-1)
6934 rhs_(rhs), nan_eq_nan_(nan_eq_nan), max_abs_error_(max_abs_error)
6937 <<
", where max_abs_error is" << max_abs_error;
6941 template <
typename T>
6945 Impl(FloatType rhs,
bool nan_eq_nan, FloatType max_abs_error) :
6946 rhs_(rhs), nan_eq_nan_(nan_eq_nan), max_abs_error_(max_abs_error) {}
6954 if (lhs.is_nan() || rhs.
is_nan())
6956 if (lhs.is_nan() && rhs.
is_nan())
6965 if (HasMaxAbsError())
6971 return value == rhs_ || fabs(value - rhs_) <= max_abs_error_;
6976 return lhs.AlmostEquals(rhs);
6985 const ::std::streamsize old_precision = os->precision(
6986 ::std::numeric_limits<FloatType>::digits10 + 2);
6997 *os <<
"never matches";
7003 *os <<
"is approximately " << rhs_;
7005 if (HasMaxAbsError())
7007 *os <<
" (absolute error <= " << max_abs_error_ <<
")";
7011 os->precision(old_precision);
7017 const ::std::streamsize old_precision = os->precision(
7018 ::std::numeric_limits<FloatType>::digits10 + 2);
7029 *os <<
"is anything";
7035 *os <<
"isn't approximately " << rhs_;
7037 if (HasMaxAbsError())
7039 *os <<
" (absolute error > " << max_abs_error_ <<
")";
7044 os->precision(old_precision);
7050 return max_abs_error_ >= 0;
7094 template <
typename InnerMatcher>
7108 template <
typename Po
inter>
7116 template <
typename Po
inter>
7123 explicit Impl(
const InnerMatcher & matcher)
7124 : matcher_(
MatcherCast<const Pointee & >(matcher)) {}
7128 *os <<
"points to a value that ";
7129 matcher_.DescribeTo(os);
7134 *os <<
"does not point to a value that ";
7135 matcher_.DescribeTo(os);
7144 *listener <<
"which points to ";
7161 template <
typename Class,
typename FieldType>
7167 : field_(field), matcher_(matcher) {}
7171 *os <<
"is an object whose given field ";
7172 matcher_.DescribeTo(os);
7177 *os <<
"is an object whose given field ";
7178 matcher_.DescribeNegationTo(os);
7181 template <
typename T>
7184 return MatchAndExplainImpl(
7185 typename ::testing::internal::
7197 *listener <<
"whose given field is ";
7207 *listener <<
"which points to an object ";
7211 return MatchAndExplainImpl(
false_type(), *p, listener);
7222 template <
typename Class,
typename PropertyType>
7234 : property_(property), matcher_(matcher) {}
7238 *os <<
"is an object whose given property ";
7239 matcher_.DescribeTo(os);
7244 *os <<
"is an object whose given property ";
7245 matcher_.DescribeNegationTo(os);
7248 template <
typename T>
7251 return MatchAndExplainImpl(
7252 typename ::testing::internal::
7264 *listener <<
"whose given property is ";
7267 RefToConstProperty result = (obj.*property_)();
7277 *listener <<
"which points to an object ";
7281 return MatchAndExplainImpl(
false_type(), *p, listener);
7284 PropertyType(Class::*property_)()
const;
7294 template <
typename Functor>
7301 template <
typename T>
7302 static ResultType
Invoke(Functor f, T
arg) {
return f(arg); }
7306 template <
typename ArgType,
typename ResType>
7310 typedef ResType(*StorageType)(ArgType);
7315 <<
"NULL function pointer is passed into ResultOf().";
7317 template <
typename T>
7326 template <
typename Callable>
7333 : callable_(callable), matcher_(matcher)
7338 template <
typename T>
7347 template <
typename T>
7352 : callable_(callable), matcher_(matcher) {}
7356 *os <<
"is mapped by the given callable to a value that ";
7357 matcher_.DescribeTo(os);
7362 *os <<
"is mapped by the given callable to a value that ";
7363 matcher_.DescribeNegationTo(os);
7368 *listener <<
"which is mapped by the given callable to ";
7395 template <
typename SizeMatcher>
7400 : size_matcher_(size_matcher)
7404 template <
typename Container>
7410 template <
typename Container>
7416 typedef typename ContainerView::type::size_type
SizeType;
7417 explicit Impl(
const SizeMatcher & size_matcher)
7418 : size_matcher_(
MatcherCast<SizeType>(size_matcher)) {}
7423 size_matcher_.DescribeTo(os);
7428 size_matcher_.DescribeNegationTo(os);
7434 SizeType size = container.size();
7436 const bool result = size_matcher_.MatchAndExplain(size, &size_listener);
7438 <<
"whose size " << size << (result ?
" matches" :
" doesn't match");
7463 template <
typename Container>
7488 *os <<
"does not equal ";
7492 template <
typename LhsContainer>
7500 typedef typename LhsView::type LhsStlContainer;
7501 StlContainerReference lhs_stl_container = LhsView::ConstReference(lhs);
7503 if (lhs_stl_container == rhs_)
7506 ::std::ostream *
const os = listener->
stream();
7511 bool printed_header =
false;
7513 for (
typename LhsStlContainer::const_iterator it =
7514 lhs_stl_container.begin();
7515 it != lhs_stl_container.end(); ++it)
7527 *os <<
"which has these unexpected elements: ";
7528 printed_header =
true;
7536 bool printed_header2 =
false;
7538 for (
typename StlContainer::const_iterator it = rhs_.begin();
7539 it != rhs_.end(); ++it)
7542 lhs_stl_container.begin(), lhs_stl_container.end(), *it) ==
7543 lhs_stl_container.end())
7545 if (printed_header2)
7552 *os << (printed_header ?
",\nand" :
"which")
7553 <<
" doesn't have these expected elements: ";
7554 printed_header2 =
true;
7574 template <
typename T,
typename U>
7575 bool operator()(
const T & lhs,
const U & rhs)
const {
return lhs < rhs; }
7579 template <
typename Comparator,
typename ContainerMatcher>
7584 const ContainerMatcher & matcher)
7585 : comparator_(comparator), matcher_(matcher) {}
7587 template <
typename LhsContainer>
7593 template <
typename LhsContainer>
7606 Impl(
const Comparator & comparator,
const ContainerMatcher & matcher)
7607 : comparator_(comparator), matcher_(matcher) {}
7611 *os <<
"(when sorted) ";
7612 matcher_.DescribeTo(os);
7617 *os <<
"(when sorted) ";
7618 matcher_.DescribeNegationTo(os);
7624 LhsStlContainerReference lhs_stl_container = LhsView::ConstReference(lhs);
7625 ::std::vector<LhsValue> sorted_container(lhs_stl_container.begin(),
7626 lhs_stl_container.end());
7628 sorted_container.begin(), sorted_container.end(), comparator_);
7634 return matcher_.Matches(sorted_container);
7637 *listener <<
"which is ";
7639 *listener <<
" when sorted";
7642 const bool match = matcher_.MatchAndExplain(sorted_container,
7666 template <
typename TupleMatcher,
typename RhsContainer>
7677 : tuple_matcher_(tuple_matcher), rhs_(RhsView::Copy(rhs))
7685 template <
typename LhsContainer>
7691 template <
typename LhsContainer>
7706 Impl(
const TupleMatcher & tuple_matcher,
const RhsStlContainer & rhs)
7708 : mono_tuple_matcher_(
SafeMatcherCast<InnerMatcherArg>(tuple_matcher)),
7713 *os <<
"contains " << rhs_.size()
7714 <<
" values, where each value and its corresponding value in ";
7717 mono_tuple_matcher_.DescribeTo(os);
7721 *os <<
"doesn't contain exactly " << rhs_.size()
7722 <<
" values, or contains a value x at some index i" 7723 <<
" where x and the i-th value of ";
7726 mono_tuple_matcher_.DescribeNegationTo(os);
7732 LhsStlContainerReference lhs_stl_container = LhsView::ConstReference(lhs);
7733 const size_t actual_size = lhs_stl_container.size();
7735 if (actual_size != rhs_.size())
7737 *listener <<
"which contains " << actual_size <<
" values";
7741 typename LhsStlContainer::const_iterator left = lhs_stl_container.begin();
7742 typename RhsStlContainer::const_iterator right = rhs_.begin();
7744 for (
size_t i = 0; i != actual_size; ++i, ++left, ++right)
7746 const InnerMatcherArg value_pair(*left, *right);
7752 if (!mono_tuple_matcher_.MatchAndExplain(
7753 value_pair, &inner_listener))
7755 *listener <<
"where the value pair (";
7759 *listener <<
") at index #" << i <<
" don't match";
7767 if (!mono_tuple_matcher_.Matches(value_pair))
7790 template <
typename Container>
7798 typedef typename StlContainer::value_type
Element;
7800 template <
typename InnerMatcher>
7809 Container container,
7812 StlContainerReference stl_container = View::ConstReference(container);
7815 for (
typename StlContainer::const_iterator it = stl_container.begin();
7816 it != stl_container.end(); ++it, ++i)
7819 const bool matches = inner_matcher_.MatchAndExplain(*it, &inner_listener);
7821 if (matches != all_elements_should_match)
7823 *listener <<
"whose element #" << i
7824 << (matches ?
" matches" :
" doesn't match");
7826 return !all_elements_should_match;
7830 return all_elements_should_match;
7841 template <
typename Container>
7845 template <
typename InnerMatcher>
7852 *os <<
"contains at least one element that ";
7853 this->inner_matcher_.DescribeTo(os);
7858 *os <<
"doesn't contain any element that ";
7859 this->inner_matcher_.DescribeTo(os);
7865 return this->MatchAndExplainImpl(
false, container, listener);
7874 template <
typename Container>
7878 template <
typename InnerMatcher>
7885 *os <<
"only contains elements that ";
7886 this->inner_matcher_.DescribeTo(os);
7891 *os <<
"contains some element that ";
7892 this->inner_matcher_.DescribeNegationTo(os);
7898 return this->MatchAndExplainImpl(
true, container, listener);
7906 template <
typename M>
7912 template <
typename Container>
7925 template <
typename M>
7931 template <
typename Container>
7947 template <
typename PairType>
7954 template <
typename InnerMatcher>
7966 const bool match = inner_matcher_.MatchAndExplain(key_value.first,
7970 if (explanation !=
"")
7972 *listener <<
"whose first field is a value " << explanation;
7981 *os <<
"has a key that ";
7982 inner_matcher_.DescribeTo(os);
7988 *os <<
"doesn't have a key that ";
7989 inner_matcher_.DescribeTo(os);
7999 template <
typename M>
8005 template <
typename PairType>
8019 template <
typename PairType>
8027 template <
typename FirstMatcher,
typename SecondMatcher>
8039 *os <<
"has a first field that ";
8040 first_matcher_.DescribeTo(os);
8041 *os <<
", and has a second field that ";
8042 second_matcher_.DescribeTo(os);
8048 *os <<
"has a first field that ";
8049 first_matcher_.DescribeNegationTo(os);
8050 *os <<
", or has a second field that ";
8051 second_matcher_.DescribeNegationTo(os);
8063 return first_matcher_.Matches(a_pair.first) &&
8064 second_matcher_.Matches(a_pair.second);
8069 if (!first_matcher_.MatchAndExplain(a_pair.first,
8070 &first_inner_listener))
8072 *listener <<
"whose first field does not match";
8079 if (!second_matcher_.MatchAndExplain(a_pair.second,
8080 &second_inner_listener))
8082 *listener <<
"whose second field does not match";
8087 ExplainSuccess(first_inner_listener.
str(), second_inner_listener.
str(),
8097 *listener <<
"whose both fields match";
8099 if (first_explanation !=
"")
8101 *listener <<
", where the first field is a value " << first_explanation;
8104 if (second_explanation !=
"")
8108 if (first_explanation !=
"")
8110 *listener <<
"and ";
8115 *listener <<
"where ";
8118 *listener <<
"the second field is a value " << second_explanation;
8129 template <
typename FirstMatcher,
typename SecondMatcher>
8134 : first_matcher_(first_matcher), second_matcher_(second_matcher) {}
8136 template <
typename PairType>
8141 first_matcher_, second_matcher_));
8152 template <
typename Container>
8160 typedef typename StlContainer::value_type
Element;
8164 template <
typename InputIter>
8167 while (first != last)
8169 matchers_.push_back(MatcherCast<const Element &>(*first++));
8181 else if (
count() == 1)
8183 *os <<
"has 1 element that ";
8184 matchers_[0].DescribeTo(os);
8189 *os <<
"has " << Elements(
count()) <<
" where\n";
8191 for (
size_t i = 0; i !=
count(); ++i)
8193 *os <<
"element #" << i <<
" ";
8194 matchers_[i].DescribeTo(os);
8196 if (i + 1 <
count())
8209 *os <<
"isn't empty";
8213 *os <<
"doesn't have " << Elements(
count()) <<
", or\n";
8215 for (
size_t i = 0; i !=
count(); ++i)
8217 *os <<
"element #" << i <<
" ";
8218 matchers_[i].DescribeNegationTo(os);
8220 if (i + 1 <
count())
8233 const bool listener_interested = listener->
IsInterested();
8236 ::std::vector<internal::string> explanations(
count());
8237 StlContainerReference stl_container = View::ConstReference(container);
8238 typename StlContainer::const_iterator it = stl_container.begin();
8239 size_t exam_pos = 0;
8240 bool mismatch_found =
false;
8245 for (; it != stl_container.end() && exam_pos !=
count(); ++it, ++exam_pos)
8249 if (listener_interested)
8252 match = matchers_[exam_pos].MatchAndExplain(*it, &s);
8253 explanations[exam_pos] = s.
str();
8258 match = matchers_[exam_pos].Matches(*it);
8263 mismatch_found =
true;
8273 size_t actual_count = exam_pos;
8275 for (; it != stl_container.end(); ++it)
8280 if (actual_count !=
count())
8286 if (listener_interested && (actual_count != 0))
8288 *listener <<
"which has " << Elements(actual_count);
8297 if (listener_interested)
8299 *listener <<
"whose element #" << exam_pos <<
" doesn't match";
8308 if (listener_interested)
8310 bool reason_printed =
false;
8312 for (
size_t i = 0; i !=
count(); ++i)
8320 *listener <<
",\nand ";
8323 *listener <<
"whose element #" << i <<
" matches, " << s;
8324 reason_printed =
true;
8335 return Message() << count << (count == 1 ?
" element" :
" elements");
8338 size_t count()
const {
return matchers_.size(); }
8353 : num_elements_(num_elements),
8354 num_matchers_(num_matchers),
8355 matched_(num_elements_ * num_matchers_, 0)
8363 return matched_[SpaceIndex(ilhs, irhs)] == 1;
8367 matched_[SpaceIndex(ilhs, irhs)] = b ? 1 : 0;
8377 string DebugString()
const;
8382 return ilhs * num_matchers_ + irhs;
8417 void DescribeToImpl(::std::ostream * os)
const;
8420 void DescribeNegationToImpl(::std::ostream * os)
const;
8422 bool VerifyAllElementsAndMatchersAreMatched(
8423 const ::std::vector<string> & element_printouts,
8429 return matcher_describers_;
8434 return Message() << n <<
" element" << (n == 1 ?
"" :
"s");
8444 template <
typename Container>
8455 typedef typename StlContainer::value_type
Element;
8459 template <
typename InputIter>
8462 for (; first != last; ++first)
8464 matchers_.push_back(MatcherCast<const Element &>(*first));
8465 matcher_describers().push_back(matchers_.back().GetDescriber());
8472 return UnorderedElementsAreMatcherImplBase::DescribeToImpl(os);
8478 return UnorderedElementsAreMatcherImplBase::DescribeNegationToImpl(os);
8484 StlContainerReference stl_container = View::ConstReference(container);
8485 ::std::vector<string> element_printouts;
8486 MatchMatrix matrix = AnalyzeElements(stl_container.begin(),
8487 stl_container.end(),
8491 const size_t actual_count = matrix.
LhsSize();
8493 if (actual_count == 0 && matchers_.empty())
8498 if (actual_count != matchers_.size())
8506 *listener <<
"which has " << Elements(actual_count);
8512 return VerifyAllElementsAndMatchersAreMatched(element_printouts,
8513 matrix, listener) &&
8520 template <
typename ElementIter>
8522 ::std::vector<string> * element_printouts,
8525 element_printouts->clear();
8526 ::std::vector<char> did_match;
8527 size_t num_elements = 0;
8529 for (; elem_first != elem_last; ++num_elements, ++elem_first)
8536 for (
size_t irhs = 0; irhs != matchers_.size(); ++irhs)
8538 did_match.push_back(
Matches(matchers_[irhs])(*elem_first));
8542 MatchMatrix matrix(num_elements, matchers_.size());
8543 ::std::vector<char>::const_iterator did_match_iter = did_match.begin();
8545 for (
size_t ilhs = 0; ilhs != num_elements; ++ilhs)
8547 for (
size_t irhs = 0; irhs != matchers_.size(); ++irhs)
8549 matrix.
SetEdge(ilhs, irhs, *did_match_iter++ != 0);
8563 template <
typename Target>
8566 template <
typename Arg>
8569 return MatcherCast<Target>(a);
8574 template <
typename MatcherTuple>
8579 : matchers_(args) {}
8581 template <
typename Container>
8586 typedef typename View::value_type Element;
8587 typedef ::std::vector<Matcher<const Element &> > MatcherVec;
8588 MatcherVec matchers;
8591 ::std::back_inserter(matchers));
8593 matchers.begin(), matchers.end()));
8602 template <
typename MatcherTuple>
8608 template <
typename Container>
8613 typedef typename View::value_type Element;
8614 typedef ::std::vector<Matcher<const Element &> > MatcherVec;
8615 MatcherVec matchers;
8618 ::std::back_inserter(matchers));
8620 matchers.begin(), matchers.end()));
8629 template <
typename T>
8635 template <
typename Iter>
8637 : matchers_(first, last) {}
8639 template <
typename Container>
8654 template <
typename T>
8658 template <
typename Iter>
8661 template <
typename Container>
8665 matchers_.begin(), matchers_.end()));
8680 const char * matcher_name,
8681 const Strings & param_values);
8700 template <
typename Iter>
8702 typename ::std::iterator_traits<Iter>::value_type >
8705 typedef typename ::std::iterator_traits<Iter>::value_type T;
8709 template <
typename T>
8711 const T * pointer,
size_t count)
8716 template <
typename T,
size_t N>
8723 template <
typename T,
typename A>
8725 const ::std::vector<T, A> & vec)
8730 #if GTEST_LANG_CXX11 8731 template <
typename T>
8747 template <
typename Iter>
8749 typename ::std::iterator_traits<Iter>::value_type >
8752 typedef typename ::std::iterator_traits<Iter>::value_type T;
8756 template <
typename T>
8763 template <
typename T,
size_t N>
8770 template <
typename T,
typename A>
8777 #if GTEST_LANG_CXX11 8778 template <
typename T>
8797 template <
typename T>
8801 template <
typename T>
8807 template <
typename T>
8808 inline internal::EqMatcher<T>
Eq(T x) {
return internal::EqMatcher<T>(x); }
8812 template <
typename T>
8827 template <
typename Lhs,
typename Rhs>
8831 template <
typename Rhs>
8832 inline internal::GeMatcher<Rhs>
Ge(Rhs x)
8834 return internal::GeMatcher<Rhs>(x);
8838 template <
typename Rhs>
8839 inline internal::GtMatcher<Rhs>
Gt(Rhs x)
8841 return internal::GtMatcher<Rhs>(x);
8845 template <
typename Rhs>
8846 inline internal::LeMatcher<Rhs>
Le(Rhs x)
8848 return internal::LeMatcher<Rhs>(x);
8852 template <
typename Rhs>
8853 inline internal::LtMatcher<Rhs>
Lt(Rhs x)
8855 return internal::LtMatcher<Rhs>(x);
8859 template <
typename Rhs>
8860 inline internal::NeMatcher<Rhs>
Ne(Rhs x)
8862 return internal::NeMatcher<Rhs>(x);
8881 template <
typename T>
8905 double rhs,
double max_abs_error)
8914 double rhs,
double max_abs_error)
8937 float rhs,
float max_abs_error)
8946 float rhs,
float max_abs_error)
8953 template <
typename InnerMatcher>
8955 const InnerMatcher & inner_matcher)
8964 template <
typename Class,
typename FieldType,
typename FieldMatcher>
8967 FieldType Class::*field,
const FieldMatcher & matcher)
8971 field, MatcherCast<const FieldType &>(matcher)));
8982 template <
typename Class,
typename PropertyType,
typename PropertyMatcher>
8985 PropertyType(Class::*property)()
const,
const PropertyMatcher & matcher)
9010 template <
typename Callable,
typename ResultOfMatcher>
9012 Callable callable,
const ResultOfMatcher & matcher)
9016 MatcherCast<typename internal::CallableTraits<Callable>::ResultType>(
9055 str,
false,
false));
9109 #if GTEST_HAS_GLOBAL_WSTRING || GTEST_HAS_STD_WSTRING 9141 str,
false,
false));
9169 #endif // GTEST_HAS_GLOBAL_WSTRING || GTEST_HAS_STD_WSTRING 9173 inline internal::Eq2Matcher
Eq() {
return internal::Eq2Matcher(); }
9177 inline internal::Ge2Matcher
Ge() {
return internal::Ge2Matcher(); }
9181 inline internal::Gt2Matcher
Gt() {
return internal::Gt2Matcher(); }
9185 inline internal::Le2Matcher
Le() {
return internal::Le2Matcher(); }
9189 inline internal::Lt2Matcher
Lt() {
return internal::Lt2Matcher(); }
9193 inline internal::Ne2Matcher
Ne() {
return internal::Ne2Matcher(); }
9197 template <
typename InnerMatcher>
9206 template <
typename Predicate>
9219 template <
typename SizeMatcher>
9230 template <
typename Container>
9244 template <
typename Comparator,
typename ContainerMatcher>
9247 const ContainerMatcher & container_matcher)
9250 comparator, container_matcher);
9255 template <
typename ContainerMatcher>
9270 template <
typename TupleMatcher,
typename Container>
9273 Pointwise(
const TupleMatcher & tuple_matcher,
const Container & rhs)
9279 tuple_matcher, rhs);
9300 template <
typename M>
9333 template <
typename M>
9342 template <
typename M>
9353 template <
typename FirstMatcher,
typename SecondMatcher>
9355 Pair(FirstMatcher first_matcher, SecondMatcher second_matcher)
9358 first_matcher, second_matcher);
9363 template <
typename M>
9370 template <
typename T,
typename M>
9371 inline bool Value(
const T & value, M matcher)
9378 template <
typename T,
typename M>
9382 return SafeMatcherCast<const T &>(matcher).MatchAndExplain(value, listener);
9385 #if GTEST_LANG_CXX11 9388 template <
typename...
Args>
9389 inline internal::AllOfMatcher<
Args...>
AllOf(
const Args & ... matchers)
9391 return internal::AllOfMatcher<
Args...>(matchers...);
9394 template <
typename...
Args>
9395 inline internal::AnyOfMatcher<
Args...>
AnyOf(
const Args & ... matchers)
9397 return internal::AnyOfMatcher<
Args...>(matchers...);
9400 #endif // GTEST_LANG_CXX11 9409 template <
typename InnerMatcher>
9410 inline InnerMatcher
AllArgs(
const InnerMatcher & matcher) {
return matcher; }
9416 #define ASSERT_THAT(value, matcher) ASSERT_PRED_FORMAT1(\ 9417 ::testing::internal::MakePredicateFormatterFromMatcher(matcher), value) 9418 #define EXPECT_THAT(value, matcher) EXPECT_PRED_FORMAT1(\ 9419 ::testing::internal::MakePredicateFormatterFromMatcher(matcher), value) 9423 #endif // GMOCK_INCLUDE_GMOCK_GMOCK_MATCHERS_H_ 9432 class ExpectationSet;
9482 bool VerifyAndClearExpectationsLocked()
9486 virtual void ClearDefaultActionsLocked()
9499 const void * untyped_args,
9500 const string & call_description)
const = 0;
9506 const void * untyped_action,
9507 const void * untyped_args)
const = 0;
9512 virtual void UntypedDescribeUninterestingCall(
9513 const void * untyped_args,
9514 ::std::ostream * os)
const 9524 const void * untyped_args,
9525 const void ** untyped_action,
bool * is_excessive,
9526 ::std::ostream *
what, ::std::ostream * why)
9530 virtual void UntypedPrintArgs(
const void * untyped_args,
9531 ::std::ostream * os)
const = 0;
9538 void RegisterOwner(
const void * mock_obj)
9544 void SetOwnerAndName(
const void * mock_obj,
const char *
name)
9550 const void * MockObject()
const 9555 const char * Name()
const 9563 const void * untyped_args)
9569 typedef std::vector<internal::linked_ptr<ExpectationBase> >
9598 : file_(a_file), line_(a_line), last_clause_(kNone) {}
9601 const char *
file()
const {
return file_; }
9618 Assert(property, file_, line_, failure_message);
9624 Expect(property, file_, line_, failure_message);
9636 template <
typename F>
9646 const ArgumentMatcherTuple & matchers)
9648 matchers_(matchers),
9653 extra_matcher_(A<const ArgumentTuple & >())
9661 ExpectSpecProperty(last_clause_ < kWith,
9662 ".With() cannot appear " 9663 "more than once in an ON_CALL().");
9664 last_clause_ = kWith;
9673 ExpectSpecProperty(last_clause_ < kWillByDefault,
9674 ".WillByDefault() must appear " 9675 "exactly once in an ON_CALL().");
9676 last_clause_ = kWillByDefault;
9679 "DoDefault() cannot be used in ON_CALL().");
9687 return TupleMatches(matchers_, args) && extra_matcher_.Matches(args);
9693 AssertSpecProperty(last_clause_ == kWillByDefault,
9694 ".WillByDefault() must appear exactly " 9695 "once in an ON_CALL().");
9737 static void AllowLeak(
const void * mock_obj)
9743 static bool VerifyAndClearExpectations(
void * mock_obj)
9749 static bool VerifyAndClear(
void * mock_obj)
9757 template <
typename F>
9760 template <
typename M>
9763 template <
typename M>
9766 template <
typename M>
9771 static void AllowUninterestingCalls(
const void * mock_obj)
9776 static void WarnUninterestingCalls(
const void * mock_obj)
9781 static void FailUninterestingCalls(
const void * mock_obj)
9786 static void UnregisterCallReaction(
const void * mock_obj)
9792 const void * mock_obj)
9798 static bool VerifyAndClearExpectationsLocked(
void * mock_obj)
9802 static void ClearDefaultActionsLocked(
void * mock_obj)
9806 static void Register(
9807 const void * mock_obj,
9814 static void RegisterUseByOnCallOrExpectCall(
9815 const void * mock_obj,
const char * file,
int line)
9880 friend class ::testing::internal::ExpectationBase;
9881 friend class ::testing::internal::UntypedFunctionMockerBase;
9883 template <
typename F>
9884 friend class ::testing::internal::FunctionMockerBase;
9886 template <
typename F>
9887 friend class ::testing::internal::TypedExpectation;
9899 typedef ::std::set<Expectation, Less>
Set;
9908 return expectation_base_;
9972 expectations_.insert(e);
9976 int size()
const {
return static_cast<int>(expectations_.size()); }
9978 const_iterator
begin()
const {
return expectations_.begin(); }
9979 const_iterator
end()
const {
return expectations_.end(); }
9997 void AddExpectation(
const Expectation & expectation)
const;
10067 ExpectationBase(
const char * file,
int line,
const string & source_text);
10072 const char *
file()
const {
return file_; }
10086 void DescribeCallCountTo(::std::ostream * os)
const 10091 virtual void MaybeDescribeExtraMatcherTo(::std::ostream * os) = 0;
10094 friend class ::testing::Expectation;
10107 kRetiresOnSaturation
10119 Assert(property, file_, line_, failure_message);
10125 Expect(property, file_, line_, failure_message);
10130 void SpecifyCardinality(
const Cardinality & cardinality);
10139 cardinality_ = a_cardinality;
10147 void RetireAllPreRequisites()
10152 GTEST_EXCLUSIVE_LOCK_REQUIRED_(g_gmock_mutex)
10154 g_gmock_mutex.AssertHeld();
10160 GTEST_EXCLUSIVE_LOCK_REQUIRED_(g_gmock_mutex)
10162 g_gmock_mutex.AssertHeld();
10168 GTEST_EXCLUSIVE_LOCK_REQUIRED_(g_gmock_mutex)
10170 g_gmock_mutex.AssertHeld();
10176 GTEST_EXCLUSIVE_LOCK_REQUIRED_(g_gmock_mutex)
10178 g_gmock_mutex.AssertHeld();
10184 GTEST_EXCLUSIVE_LOCK_REQUIRED_(g_gmock_mutex)
10186 g_gmock_mutex.AssertHeld();
10191 bool AllPrerequisitesAreSatisfied()
const 10195 void FindUnsatisfiedPrerequisites(
ExpectationSet * result)
const 10200 GTEST_EXCLUSIVE_LOCK_REQUIRED_(g_gmock_mutex)
10202 g_gmock_mutex.AssertHeld();
10203 return call_count_;
10208 GTEST_EXCLUSIVE_LOCK_REQUIRED_(g_gmock_mutex)
10210 g_gmock_mutex.AssertHeld();
10218 void CheckActionCountIfNotDone()
const 10221 friend class ::testing::Sequence;
10222 friend class ::testing::internal::ExpectationTester;
10224 template <
typename Function>
10228 void UntypedTimes(
const Cardinality & a_cardinality);
10262 template <
typename F>
10271 const char * a_file,
int a_line,
const string & a_source_text,
10272 const ArgumentMatcherTuple & m)
10280 extra_matcher_(A<const ArgumentTuple & >()),
10287 CheckActionCountIfNotDone();
10289 for (UntypedActions::const_iterator it = untyped_actions_.begin();
10290 it != untyped_actions_.end(); ++it)
10292 delete static_cast<const Action<F>*
>(*it);
10299 if (last_clause_ == kWith)
10301 ExpectSpecProperty(
false,
10302 ".With() cannot appear " 10303 "more than once in an EXPECT_CALL().");
10308 ExpectSpecProperty(last_clause_ < kWith,
10309 ".With() must be the first " 10310 "clause in an EXPECT_CALL().");
10313 last_clause_ = kWith;
10315 extra_matcher_ = m;
10316 extra_matcher_specified_ =
true;
10323 ExpectationBase::UntypedTimes(a_cardinality);
10336 ExpectSpecProperty(last_clause_ <= kInSequence,
10337 ".InSequence() cannot appear after .After()," 10338 " .WillOnce(), .WillRepeatedly(), or " 10339 ".RetiresOnSaturation().");
10340 last_clause_ = kInSequence;
10369 ExpectSpecProperty(last_clause_ <= kAfter,
10370 ".After() cannot appear after .WillOnce()," 10371 " .WillRepeatedly(), or " 10372 ".RetiresOnSaturation().");
10373 last_clause_ = kAfter;
10377 immediate_prerequisites_ += *it;
10384 return After(s1).
After(s2);
10389 return After(s1, s2).
After(s3);
10394 return After(s1, s2, s3).
After(s4);
10400 return After(s1, s2, s3, s4).
After(s5);
10406 ExpectSpecProperty(last_clause_ <= kWillOnce,
10407 ".WillOnce() cannot appear after " 10408 ".WillRepeatedly() or .RetiresOnSaturation().");
10409 last_clause_ = kWillOnce;
10411 untyped_actions_.push_back(
new Action<F>(action));
10413 if (!cardinality_specified())
10415 set_cardinality(
Exactly(static_cast<int>(untyped_actions_.size())));
10424 if (last_clause_ == kWillRepeatedly)
10426 ExpectSpecProperty(
false,
10427 ".WillRepeatedly() cannot appear " 10428 "more than once in an EXPECT_CALL().");
10433 ExpectSpecProperty(last_clause_ < kWillRepeatedly,
10434 ".WillRepeatedly() cannot appear " 10435 "after .RetiresOnSaturation().");
10438 last_clause_ = kWillRepeatedly;
10439 repeated_action_specified_ =
true;
10441 repeated_action_ = action;
10443 if (!cardinality_specified())
10445 set_cardinality(
AtLeast(static_cast<int>(untyped_actions_.size())));
10450 CheckActionCountIfNotDone();
10457 ExpectSpecProperty(last_clause_ < kRetiresOnSaturation,
10458 ".RetiresOnSaturation() cannot appear " 10459 "more than once.");
10460 last_clause_ = kRetiresOnSaturation;
10461 retires_on_saturation_ =
true;
10465 CheckActionCountIfNotDone();
10479 return extra_matcher_;
10489 if (extra_matcher_specified_)
10491 *os <<
" Expected args: ";
10492 extra_matcher_.DescribeTo(os);
10498 template <
typename Function>
10505 return owner_->GetHandleOf(
this);
10516 g_gmock_mutex.AssertHeld();
10517 return TupleMatches(matchers_, args) && extra_matcher_.Matches(args);
10524 g_gmock_mutex.AssertHeld();
10530 CheckActionCountIfNotDone();
10531 return !is_retired() && AllPrerequisitesAreSatisfied() &&
Matches(args);
10537 const ArgumentTuple & args,
10538 ::std::ostream * os)
const 10541 g_gmock_mutex.AssertHeld();
10545 *os <<
" Expected: the expectation is active\n" 10546 <<
" Actual: it is retired\n";
10558 if (!extra_matcher_.MatchAndExplain(args, &listener))
10560 *os <<
" Expected args: ";
10561 extra_matcher_.DescribeTo(os);
10562 *os <<
"\n Actual: don't match";
10569 else if (!AllPrerequisitesAreSatisfied())
10571 *os <<
" Expected: all pre-requisites are satisfied\n" 10572 <<
" Actual: the following immediate pre-requisites " 10573 <<
"are not satisfied:\n";
10575 FindUnsatisfiedPrerequisites(&unsatisfied_prereqs);
10579 it != unsatisfied_prereqs.
end(); ++it)
10581 it->expectation_base()->DescribeLocationTo(os);
10582 *os <<
"pre-requisite #" << i++ <<
"\n";
10585 *os <<
" (end of pre-requisites)\n";
10594 *os <<
"The call matches the expectation.\n";
10601 const ArgumentTuple & args)
const 10604 g_gmock_mutex.AssertHeld();
10605 const int count = call_count();
10606 Assert(count >= 1, __FILE__, __LINE__,
10607 "call_count() is <= 0 when GetCurrentAction() is " 10608 "called - this should never happen.");
10610 const int action_count =
static_cast<int>(untyped_actions_.size());
10612 if (action_count > 0 && !repeated_action_specified_ &&
10613 count > action_count)
10617 ::std::stringstream ss;
10618 DescribeLocationTo(&ss);
10619 ss <<
"Actions ran out in " << source_text() <<
"...\n" 10620 <<
"Called " << count <<
" times, but only " 10621 << action_count <<
" WillOnce()" 10622 << (action_count == 1 ?
" is" :
"s are") <<
" specified - ";
10623 mocker->DescribeDefaultActionTo(args, &ss);
10627 return count <= action_count ?
10628 *
static_cast<const Action<F>*
>(untyped_actions_[count - 1]) :
10641 const ArgumentTuple & args,
10642 ::std::ostream *
what,
10643 ::std::ostream * why)
10646 g_gmock_mutex.AssertHeld();
10651 IncrementCallCount();
10652 *
what <<
"Mock function called more times than expected - ";
10653 mocker->DescribeDefaultActionTo(args,
what);
10654 DescribeCallCountTo(why);
10662 IncrementCallCount();
10663 RetireAllPreRequisites();
10665 if (retires_on_saturation_ && IsSaturated())
10671 *
what <<
"Mock function call matches " << source_text() <<
"...\n";
10672 return &(GetCurrentAction(mocker, args));
10697 const char * file,
int line,
10700 template <
typename F>
10711 : function_mocker_(function_mocker) {}
10716 const char * file,
int line,
const char * obj,
const char *
call)
10719 string(
"ON_CALL(") + obj +
", " + call +
") invoked");
10720 return function_mocker_->AddNewOnCallSpec(file, line, matchers_);
10726 const char * file,
int line,
const char * obj,
const char *
call)
10728 const string source_text(
string(
"EXPECT_CALL(") + obj +
", " + call +
")");
10730 return function_mocker_->AddNewExpectation(
10731 file, line, source_text, matchers_);
10735 template <
typename Function>
10740 matchers_ = matchers;
10757 # pragma warning(push) // Saves the current warning state. 10758 # pragma warning(disable:4355) // Temporarily disables warning 4355. 10776 virtual void PrintAsActionResult(::std::ostream * os)
const = 0;
10780 template <
typename T>
10800 *os <<
"\n Returns: ";
10807 template <
typename F>
10811 const string & call_description)
10819 template <
typename F>
10844 template <
typename F>
10848 const string & call_description)
10855 template <
typename F>
10868 template <
typename F>
10885 VerifyAndClearExpectationsLocked();
10886 Mock::UnregisterLocked(
this);
10887 ClearDefaultActionsLocked();
10894 const ArgumentTuple & args)
const 10896 for (UntypedOnCallSpecs::const_reverse_iterator it
10897 = untyped_on_call_specs_.rbegin();
10898 it != untyped_on_call_specs_.rend(); ++it)
10917 const string & call_description)
const 10920 this->FindOnCallSpec(args);
10924 return spec->
GetAction().Perform(args);
10927 const string message = call_description +
10928 "\n The mock function has no default action " 10929 "set, and its return type has no default value set.";
10930 #if GTEST_HAS_EXCEPTIONS 10934 throw std::runtime_error(message);
10949 const void * untyped_args,
10950 const string & call_description)
const 10952 const ArgumentTuple & args =
10953 *
static_cast<const ArgumentTuple *
>(untyped_args);
10954 return ResultHolder::PerformDefaultAction(
this, args, call_description);
10962 const void * untyped_action,
const void * untyped_args)
const 10967 const ArgumentTuple & args =
10968 *
static_cast<const ArgumentTuple *
>(untyped_args);
10969 return ResultHolder::PerformAction(action, args);
10977 g_gmock_mutex.AssertHeld();
10987 untyped_on_call_specs_.swap(specs_to_delete);
10989 g_gmock_mutex.Unlock();
10991 for (UntypedOnCallSpecs::const_iterator it =
10992 specs_to_delete.begin();
10993 it != specs_to_delete.end(); ++it)
11000 g_gmock_mutex.Lock();
11004 template <
typename Function>
11015 return static_cast<const ResultHolder *
>(
11016 this->UntypedInvokeWith(&args))->GetValueAndDelete();
11021 const char * file,
int line,
11022 const ArgumentMatcherTuple & m)
11025 Mock::RegisterUseByOnCallOrExpectCall(MockObject(), file, line);
11027 untyped_on_call_specs_.push_back(on_call_spec);
11028 return *on_call_spec;
11035 const string & source_text,
11036 const ArgumentMatcherTuple & m)
11039 Mock::RegisterUseByOnCallOrExpectCall(MockObject(), file, line);
11043 untyped_expectations_.push_back(untyped_expectation);
11046 Sequence *
const implicit_sequence = g_gmock_implicit_sequence.get();
11048 if (implicit_sequence != NULL)
11053 return *expectation;
11069 ::std::ostream * os)
const 11075 *os << (internal::type_equals<Result, void>::value ?
11076 "returning directly.\n" :
11077 "returning default value.\n");
11082 *os <<
"taking default action specified at:\n" 11091 const void * untyped_args,
11092 ::std::ostream * os)
const 11095 const ArgumentTuple & args =
11096 *
static_cast<const ArgumentTuple *
>(untyped_args);
11097 *os <<
"Uninteresting mock function call - ";
11098 DescribeDefaultActionTo(args, os);
11099 *os <<
" Function call: " << Name();
11120 const void * untyped_args,
11121 const void ** untyped_action,
bool * is_excessive,
11122 ::std::ostream *
what, ::std::ostream * why)
11125 const ArgumentTuple & args =
11126 *
static_cast<const ArgumentTuple *
>(untyped_args);
11132 this->FormatUnexpectedCallMessageLocked(args,
what, why);
11145 *untyped_action = action;
11151 ::std::ostream * os)
const 11153 const ArgumentTuple & args =
11154 *
static_cast<const ArgumentTuple *
>(untyped_args);
11161 const ArgumentTuple & args)
const 11164 g_gmock_mutex.AssertHeld();
11166 for (
typename UntypedExpectations::const_reverse_iterator it =
11167 untyped_expectations_.rbegin();
11168 it != untyped_expectations_.rend(); ++it)
11184 const ArgumentTuple & args,
11185 ::std::ostream * os,
11186 ::std::ostream * why)
const 11189 g_gmock_mutex.AssertHeld();
11190 *os <<
"\nUnexpected mock function call - ";
11191 DescribeDefaultActionTo(args, os);
11192 PrintTriedExpectationsLocked(args, why);
11198 const ArgumentTuple & args,
11199 ::std::ostream * why)
const 11202 g_gmock_mutex.AssertHeld();
11203 const int count =
static_cast<int>(untyped_expectations_.size());
11204 *why <<
"Google Mock tried the following " << count <<
" " 11205 << (count == 1 ?
"expectation, but it didn't match" :
11206 "expectations, but none matched")
11209 for (
int i = 0; i <
count; i++)
11218 *why <<
"tried expectation #" << i <<
": ";
11247 # pragma warning(pop) // Restores the warning state. 11284 template <
typename T>
11285 inline const T &
Const(
const T & x) {
return x; }
11289 : expectation_base_(exp.GetHandle().expectation_base()) {}
11297 #define GMOCK_ON_CALL_IMPL_(obj, call) \ 11298 ((obj).gmock_##call).InternalDefaultActionSetAt(__FILE__, __LINE__, \ 11300 #define ON_CALL(obj, call) GMOCK_ON_CALL_IMPL_(obj, call) 11302 #define GMOCK_EXPECT_CALL_IMPL_(obj, call) \ 11303 ((obj).gmock_##call).InternalExpectedAt(__FILE__, __LINE__, #obj, #call) 11304 #define EXPECT_CALL(obj, call) GMOCK_EXPECT_CALL_IMPL_(obj, call) 11306 #endif // GMOCK_INCLUDE_GMOCK_GMOCK_SPEC_BUILDERS_H_ 11313 template <
typename F>
11314 class FunctionMockerBase;
11321 template <
typename F>
11322 class FunctionMocker;
11324 template <
typename R>
11334 return this->current_spec();
11343 return this->InvokeWith(ArgumentTuple());
11347 template <
typename R,
typename A1>
11358 return this->current_spec();
11367 return this->InvokeWith(ArgumentTuple(a1));
11371 template <
typename R,
typename A1,
typename A2>
11382 return this->current_spec();
11391 return this->InvokeWith(ArgumentTuple(a1, a2));
11395 template <
typename R,
typename A1,
typename A2,
typename A3>
11400 typedef R
F(A1, A2, A3);
11407 return this->current_spec();
11416 return this->InvokeWith(ArgumentTuple(a1, a2, a3));
11420 template <
typename R,
typename A1,
typename A2,
typename A3,
typename A4>
11425 typedef R
F(A1, A2, A3, A4);
11432 return this->current_spec();
11441 return this->InvokeWith(ArgumentTuple(a1, a2, a3, a4));
11445 template <
typename R,
typename A1,
typename A2,
typename A3,
typename A4,
11451 typedef R
F(A1, A2, A3, A4, A5);
11459 return this->current_spec();
11468 return this->InvokeWith(ArgumentTuple(a1, a2, a3, a4, a5));
11472 template <
typename R,
typename A1,
typename A2,
typename A3,
typename A4,
11473 typename A5,
typename A6>
11478 typedef R
F(A1, A2, A3, A4, A5, A6);
11487 return this->current_spec();
11490 R
Invoke(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
11496 return this->InvokeWith(ArgumentTuple(a1, a2, a3, a4, a5, a6));
11500 template <
typename R,
typename A1,
typename A2,
typename A3,
typename A4,
11501 typename A5,
typename A6,
typename A7>
11506 typedef R
F(A1, A2, A3, A4, A5, A6, A7);
11515 return this->current_spec();
11518 R
Invoke(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
11524 return this->InvokeWith(ArgumentTuple(a1, a2, a3, a4, a5, a6, a7));
11528 template <
typename R,
typename A1,
typename A2,
typename A3,
typename A4,
11529 typename A5,
typename A6,
typename A7,
typename A8>
11534 typedef R
F(A1, A2, A3, A4, A5, A6, A7, A8);
11543 return this->current_spec();
11546 R
Invoke(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)
11552 return this->InvokeWith(ArgumentTuple(a1, a2, a3, a4, a5, a6, a7, a8));
11556 template <
typename R,
typename A1,
typename A2,
typename A3,
typename A4,
11557 typename A5,
typename A6,
typename A7,
typename A8,
typename A9>
11562 typedef R
F(A1, A2, A3, A4, A5, A6, A7, A8, A9);
11572 return this->current_spec();
11575 R
Invoke(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)
11581 return this->InvokeWith(ArgumentTuple(a1, a2, a3, a4, a5, a6, a7, a8, a9));
11585 template <
typename R,
typename A1,
typename A2,
typename A3,
typename A4,
11586 typename A5,
typename A6,
typename A7,
typename A8,
typename A9,
11592 typedef R
F(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10);
11601 m6, m7, m8, m9, m10));
11602 return this->current_spec();
11605 R
Invoke(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9,
11612 return this->InvokeWith(ArgumentTuple(a1, a2, a3, a4, a5, a6, a7, a8, a9,
11631 #define GMOCK_RESULT_(tn, ...) \ 11632 tn ::testing::internal::Function<__VA_ARGS__>::Result 11636 #define GMOCK_ARG_(tn, N, ...) \ 11637 tn ::testing::internal::Function<__VA_ARGS__>::Argument##N 11641 #define GMOCK_MATCHER_(tn, N, ...) \ 11642 const ::testing::Matcher<GMOCK_ARG_(tn, N, __VA_ARGS__)>& 11646 #define GMOCK_MOCKER_(arity, constness, Method) \ 11647 GTEST_CONCAT_TOKEN_(gmock##constness##arity##_##Method##_, __LINE__) 11650 #define GMOCK_METHOD0_(tn, constness, ct, Method, ...) \ 11651 GMOCK_RESULT_(tn, __VA_ARGS__) ct Method( \ 11653 GTEST_COMPILE_ASSERT_((::std::tr1::tuple_size< \ 11654 tn ::testing::internal::Function<__VA_ARGS__>::ArgumentTuple>::value \ 11656 this_method_does_not_take_0_arguments); \ 11657 GMOCK_MOCKER_(0, constness, Method).SetOwnerAndName(this, #Method); \ 11658 return GMOCK_MOCKER_(0, constness, Method).Invoke(); \ 11660 ::testing::MockSpec<__VA_ARGS__>& \ 11661 gmock_##Method() constness { \ 11662 GMOCK_MOCKER_(0, constness, Method).RegisterOwner(this); \ 11663 return GMOCK_MOCKER_(0, constness, Method).With(); \ 11665 mutable ::testing::FunctionMocker<__VA_ARGS__> GMOCK_MOCKER_(0, constness, \ 11669 #define GMOCK_METHOD1_(tn, constness, ct, Method, ...) \ 11670 GMOCK_RESULT_(tn, __VA_ARGS__) ct Method( \ 11671 GMOCK_ARG_(tn, 1, __VA_ARGS__) gmock_a1) constness { \ 11672 GTEST_COMPILE_ASSERT_((::std::tr1::tuple_size< \ 11673 tn ::testing::internal::Function<__VA_ARGS__>::ArgumentTuple>::value \ 11675 this_method_does_not_take_1_argument); \ 11676 GMOCK_MOCKER_(1, constness, Method).SetOwnerAndName(this, #Method); \ 11677 return GMOCK_MOCKER_(1, constness, Method).Invoke(gmock_a1); \ 11679 ::testing::MockSpec<__VA_ARGS__>& \ 11680 gmock_##Method(GMOCK_MATCHER_(tn, 1, __VA_ARGS__) gmock_a1) constness { \ 11681 GMOCK_MOCKER_(1, constness, Method).RegisterOwner(this); \ 11682 return GMOCK_MOCKER_(1, constness, Method).With(gmock_a1); \ 11684 mutable ::testing::FunctionMocker<__VA_ARGS__> GMOCK_MOCKER_(1, constness, \ 11688 #define GMOCK_METHOD2_(tn, constness, ct, Method, ...) \ 11689 GMOCK_RESULT_(tn, __VA_ARGS__) ct Method( \ 11690 GMOCK_ARG_(tn, 1, __VA_ARGS__) gmock_a1, \ 11691 GMOCK_ARG_(tn, 2, __VA_ARGS__) gmock_a2) constness { \ 11692 GTEST_COMPILE_ASSERT_((::std::tr1::tuple_size< \ 11693 tn ::testing::internal::Function<__VA_ARGS__>::ArgumentTuple>::value \ 11695 this_method_does_not_take_2_arguments); \ 11696 GMOCK_MOCKER_(2, constness, Method).SetOwnerAndName(this, #Method); \ 11697 return GMOCK_MOCKER_(2, constness, Method).Invoke(gmock_a1, gmock_a2); \ 11699 ::testing::MockSpec<__VA_ARGS__>& \ 11700 gmock_##Method(GMOCK_MATCHER_(tn, 1, __VA_ARGS__) gmock_a1, \ 11701 GMOCK_MATCHER_(tn, 2, __VA_ARGS__) gmock_a2) constness { \ 11702 GMOCK_MOCKER_(2, constness, Method).RegisterOwner(this); \ 11703 return GMOCK_MOCKER_(2, constness, Method).With(gmock_a1, gmock_a2); \ 11705 mutable ::testing::FunctionMocker<__VA_ARGS__> GMOCK_MOCKER_(2, constness, \ 11709 #define GMOCK_METHOD3_(tn, constness, ct, Method, ...) \ 11710 GMOCK_RESULT_(tn, __VA_ARGS__) ct Method( \ 11711 GMOCK_ARG_(tn, 1, __VA_ARGS__) gmock_a1, \ 11712 GMOCK_ARG_(tn, 2, __VA_ARGS__) gmock_a2, \ 11713 GMOCK_ARG_(tn, 3, __VA_ARGS__) gmock_a3) constness { \ 11714 GTEST_COMPILE_ASSERT_((::std::tr1::tuple_size< \ 11715 tn ::testing::internal::Function<__VA_ARGS__>::ArgumentTuple>::value \ 11717 this_method_does_not_take_3_arguments); \ 11718 GMOCK_MOCKER_(3, constness, Method).SetOwnerAndName(this, #Method); \ 11719 return GMOCK_MOCKER_(3, constness, Method).Invoke(gmock_a1, gmock_a2, \ 11722 ::testing::MockSpec<__VA_ARGS__>& \ 11723 gmock_##Method(GMOCK_MATCHER_(tn, 1, __VA_ARGS__) gmock_a1, \ 11724 GMOCK_MATCHER_(tn, 2, __VA_ARGS__) gmock_a2, \ 11725 GMOCK_MATCHER_(tn, 3, __VA_ARGS__) gmock_a3) constness { \ 11726 GMOCK_MOCKER_(3, constness, Method).RegisterOwner(this); \ 11727 return GMOCK_MOCKER_(3, constness, Method).With(gmock_a1, gmock_a2, \ 11730 mutable ::testing::FunctionMocker<__VA_ARGS__> GMOCK_MOCKER_(3, constness, \ 11734 #define GMOCK_METHOD4_(tn, constness, ct, Method, ...) \ 11735 GMOCK_RESULT_(tn, __VA_ARGS__) ct Method( \ 11736 GMOCK_ARG_(tn, 1, __VA_ARGS__) gmock_a1, \ 11737 GMOCK_ARG_(tn, 2, __VA_ARGS__) gmock_a2, \ 11738 GMOCK_ARG_(tn, 3, __VA_ARGS__) gmock_a3, \ 11739 GMOCK_ARG_(tn, 4, __VA_ARGS__) gmock_a4) constness { \ 11740 GTEST_COMPILE_ASSERT_((::std::tr1::tuple_size< \ 11741 tn ::testing::internal::Function<__VA_ARGS__>::ArgumentTuple>::value \ 11743 this_method_does_not_take_4_arguments); \ 11744 GMOCK_MOCKER_(4, constness, Method).SetOwnerAndName(this, #Method); \ 11745 return GMOCK_MOCKER_(4, constness, Method).Invoke(gmock_a1, gmock_a2, \ 11746 gmock_a3, gmock_a4); \ 11748 ::testing::MockSpec<__VA_ARGS__>& \ 11749 gmock_##Method(GMOCK_MATCHER_(tn, 1, __VA_ARGS__) gmock_a1, \ 11750 GMOCK_MATCHER_(tn, 2, __VA_ARGS__) gmock_a2, \ 11751 GMOCK_MATCHER_(tn, 3, __VA_ARGS__) gmock_a3, \ 11752 GMOCK_MATCHER_(tn, 4, __VA_ARGS__) gmock_a4) constness { \ 11753 GMOCK_MOCKER_(4, constness, Method).RegisterOwner(this); \ 11754 return GMOCK_MOCKER_(4, constness, Method).With(gmock_a1, gmock_a2, \ 11755 gmock_a3, gmock_a4); \ 11757 mutable ::testing::FunctionMocker<__VA_ARGS__> GMOCK_MOCKER_(4, constness, \ 11761 #define GMOCK_METHOD5_(tn, constness, ct, Method, ...) \ 11762 GMOCK_RESULT_(tn, __VA_ARGS__) ct Method( \ 11763 GMOCK_ARG_(tn, 1, __VA_ARGS__) gmock_a1, \ 11764 GMOCK_ARG_(tn, 2, __VA_ARGS__) gmock_a2, \ 11765 GMOCK_ARG_(tn, 3, __VA_ARGS__) gmock_a3, \ 11766 GMOCK_ARG_(tn, 4, __VA_ARGS__) gmock_a4, \ 11767 GMOCK_ARG_(tn, 5, __VA_ARGS__) gmock_a5) constness { \ 11768 GTEST_COMPILE_ASSERT_((::std::tr1::tuple_size< \ 11769 tn ::testing::internal::Function<__VA_ARGS__>::ArgumentTuple>::value \ 11771 this_method_does_not_take_5_arguments); \ 11772 GMOCK_MOCKER_(5, constness, Method).SetOwnerAndName(this, #Method); \ 11773 return GMOCK_MOCKER_(5, constness, Method).Invoke(gmock_a1, gmock_a2, \ 11774 gmock_a3, gmock_a4, gmock_a5); \ 11776 ::testing::MockSpec<__VA_ARGS__>& \ 11777 gmock_##Method(GMOCK_MATCHER_(tn, 1, __VA_ARGS__) gmock_a1, \ 11778 GMOCK_MATCHER_(tn, 2, __VA_ARGS__) gmock_a2, \ 11779 GMOCK_MATCHER_(tn, 3, __VA_ARGS__) gmock_a3, \ 11780 GMOCK_MATCHER_(tn, 4, __VA_ARGS__) gmock_a4, \ 11781 GMOCK_MATCHER_(tn, 5, __VA_ARGS__) gmock_a5) constness { \ 11782 GMOCK_MOCKER_(5, constness, Method).RegisterOwner(this); \ 11783 return GMOCK_MOCKER_(5, constness, Method).With(gmock_a1, gmock_a2, \ 11784 gmock_a3, gmock_a4, gmock_a5); \ 11786 mutable ::testing::FunctionMocker<__VA_ARGS__> GMOCK_MOCKER_(5, constness, \ 11790 #define GMOCK_METHOD6_(tn, constness, ct, Method, ...) \ 11791 GMOCK_RESULT_(tn, __VA_ARGS__) ct Method( \ 11792 GMOCK_ARG_(tn, 1, __VA_ARGS__) gmock_a1, \ 11793 GMOCK_ARG_(tn, 2, __VA_ARGS__) gmock_a2, \ 11794 GMOCK_ARG_(tn, 3, __VA_ARGS__) gmock_a3, \ 11795 GMOCK_ARG_(tn, 4, __VA_ARGS__) gmock_a4, \ 11796 GMOCK_ARG_(tn, 5, __VA_ARGS__) gmock_a5, \ 11797 GMOCK_ARG_(tn, 6, __VA_ARGS__) gmock_a6) constness { \ 11798 GTEST_COMPILE_ASSERT_((::std::tr1::tuple_size< \ 11799 tn ::testing::internal::Function<__VA_ARGS__>::ArgumentTuple>::value \ 11801 this_method_does_not_take_6_arguments); \ 11802 GMOCK_MOCKER_(6, constness, Method).SetOwnerAndName(this, #Method); \ 11803 return GMOCK_MOCKER_(6, constness, Method).Invoke(gmock_a1, gmock_a2, \ 11804 gmock_a3, gmock_a4, gmock_a5, gmock_a6); \ 11806 ::testing::MockSpec<__VA_ARGS__>& \ 11807 gmock_##Method(GMOCK_MATCHER_(tn, 1, __VA_ARGS__) gmock_a1, \ 11808 GMOCK_MATCHER_(tn, 2, __VA_ARGS__) gmock_a2, \ 11809 GMOCK_MATCHER_(tn, 3, __VA_ARGS__) gmock_a3, \ 11810 GMOCK_MATCHER_(tn, 4, __VA_ARGS__) gmock_a4, \ 11811 GMOCK_MATCHER_(tn, 5, __VA_ARGS__) gmock_a5, \ 11812 GMOCK_MATCHER_(tn, 6, __VA_ARGS__) gmock_a6) constness { \ 11813 GMOCK_MOCKER_(6, constness, Method).RegisterOwner(this); \ 11814 return GMOCK_MOCKER_(6, constness, Method).With(gmock_a1, gmock_a2, \ 11815 gmock_a3, gmock_a4, gmock_a5, gmock_a6); \ 11817 mutable ::testing::FunctionMocker<__VA_ARGS__> GMOCK_MOCKER_(6, constness, \ 11821 #define GMOCK_METHOD7_(tn, constness, ct, Method, ...) \ 11822 GMOCK_RESULT_(tn, __VA_ARGS__) ct Method( \ 11823 GMOCK_ARG_(tn, 1, __VA_ARGS__) gmock_a1, \ 11824 GMOCK_ARG_(tn, 2, __VA_ARGS__) gmock_a2, \ 11825 GMOCK_ARG_(tn, 3, __VA_ARGS__) gmock_a3, \ 11826 GMOCK_ARG_(tn, 4, __VA_ARGS__) gmock_a4, \ 11827 GMOCK_ARG_(tn, 5, __VA_ARGS__) gmock_a5, \ 11828 GMOCK_ARG_(tn, 6, __VA_ARGS__) gmock_a6, \ 11829 GMOCK_ARG_(tn, 7, __VA_ARGS__) gmock_a7) constness { \ 11830 GTEST_COMPILE_ASSERT_((::std::tr1::tuple_size< \ 11831 tn ::testing::internal::Function<__VA_ARGS__>::ArgumentTuple>::value \ 11833 this_method_does_not_take_7_arguments); \ 11834 GMOCK_MOCKER_(7, constness, Method).SetOwnerAndName(this, #Method); \ 11835 return GMOCK_MOCKER_(7, constness, Method).Invoke(gmock_a1, gmock_a2, \ 11836 gmock_a3, gmock_a4, gmock_a5, gmock_a6, gmock_a7); \ 11838 ::testing::MockSpec<__VA_ARGS__>& \ 11839 gmock_##Method(GMOCK_MATCHER_(tn, 1, __VA_ARGS__) gmock_a1, \ 11840 GMOCK_MATCHER_(tn, 2, __VA_ARGS__) gmock_a2, \ 11841 GMOCK_MATCHER_(tn, 3, __VA_ARGS__) gmock_a3, \ 11842 GMOCK_MATCHER_(tn, 4, __VA_ARGS__) gmock_a4, \ 11843 GMOCK_MATCHER_(tn, 5, __VA_ARGS__) gmock_a5, \ 11844 GMOCK_MATCHER_(tn, 6, __VA_ARGS__) gmock_a6, \ 11845 GMOCK_MATCHER_(tn, 7, __VA_ARGS__) gmock_a7) constness { \ 11846 GMOCK_MOCKER_(7, constness, Method).RegisterOwner(this); \ 11847 return GMOCK_MOCKER_(7, constness, Method).With(gmock_a1, gmock_a2, \ 11848 gmock_a3, gmock_a4, gmock_a5, gmock_a6, gmock_a7); \ 11850 mutable ::testing::FunctionMocker<__VA_ARGS__> GMOCK_MOCKER_(7, constness, \ 11854 #define GMOCK_METHOD8_(tn, constness, ct, Method, ...) \ 11855 GMOCK_RESULT_(tn, __VA_ARGS__) ct Method( \ 11856 GMOCK_ARG_(tn, 1, __VA_ARGS__) gmock_a1, \ 11857 GMOCK_ARG_(tn, 2, __VA_ARGS__) gmock_a2, \ 11858 GMOCK_ARG_(tn, 3, __VA_ARGS__) gmock_a3, \ 11859 GMOCK_ARG_(tn, 4, __VA_ARGS__) gmock_a4, \ 11860 GMOCK_ARG_(tn, 5, __VA_ARGS__) gmock_a5, \ 11861 GMOCK_ARG_(tn, 6, __VA_ARGS__) gmock_a6, \ 11862 GMOCK_ARG_(tn, 7, __VA_ARGS__) gmock_a7, \ 11863 GMOCK_ARG_(tn, 8, __VA_ARGS__) gmock_a8) constness { \ 11864 GTEST_COMPILE_ASSERT_((::std::tr1::tuple_size< \ 11865 tn ::testing::internal::Function<__VA_ARGS__>::ArgumentTuple>::value \ 11867 this_method_does_not_take_8_arguments); \ 11868 GMOCK_MOCKER_(8, constness, Method).SetOwnerAndName(this, #Method); \ 11869 return GMOCK_MOCKER_(8, constness, Method).Invoke(gmock_a1, gmock_a2, \ 11870 gmock_a3, gmock_a4, gmock_a5, gmock_a6, gmock_a7, gmock_a8); \ 11872 ::testing::MockSpec<__VA_ARGS__>& \ 11873 gmock_##Method(GMOCK_MATCHER_(tn, 1, __VA_ARGS__) gmock_a1, \ 11874 GMOCK_MATCHER_(tn, 2, __VA_ARGS__) gmock_a2, \ 11875 GMOCK_MATCHER_(tn, 3, __VA_ARGS__) gmock_a3, \ 11876 GMOCK_MATCHER_(tn, 4, __VA_ARGS__) gmock_a4, \ 11877 GMOCK_MATCHER_(tn, 5, __VA_ARGS__) gmock_a5, \ 11878 GMOCK_MATCHER_(tn, 6, __VA_ARGS__) gmock_a6, \ 11879 GMOCK_MATCHER_(tn, 7, __VA_ARGS__) gmock_a7, \ 11880 GMOCK_MATCHER_(tn, 8, __VA_ARGS__) gmock_a8) constness { \ 11881 GMOCK_MOCKER_(8, constness, Method).RegisterOwner(this); \ 11882 return GMOCK_MOCKER_(8, constness, Method).With(gmock_a1, gmock_a2, \ 11883 gmock_a3, gmock_a4, gmock_a5, gmock_a6, gmock_a7, gmock_a8); \ 11885 mutable ::testing::FunctionMocker<__VA_ARGS__> GMOCK_MOCKER_(8, constness, \ 11889 #define GMOCK_METHOD9_(tn, constness, ct, Method, ...) \ 11890 GMOCK_RESULT_(tn, __VA_ARGS__) ct Method( \ 11891 GMOCK_ARG_(tn, 1, __VA_ARGS__) gmock_a1, \ 11892 GMOCK_ARG_(tn, 2, __VA_ARGS__) gmock_a2, \ 11893 GMOCK_ARG_(tn, 3, __VA_ARGS__) gmock_a3, \ 11894 GMOCK_ARG_(tn, 4, __VA_ARGS__) gmock_a4, \ 11895 GMOCK_ARG_(tn, 5, __VA_ARGS__) gmock_a5, \ 11896 GMOCK_ARG_(tn, 6, __VA_ARGS__) gmock_a6, \ 11897 GMOCK_ARG_(tn, 7, __VA_ARGS__) gmock_a7, \ 11898 GMOCK_ARG_(tn, 8, __VA_ARGS__) gmock_a8, \ 11899 GMOCK_ARG_(tn, 9, __VA_ARGS__) gmock_a9) constness { \ 11900 GTEST_COMPILE_ASSERT_((::std::tr1::tuple_size< \ 11901 tn ::testing::internal::Function<__VA_ARGS__>::ArgumentTuple>::value \ 11903 this_method_does_not_take_9_arguments); \ 11904 GMOCK_MOCKER_(9, constness, Method).SetOwnerAndName(this, #Method); \ 11905 return GMOCK_MOCKER_(9, constness, Method).Invoke(gmock_a1, gmock_a2, \ 11906 gmock_a3, gmock_a4, gmock_a5, gmock_a6, gmock_a7, gmock_a8, \ 11909 ::testing::MockSpec<__VA_ARGS__>& \ 11910 gmock_##Method(GMOCK_MATCHER_(tn, 1, __VA_ARGS__) gmock_a1, \ 11911 GMOCK_MATCHER_(tn, 2, __VA_ARGS__) gmock_a2, \ 11912 GMOCK_MATCHER_(tn, 3, __VA_ARGS__) gmock_a3, \ 11913 GMOCK_MATCHER_(tn, 4, __VA_ARGS__) gmock_a4, \ 11914 GMOCK_MATCHER_(tn, 5, __VA_ARGS__) gmock_a5, \ 11915 GMOCK_MATCHER_(tn, 6, __VA_ARGS__) gmock_a6, \ 11916 GMOCK_MATCHER_(tn, 7, __VA_ARGS__) gmock_a7, \ 11917 GMOCK_MATCHER_(tn, 8, __VA_ARGS__) gmock_a8, \ 11918 GMOCK_MATCHER_(tn, 9, __VA_ARGS__) gmock_a9) constness { \ 11919 GMOCK_MOCKER_(9, constness, Method).RegisterOwner(this); \ 11920 return GMOCK_MOCKER_(9, constness, Method).With(gmock_a1, gmock_a2, \ 11921 gmock_a3, gmock_a4, gmock_a5, gmock_a6, gmock_a7, gmock_a8, \ 11924 mutable ::testing::FunctionMocker<__VA_ARGS__> GMOCK_MOCKER_(9, constness, \ 11928 #define GMOCK_METHOD10_(tn, constness, ct, Method, ...) \ 11929 GMOCK_RESULT_(tn, __VA_ARGS__) ct Method( \ 11930 GMOCK_ARG_(tn, 1, __VA_ARGS__) gmock_a1, \ 11931 GMOCK_ARG_(tn, 2, __VA_ARGS__) gmock_a2, \ 11932 GMOCK_ARG_(tn, 3, __VA_ARGS__) gmock_a3, \ 11933 GMOCK_ARG_(tn, 4, __VA_ARGS__) gmock_a4, \ 11934 GMOCK_ARG_(tn, 5, __VA_ARGS__) gmock_a5, \ 11935 GMOCK_ARG_(tn, 6, __VA_ARGS__) gmock_a6, \ 11936 GMOCK_ARG_(tn, 7, __VA_ARGS__) gmock_a7, \ 11937 GMOCK_ARG_(tn, 8, __VA_ARGS__) gmock_a8, \ 11938 GMOCK_ARG_(tn, 9, __VA_ARGS__) gmock_a9, \ 11939 GMOCK_ARG_(tn, 10, __VA_ARGS__) gmock_a10) constness { \ 11940 GTEST_COMPILE_ASSERT_((::std::tr1::tuple_size< \ 11941 tn ::testing::internal::Function<__VA_ARGS__>::ArgumentTuple>::value \ 11943 this_method_does_not_take_10_arguments); \ 11944 GMOCK_MOCKER_(10, constness, Method).SetOwnerAndName(this, #Method); \ 11945 return GMOCK_MOCKER_(10, constness, Method).Invoke(gmock_a1, gmock_a2, \ 11946 gmock_a3, gmock_a4, gmock_a5, gmock_a6, gmock_a7, gmock_a8, gmock_a9, \ 11949 ::testing::MockSpec<__VA_ARGS__>& \ 11950 gmock_##Method(GMOCK_MATCHER_(tn, 1, __VA_ARGS__) gmock_a1, \ 11951 GMOCK_MATCHER_(tn, 2, __VA_ARGS__) gmock_a2, \ 11952 GMOCK_MATCHER_(tn, 3, __VA_ARGS__) gmock_a3, \ 11953 GMOCK_MATCHER_(tn, 4, __VA_ARGS__) gmock_a4, \ 11954 GMOCK_MATCHER_(tn, 5, __VA_ARGS__) gmock_a5, \ 11955 GMOCK_MATCHER_(tn, 6, __VA_ARGS__) gmock_a6, \ 11956 GMOCK_MATCHER_(tn, 7, __VA_ARGS__) gmock_a7, \ 11957 GMOCK_MATCHER_(tn, 8, __VA_ARGS__) gmock_a8, \ 11958 GMOCK_MATCHER_(tn, 9, __VA_ARGS__) gmock_a9, \ 11959 GMOCK_MATCHER_(tn, 10, \ 11960 __VA_ARGS__) gmock_a10) constness { \ 11961 GMOCK_MOCKER_(10, constness, Method).RegisterOwner(this); \ 11962 return GMOCK_MOCKER_(10, constness, Method).With(gmock_a1, gmock_a2, \ 11963 gmock_a3, gmock_a4, gmock_a5, gmock_a6, gmock_a7, gmock_a8, gmock_a9, \ 11966 mutable ::testing::FunctionMocker<__VA_ARGS__> GMOCK_MOCKER_(10, constness, \ 11969 #define MOCK_METHOD0(m, ...) GMOCK_METHOD0_(, , , m, __VA_ARGS__) 11970 #define MOCK_METHOD1(m, ...) GMOCK_METHOD1_(, , , m, __VA_ARGS__) 11971 #define MOCK_METHOD2(m, ...) GMOCK_METHOD2_(, , , m, __VA_ARGS__) 11972 #define MOCK_METHOD3(m, ...) GMOCK_METHOD3_(, , , m, __VA_ARGS__) 11973 #define MOCK_METHOD4(m, ...) GMOCK_METHOD4_(, , , m, __VA_ARGS__) 11974 #define MOCK_METHOD5(m, ...) GMOCK_METHOD5_(, , , m, __VA_ARGS__) 11975 #define MOCK_METHOD6(m, ...) GMOCK_METHOD6_(, , , m, __VA_ARGS__) 11976 #define MOCK_METHOD7(m, ...) GMOCK_METHOD7_(, , , m, __VA_ARGS__) 11977 #define MOCK_METHOD8(m, ...) GMOCK_METHOD8_(, , , m, __VA_ARGS__) 11978 #define MOCK_METHOD9(m, ...) GMOCK_METHOD9_(, , , m, __VA_ARGS__) 11979 #define MOCK_METHOD10(m, ...) GMOCK_METHOD10_(, , , m, __VA_ARGS__) 11981 #define MOCK_CONST_METHOD0(m, ...) GMOCK_METHOD0_(, const, , m, __VA_ARGS__) 11982 #define MOCK_CONST_METHOD1(m, ...) GMOCK_METHOD1_(, const, , m, __VA_ARGS__) 11983 #define MOCK_CONST_METHOD2(m, ...) GMOCK_METHOD2_(, const, , m, __VA_ARGS__) 11984 #define MOCK_CONST_METHOD3(m, ...) GMOCK_METHOD3_(, const, , m, __VA_ARGS__) 11985 #define MOCK_CONST_METHOD4(m, ...) GMOCK_METHOD4_(, const, , m, __VA_ARGS__) 11986 #define MOCK_CONST_METHOD5(m, ...) GMOCK_METHOD5_(, const, , m, __VA_ARGS__) 11987 #define MOCK_CONST_METHOD6(m, ...) GMOCK_METHOD6_(, const, , m, __VA_ARGS__) 11988 #define MOCK_CONST_METHOD7(m, ...) GMOCK_METHOD7_(, const, , m, __VA_ARGS__) 11989 #define MOCK_CONST_METHOD8(m, ...) GMOCK_METHOD8_(, const, , m, __VA_ARGS__) 11990 #define MOCK_CONST_METHOD9(m, ...) GMOCK_METHOD9_(, const, , m, __VA_ARGS__) 11991 #define MOCK_CONST_METHOD10(m, ...) GMOCK_METHOD10_(, const, , m, __VA_ARGS__) 11993 #define MOCK_METHOD0_T(m, ...) GMOCK_METHOD0_(typename, , , m, __VA_ARGS__) 11994 #define MOCK_METHOD1_T(m, ...) GMOCK_METHOD1_(typename, , , m, __VA_ARGS__) 11995 #define MOCK_METHOD2_T(m, ...) GMOCK_METHOD2_(typename, , , m, __VA_ARGS__) 11996 #define MOCK_METHOD3_T(m, ...) GMOCK_METHOD3_(typename, , , m, __VA_ARGS__) 11997 #define MOCK_METHOD4_T(m, ...) GMOCK_METHOD4_(typename, , , m, __VA_ARGS__) 11998 #define MOCK_METHOD5_T(m, ...) GMOCK_METHOD5_(typename, , , m, __VA_ARGS__) 11999 #define MOCK_METHOD6_T(m, ...) GMOCK_METHOD6_(typename, , , m, __VA_ARGS__) 12000 #define MOCK_METHOD7_T(m, ...) GMOCK_METHOD7_(typename, , , m, __VA_ARGS__) 12001 #define MOCK_METHOD8_T(m, ...) GMOCK_METHOD8_(typename, , , m, __VA_ARGS__) 12002 #define MOCK_METHOD9_T(m, ...) GMOCK_METHOD9_(typename, , , m, __VA_ARGS__) 12003 #define MOCK_METHOD10_T(m, ...) GMOCK_METHOD10_(typename, , , m, __VA_ARGS__) 12005 #define MOCK_CONST_METHOD0_T(m, ...) \ 12006 GMOCK_METHOD0_(typename, const, , m, __VA_ARGS__) 12007 #define MOCK_CONST_METHOD1_T(m, ...) \ 12008 GMOCK_METHOD1_(typename, const, , m, __VA_ARGS__) 12009 #define MOCK_CONST_METHOD2_T(m, ...) \ 12010 GMOCK_METHOD2_(typename, const, , m, __VA_ARGS__) 12011 #define MOCK_CONST_METHOD3_T(m, ...) \ 12012 GMOCK_METHOD3_(typename, const, , m, __VA_ARGS__) 12013 #define MOCK_CONST_METHOD4_T(m, ...) \ 12014 GMOCK_METHOD4_(typename, const, , m, __VA_ARGS__) 12015 #define MOCK_CONST_METHOD5_T(m, ...) \ 12016 GMOCK_METHOD5_(typename, const, , m, __VA_ARGS__) 12017 #define MOCK_CONST_METHOD6_T(m, ...) \ 12018 GMOCK_METHOD6_(typename, const, , m, __VA_ARGS__) 12019 #define MOCK_CONST_METHOD7_T(m, ...) \ 12020 GMOCK_METHOD7_(typename, const, , m, __VA_ARGS__) 12021 #define MOCK_CONST_METHOD8_T(m, ...) \ 12022 GMOCK_METHOD8_(typename, const, , m, __VA_ARGS__) 12023 #define MOCK_CONST_METHOD9_T(m, ...) \ 12024 GMOCK_METHOD9_(typename, const, , m, __VA_ARGS__) 12025 #define MOCK_CONST_METHOD10_T(m, ...) \ 12026 GMOCK_METHOD10_(typename, const, , m, __VA_ARGS__) 12028 #define MOCK_METHOD0_WITH_CALLTYPE(ct, m, ...) \ 12029 GMOCK_METHOD0_(, , ct, m, __VA_ARGS__) 12030 #define MOCK_METHOD1_WITH_CALLTYPE(ct, m, ...) \ 12031 GMOCK_METHOD1_(, , ct, m, __VA_ARGS__) 12032 #define MOCK_METHOD2_WITH_CALLTYPE(ct, m, ...) \ 12033 GMOCK_METHOD2_(, , ct, m, __VA_ARGS__) 12034 #define MOCK_METHOD3_WITH_CALLTYPE(ct, m, ...) \ 12035 GMOCK_METHOD3_(, , ct, m, __VA_ARGS__) 12036 #define MOCK_METHOD4_WITH_CALLTYPE(ct, m, ...) \ 12037 GMOCK_METHOD4_(, , ct, m, __VA_ARGS__) 12038 #define MOCK_METHOD5_WITH_CALLTYPE(ct, m, ...) \ 12039 GMOCK_METHOD5_(, , ct, m, __VA_ARGS__) 12040 #define MOCK_METHOD6_WITH_CALLTYPE(ct, m, ...) \ 12041 GMOCK_METHOD6_(, , ct, m, __VA_ARGS__) 12042 #define MOCK_METHOD7_WITH_CALLTYPE(ct, m, ...) \ 12043 GMOCK_METHOD7_(, , ct, m, __VA_ARGS__) 12044 #define MOCK_METHOD8_WITH_CALLTYPE(ct, m, ...) \ 12045 GMOCK_METHOD8_(, , ct, m, __VA_ARGS__) 12046 #define MOCK_METHOD9_WITH_CALLTYPE(ct, m, ...) \ 12047 GMOCK_METHOD9_(, , ct, m, __VA_ARGS__) 12048 #define MOCK_METHOD10_WITH_CALLTYPE(ct, m, ...) \ 12049 GMOCK_METHOD10_(, , ct, m, __VA_ARGS__) 12051 #define MOCK_CONST_METHOD0_WITH_CALLTYPE(ct, m, ...) \ 12052 GMOCK_METHOD0_(, const, ct, m, __VA_ARGS__) 12053 #define MOCK_CONST_METHOD1_WITH_CALLTYPE(ct, m, ...) \ 12054 GMOCK_METHOD1_(, const, ct, m, __VA_ARGS__) 12055 #define MOCK_CONST_METHOD2_WITH_CALLTYPE(ct, m, ...) \ 12056 GMOCK_METHOD2_(, const, ct, m, __VA_ARGS__) 12057 #define MOCK_CONST_METHOD3_WITH_CALLTYPE(ct, m, ...) \ 12058 GMOCK_METHOD3_(, const, ct, m, __VA_ARGS__) 12059 #define MOCK_CONST_METHOD4_WITH_CALLTYPE(ct, m, ...) \ 12060 GMOCK_METHOD4_(, const, ct, m, __VA_ARGS__) 12061 #define MOCK_CONST_METHOD5_WITH_CALLTYPE(ct, m, ...) \ 12062 GMOCK_METHOD5_(, const, ct, m, __VA_ARGS__) 12063 #define MOCK_CONST_METHOD6_WITH_CALLTYPE(ct, m, ...) \ 12064 GMOCK_METHOD6_(, const, ct, m, __VA_ARGS__) 12065 #define MOCK_CONST_METHOD7_WITH_CALLTYPE(ct, m, ...) \ 12066 GMOCK_METHOD7_(, const, ct, m, __VA_ARGS__) 12067 #define MOCK_CONST_METHOD8_WITH_CALLTYPE(ct, m, ...) \ 12068 GMOCK_METHOD8_(, const, ct, m, __VA_ARGS__) 12069 #define MOCK_CONST_METHOD9_WITH_CALLTYPE(ct, m, ...) \ 12070 GMOCK_METHOD9_(, const, ct, m, __VA_ARGS__) 12071 #define MOCK_CONST_METHOD10_WITH_CALLTYPE(ct, m, ...) \ 12072 GMOCK_METHOD10_(, const, ct, m, __VA_ARGS__) 12074 #define MOCK_METHOD0_T_WITH_CALLTYPE(ct, m, ...) \ 12075 GMOCK_METHOD0_(typename, , ct, m, __VA_ARGS__) 12076 #define MOCK_METHOD1_T_WITH_CALLTYPE(ct, m, ...) \ 12077 GMOCK_METHOD1_(typename, , ct, m, __VA_ARGS__) 12078 #define MOCK_METHOD2_T_WITH_CALLTYPE(ct, m, ...) \ 12079 GMOCK_METHOD2_(typename, , ct, m, __VA_ARGS__) 12080 #define MOCK_METHOD3_T_WITH_CALLTYPE(ct, m, ...) \ 12081 GMOCK_METHOD3_(typename, , ct, m, __VA_ARGS__) 12082 #define MOCK_METHOD4_T_WITH_CALLTYPE(ct, m, ...) \ 12083 GMOCK_METHOD4_(typename, , ct, m, __VA_ARGS__) 12084 #define MOCK_METHOD5_T_WITH_CALLTYPE(ct, m, ...) \ 12085 GMOCK_METHOD5_(typename, , ct, m, __VA_ARGS__) 12086 #define MOCK_METHOD6_T_WITH_CALLTYPE(ct, m, ...) \ 12087 GMOCK_METHOD6_(typename, , ct, m, __VA_ARGS__) 12088 #define MOCK_METHOD7_T_WITH_CALLTYPE(ct, m, ...) \ 12089 GMOCK_METHOD7_(typename, , ct, m, __VA_ARGS__) 12090 #define MOCK_METHOD8_T_WITH_CALLTYPE(ct, m, ...) \ 12091 GMOCK_METHOD8_(typename, , ct, m, __VA_ARGS__) 12092 #define MOCK_METHOD9_T_WITH_CALLTYPE(ct, m, ...) \ 12093 GMOCK_METHOD9_(typename, , ct, m, __VA_ARGS__) 12094 #define MOCK_METHOD10_T_WITH_CALLTYPE(ct, m, ...) \ 12095 GMOCK_METHOD10_(typename, , ct, m, __VA_ARGS__) 12097 #define MOCK_CONST_METHOD0_T_WITH_CALLTYPE(ct, m, ...) \ 12098 GMOCK_METHOD0_(typename, const, ct, m, __VA_ARGS__) 12099 #define MOCK_CONST_METHOD1_T_WITH_CALLTYPE(ct, m, ...) \ 12100 GMOCK_METHOD1_(typename, const, ct, m, __VA_ARGS__) 12101 #define MOCK_CONST_METHOD2_T_WITH_CALLTYPE(ct, m, ...) \ 12102 GMOCK_METHOD2_(typename, const, ct, m, __VA_ARGS__) 12103 #define MOCK_CONST_METHOD3_T_WITH_CALLTYPE(ct, m, ...) \ 12104 GMOCK_METHOD3_(typename, const, ct, m, __VA_ARGS__) 12105 #define MOCK_CONST_METHOD4_T_WITH_CALLTYPE(ct, m, ...) \ 12106 GMOCK_METHOD4_(typename, const, ct, m, __VA_ARGS__) 12107 #define MOCK_CONST_METHOD5_T_WITH_CALLTYPE(ct, m, ...) \ 12108 GMOCK_METHOD5_(typename, const, ct, m, __VA_ARGS__) 12109 #define MOCK_CONST_METHOD6_T_WITH_CALLTYPE(ct, m, ...) \ 12110 GMOCK_METHOD6_(typename, const, ct, m, __VA_ARGS__) 12111 #define MOCK_CONST_METHOD7_T_WITH_CALLTYPE(ct, m, ...) \ 12112 GMOCK_METHOD7_(typename, const, ct, m, __VA_ARGS__) 12113 #define MOCK_CONST_METHOD8_T_WITH_CALLTYPE(ct, m, ...) \ 12114 GMOCK_METHOD8_(typename, const, ct, m, __VA_ARGS__) 12115 #define MOCK_CONST_METHOD9_T_WITH_CALLTYPE(ct, m, ...) \ 12116 GMOCK_METHOD9_(typename, const, ct, m, __VA_ARGS__) 12117 #define MOCK_CONST_METHOD10_T_WITH_CALLTYPE(ct, m, ...) \ 12118 GMOCK_METHOD10_(typename, const, ct, m, __VA_ARGS__) 12155 template <
typename F>
12158 template <
typename R>
12170 template <
typename R,
typename A0>
12182 template <
typename R,
typename A0,
typename A1>
12194 template <
typename R,
typename A0,
typename A1,
typename A2>
12206 template <
typename R,
typename A0,
typename A1,
typename A2,
typename A3>
12218 template <
typename R,
typename A0,
typename A1,
typename A2,
typename A3,
12231 template <
typename R,
typename A0,
typename A1,
typename A2,
typename A3,
12232 typename A4,
typename A5>
12244 template <
typename R,
typename A0,
typename A1,
typename A2,
typename A3,
12245 typename A4,
typename A5,
typename A6>
12257 template <
typename R,
typename A0,
typename A1,
typename A2,
typename A3,
12258 typename A4,
typename A5,
typename A6,
typename A7>
12270 template <
typename R,
typename A0,
typename A1,
typename A2,
typename A3,
12271 typename A4,
typename A5,
typename A6,
typename A7,
typename A8>
12283 template <
typename R,
typename A0,
typename A1,
typename A2,
typename A3,
12284 typename A4,
typename A5,
typename A6,
typename A7,
typename A8,
12291 MOCK_METHOD10_T(Call, R(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9));
12299 #endif // GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_FUNCTION_MOCKERS_H_ 12370 #ifndef GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_NICE_STRICT_H_ 12371 #define GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_NICE_STRICT_H_ 12377 template <
class MockClass>
12385 ::testing::Mock::AllowUninterestingCalls(
12386 internal::ImplicitCast_<MockClass *>(
this));
12391 template <
typename A1>
12394 ::testing::Mock::AllowUninterestingCalls(
12395 internal::ImplicitCast_<MockClass *>(
this));
12397 template <
typename A1,
typename A2>
12400 ::testing::Mock::AllowUninterestingCalls(
12401 internal::ImplicitCast_<MockClass *>(
this));
12404 template <
typename A1,
typename A2,
typename A3>
12405 NiceMock(
const A1 & a1,
const A2 & a2,
const A3 & a3) : MockClass(a1, a2, a3)
12407 ::testing::Mock::AllowUninterestingCalls(
12408 internal::ImplicitCast_<MockClass *>(
this));
12411 template <
typename A1,
typename A2,
typename A3,
typename A4>
12413 const A4 & a4) : MockClass(a1, a2, a3, a4)
12415 ::testing::Mock::AllowUninterestingCalls(
12416 internal::ImplicitCast_<MockClass *>(
this));
12419 template <
typename A1,
typename A2,
typename A3,
typename A4,
typename A5>
12420 NiceMock(
const A1 & a1,
const A2 & a2,
const A3 & a3,
const A4 & a4,
12421 const A5 & a5) : MockClass(a1, a2, a3, a4, a5)
12423 ::testing::Mock::AllowUninterestingCalls(
12424 internal::ImplicitCast_<MockClass *>(
this));
12427 template <
typename A1,
typename A2,
typename A3,
typename A4,
typename A5,
12429 NiceMock(
const A1 & a1,
const A2 & a2,
const A3 & a3,
const A4 & a4,
12430 const A5 & a5,
const A6 & a6) : MockClass(a1, a2, a3, a4, a5, a6)
12432 ::testing::Mock::AllowUninterestingCalls(
12433 internal::ImplicitCast_<MockClass *>(
this));
12436 template <
typename A1,
typename A2,
typename A3,
typename A4,
typename A5,
12437 typename A6,
typename A7>
12438 NiceMock(
const A1 & a1,
const A2 & a2,
const A3 & a3,
const A4 & a4,
12439 const A5 & a5,
const A6 & a6,
const A7 & a7) : MockClass(a1, a2, a3, a4, a5,
12442 ::testing::Mock::AllowUninterestingCalls(
12443 internal::ImplicitCast_<MockClass *>(
this));
12446 template <
typename A1,
typename A2,
typename A3,
typename A4,
typename A5,
12447 typename A6,
typename A7,
typename A8>
12448 NiceMock(
const A1 & a1,
const A2 & a2,
const A3 & a3,
const A4 & a4,
12449 const A5 & a5,
const A6 & a6,
const A7 & a7,
const A8 & a8) : MockClass(a1,
12450 a2, a3, a4, a5, a6, a7, a8)
12452 ::testing::Mock::AllowUninterestingCalls(
12453 internal::ImplicitCast_<MockClass *>(
this));
12456 template <
typename A1,
typename A2,
typename A3,
typename A4,
typename A5,
12457 typename A6,
typename A7,
typename A8,
typename A9>
12458 NiceMock(
const A1 & a1,
const A2 & a2,
const A3 & a3,
const A4 & a4,
12459 const A5 & a5,
const A6 & a6,
const A7 & a7,
const A8 & a8,
12460 const A9 & a9) : MockClass(a1, a2, a3, a4, a5, a6, a7, a8, a9)
12462 ::testing::Mock::AllowUninterestingCalls(
12463 internal::ImplicitCast_<MockClass *>(
this));
12466 template <
typename A1,
typename A2,
typename A3,
typename A4,
typename A5,
12467 typename A6,
typename A7,
typename A8,
typename A9,
typename A10>
12468 NiceMock(
const A1 & a1,
const A2 & a2,
const A3 & a3,
const A4 & a4,
12469 const A5 & a5,
const A6 & a6,
const A7 & a7,
const A8 & a8,
const A9 & a9,
12470 const A10 & a10) : MockClass(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
12472 ::testing::Mock::AllowUninterestingCalls(
12473 internal::ImplicitCast_<MockClass *>(
this));
12478 ::testing::Mock::UnregisterCallReaction(
12479 internal::ImplicitCast_<MockClass *>(
this));
12486 template <
class MockClass>
12494 ::testing::Mock::WarnUninterestingCalls(
12495 internal::ImplicitCast_<MockClass *>(
this));
12500 template <
typename A1>
12503 ::testing::Mock::WarnUninterestingCalls(
12504 internal::ImplicitCast_<MockClass *>(
this));
12506 template <
typename A1,
typename A2>
12509 ::testing::Mock::WarnUninterestingCalls(
12510 internal::ImplicitCast_<MockClass *>(
this));
12513 template <
typename A1,
typename A2,
typename A3>
12514 NaggyMock(
const A1 & a1,
const A2 & a2,
const A3 & a3) : MockClass(a1, a2, a3)
12516 ::testing::Mock::WarnUninterestingCalls(
12517 internal::ImplicitCast_<MockClass *>(
this));
12520 template <
typename A1,
typename A2,
typename A3,
typename A4>
12522 const A4 & a4) : MockClass(a1, a2, a3, a4)
12524 ::testing::Mock::WarnUninterestingCalls(
12525 internal::ImplicitCast_<MockClass *>(
this));
12528 template <
typename A1,
typename A2,
typename A3,
typename A4,
typename A5>
12529 NaggyMock(
const A1 & a1,
const A2 & a2,
const A3 & a3,
const A4 & a4,
12530 const A5 & a5) : MockClass(a1, a2, a3, a4, a5)
12532 ::testing::Mock::WarnUninterestingCalls(
12533 internal::ImplicitCast_<MockClass *>(
this));
12536 template <
typename A1,
typename A2,
typename A3,
typename A4,
typename A5,
12538 NaggyMock(
const A1 & a1,
const A2 & a2,
const A3 & a3,
const A4 & a4,
12539 const A5 & a5,
const A6 & a6) : MockClass(a1, a2, a3, a4, a5, a6)
12541 ::testing::Mock::WarnUninterestingCalls(
12542 internal::ImplicitCast_<MockClass *>(
this));
12545 template <
typename A1,
typename A2,
typename A3,
typename A4,
typename A5,
12546 typename A6,
typename A7>
12547 NaggyMock(
const A1 & a1,
const A2 & a2,
const A3 & a3,
const A4 & a4,
12548 const A5 & a5,
const A6 & a6,
const A7 & a7) : MockClass(a1, a2, a3, a4, a5,
12551 ::testing::Mock::WarnUninterestingCalls(
12552 internal::ImplicitCast_<MockClass *>(
this));
12555 template <
typename A1,
typename A2,
typename A3,
typename A4,
typename A5,
12556 typename A6,
typename A7,
typename A8>
12557 NaggyMock(
const A1 & a1,
const A2 & a2,
const A3 & a3,
const A4 & a4,
12558 const A5 & a5,
const A6 & a6,
const A7 & a7,
const A8 & a8) : MockClass(a1,
12559 a2, a3, a4, a5, a6, a7, a8)
12561 ::testing::Mock::WarnUninterestingCalls(
12562 internal::ImplicitCast_<MockClass *>(
this));
12565 template <
typename A1,
typename A2,
typename A3,
typename A4,
typename A5,
12566 typename A6,
typename A7,
typename A8,
typename A9>
12567 NaggyMock(
const A1 & a1,
const A2 & a2,
const A3 & a3,
const A4 & a4,
12568 const A5 & a5,
const A6 & a6,
const A7 & a7,
const A8 & a8,
12569 const A9 & a9) : MockClass(a1, a2, a3, a4, a5, a6, a7, a8, a9)
12571 ::testing::Mock::WarnUninterestingCalls(
12572 internal::ImplicitCast_<MockClass *>(
this));
12575 template <
typename A1,
typename A2,
typename A3,
typename A4,
typename A5,
12576 typename A6,
typename A7,
typename A8,
typename A9,
typename A10>
12577 NaggyMock(
const A1 & a1,
const A2 & a2,
const A3 & a3,
const A4 & a4,
12578 const A5 & a5,
const A6 & a6,
const A7 & a7,
const A8 & a8,
const A9 & a9,
12579 const A10 & a10) : MockClass(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
12581 ::testing::Mock::WarnUninterestingCalls(
12582 internal::ImplicitCast_<MockClass *>(
this));
12587 ::testing::Mock::UnregisterCallReaction(
12588 internal::ImplicitCast_<MockClass *>(
this));
12595 template <
class MockClass>
12603 ::testing::Mock::FailUninterestingCalls(
12604 internal::ImplicitCast_<MockClass *>(
this));
12609 template <
typename A1>
12612 ::testing::Mock::FailUninterestingCalls(
12613 internal::ImplicitCast_<MockClass *>(
this));
12615 template <
typename A1,
typename A2>
12618 ::testing::Mock::FailUninterestingCalls(
12619 internal::ImplicitCast_<MockClass *>(
this));
12622 template <
typename A1,
typename A2,
typename A3>
12623 StrictMock(
const A1 & a1,
const A2 & a2,
const A3 & a3) : MockClass(a1, a2, a3)
12625 ::testing::Mock::FailUninterestingCalls(
12626 internal::ImplicitCast_<MockClass *>(
this));
12629 template <
typename A1,
typename A2,
typename A3,
typename A4>
12631 const A4 & a4) : MockClass(a1, a2, a3, a4)
12633 ::testing::Mock::FailUninterestingCalls(
12634 internal::ImplicitCast_<MockClass *>(
this));
12637 template <
typename A1,
typename A2,
typename A3,
typename A4,
typename A5>
12638 StrictMock(
const A1 & a1,
const A2 & a2,
const A3 & a3,
const A4 & a4,
12639 const A5 & a5) : MockClass(a1, a2, a3, a4, a5)
12641 ::testing::Mock::FailUninterestingCalls(
12642 internal::ImplicitCast_<MockClass *>(
this));
12645 template <
typename A1,
typename A2,
typename A3,
typename A4,
typename A5,
12647 StrictMock(
const A1 & a1,
const A2 & a2,
const A3 & a3,
const A4 & a4,
12648 const A5 & a5,
const A6 & a6) : MockClass(a1, a2, a3, a4, a5, a6)
12650 ::testing::Mock::FailUninterestingCalls(
12651 internal::ImplicitCast_<MockClass *>(
this));
12654 template <
typename A1,
typename A2,
typename A3,
typename A4,
typename A5,
12655 typename A6,
typename A7>
12656 StrictMock(
const A1 & a1,
const A2 & a2,
const A3 & a3,
const A4 & a4,
12657 const A5 & a5,
const A6 & a6,
const A7 & a7) : MockClass(a1, a2, a3, a4, a5,
12660 ::testing::Mock::FailUninterestingCalls(
12661 internal::ImplicitCast_<MockClass *>(
this));
12664 template <
typename A1,
typename A2,
typename A3,
typename A4,
typename A5,
12665 typename A6,
typename A7,
typename A8>
12666 StrictMock(
const A1 & a1,
const A2 & a2,
const A3 & a3,
const A4 & a4,
12667 const A5 & a5,
const A6 & a6,
const A7 & a7,
const A8 & a8) : MockClass(a1,
12668 a2, a3, a4, a5, a6, a7, a8)
12670 ::testing::Mock::FailUninterestingCalls(
12671 internal::ImplicitCast_<MockClass *>(
this));
12674 template <
typename A1,
typename A2,
typename A3,
typename A4,
typename A5,
12675 typename A6,
typename A7,
typename A8,
typename A9>
12676 StrictMock(
const A1 & a1,
const A2 & a2,
const A3 & a3,
const A4 & a4,
12677 const A5 & a5,
const A6 & a6,
const A7 & a7,
const A8 & a8,
12678 const A9 & a9) : MockClass(a1, a2, a3, a4, a5, a6, a7, a8, a9)
12680 ::testing::Mock::FailUninterestingCalls(
12681 internal::ImplicitCast_<MockClass *>(
this));
12684 template <
typename A1,
typename A2,
typename A3,
typename A4,
typename A5,
12685 typename A6,
typename A7,
typename A8,
typename A9,
typename A10>
12686 StrictMock(
const A1 & a1,
const A2 & a2,
const A3 & a3,
const A4 & a4,
12687 const A5 & a5,
const A6 & a6,
const A7 & a7,
const A8 & a8,
const A9 & a9,
12688 const A10 & a10) : MockClass(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
12690 ::testing::Mock::FailUninterestingCalls(
12691 internal::ImplicitCast_<MockClass *>(
this));
12696 ::testing::Mock::UnregisterCallReaction(
12697 internal::ImplicitCast_<MockClass *>(
this));
12711 template <
typename MockClass>
12712 class NiceMock<NiceMock<MockClass> >;
12713 template <
typename MockClass>
12714 class NiceMock<NaggyMock<MockClass> >;
12715 template <
typename MockClass>
12716 class NiceMock<StrictMock<MockClass> >;
12718 template <
typename MockClass>
12719 class NaggyMock<NiceMock<MockClass> >;
12720 template <
typename MockClass>
12721 class NaggyMock<NaggyMock<MockClass> >;
12722 template <
typename MockClass>
12723 class NaggyMock<StrictMock<MockClass> >;
12725 template <
typename MockClass>
12726 class StrictMock<NiceMock<MockClass> >;
12727 template <
typename MockClass>
12728 class StrictMock<NaggyMock<MockClass> >;
12729 template <
typename MockClass>
12730 class StrictMock<StrictMock<MockClass> >;
12734 #endif // GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_NICE_STRICT_H_ 12772 #ifndef GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_MATCHERS_H_ 12773 #define GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_MATCHERS_H_ 12775 #include <iterator> 12786 #define GMOCK_FIELD_TYPE_(Tuple, i) \ 12787 typename ::std::tr1::tuple_element<i, Tuple>::type 12800 template <
class Tuple,
int k0 = -1,
int k1 = -1,
int k2 = -1,
int k3 = -1,
12801 int k4 = -1,
int k5 = -1,
int k6 = -1,
int k7 = -1,
int k8 = -1,
12806 template <
class Tuple,
int k0,
int k1,
int k2,
int k3,
int k4,
int k5,
int k6,
12807 int k7,
int k8,
int k9>
12820 return type(get<k0>(t), get<k1>(t), get<k2>(t), get<k3>(t), get<k4>(t),
12821 get<k5>(t), get<k6>(t), get<k7>(t), get<k8>(t), get<k9>(t));
12827 template <
class Tuple>
12828 class TupleFields < Tuple, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 >
12839 template <
class Tuple,
int k0>
12840 class TupleFields < Tuple, k0, -1, -1, -1, -1, -1, -1, -1, -1, -1 >
12843 typedef ::std::tr1::tuple<GMOCK_FIELD_TYPE_(Tuple, k0)>
type;
12847 return type(get<k0>(t));
12851 template <
class Tuple,
int k0,
int k1>
12852 class TupleFields < Tuple, k0, k1, -1, -1, -1, -1, -1, -1, -1, -1 >
12860 return type(get<k0>(t), get<k1>(t));
12864 template <
class Tuple,
int k0,
int k1,
int k2>
12865 class TupleFields < Tuple, k0, k1, k2, -1, -1, -1, -1, -1, -1, -1 >
12873 return type(get<k0>(t), get<k1>(t), get<k2>(t));
12877 template <
class Tuple,
int k0,
int k1,
int k2,
int k3>
12878 class TupleFields < Tuple, k0, k1, k2, k3, -1, -1, -1, -1, -1, -1 >
12887 return type(get<k0>(t), get<k1>(t), get<k2>(t), get<k3>(t));
12891 template <
class Tuple,
int k0,
int k1,
int k2,
int k3,
int k4>
12892 class TupleFields < Tuple, k0, k1, k2, k3, k4, -1, -1, -1, -1, -1 >
12901 return type(get<k0>(t), get<k1>(t), get<k2>(t), get<k3>(t), get<k4>(t));
12905 template <
class Tuple,
int k0,
int k1,
int k2,
int k3,
int k4,
int k5>
12906 class TupleFields < Tuple, k0, k1, k2, k3, k4, k5, -1, -1, -1, -1 >
12916 return type(get<k0>(t), get<k1>(t), get<k2>(t), get<k3>(t), get<k4>(t),
12921 template <
class Tuple,
int k0,
int k1,
int k2,
int k3,
int k4,
int k5,
int k6>
12922 class TupleFields < Tuple, k0, k1, k2, k3, k4, k5, k6, -1, -1, -1 >
12932 return type(get<k0>(t), get<k1>(t), get<k2>(t), get<k3>(t), get<k4>(t),
12933 get<k5>(t), get<k6>(t));
12937 template <
class Tuple,
int k0,
int k1,
int k2,
int k3,
int k4,
int k5,
int k6,
12939 class TupleFields < Tuple, k0, k1, k2, k3, k4, k5, k6, k7, -1, -1 >
12950 return type(get<k0>(t), get<k1>(t), get<k2>(t), get<k3>(t), get<k4>(t),
12951 get<k5>(t), get<k6>(t), get<k7>(t));
12955 template <
class Tuple,
int k0,
int k1,
int k2,
int k3,
int k4,
int k5,
int k6,
12957 class TupleFields < Tuple, k0, k1, k2, k3, k4, k5, k6, k7, k8, -1 >
12968 return type(get<k0>(t), get<k1>(t), get<k2>(t), get<k3>(t), get<k4>(t),
12969 get<k5>(t), get<k6>(t), get<k7>(t), get<k8>(t));
12973 #undef GMOCK_FIELD_TYPE_ 12976 template <
class ArgsTuple,
int k0 = -1,
int k1 = -1,
int k2 = -1,
int k3 = -1,
12977 int k4 = -1,
int k5 = -1,
int k6 = -1,
int k7 = -1,
int k8 = -1,
12988 template <
typename InnerMatcher>
12990 : inner_matcher_(
SafeMatcherCast<const SelectedArgs & >(inner_matcher)) {}
12995 const SelectedArgs & selected_args = GetSelectedArgs(args);
12998 {
return inner_matcher_.Matches(selected_args); }
13000 PrintIndices(listener->
stream());
13004 const bool match = inner_matcher_.MatchAndExplain(selected_args,
13012 *os <<
"are a tuple ";
13014 inner_matcher_.DescribeTo(os);
13019 *os <<
"are a tuple ";
13021 inner_matcher_.DescribeNegationTo(os);
13027 return TupleFields<RawArgsTuple, k0, k1, k2, k3, k4, k5, k6, k7, k8,
13028 k9>::GetSelectedFields(args);
13034 *os <<
"whose fields (";
13035 const int indices[10] = { k0, k1, k2, k3, k4, k5, k6, k7, k8, k9 };
13037 for (
int i = 0; i < 10; i++)
13039 if (indices[i] < 0)
13045 *os <<
"#" << indices[i];
13056 template <
class InnerMatcher,
int k0 = -1,
int k1 = -1,
int k2 = -1,
13057 int k3 = -1,
int k4 = -1,
int k5 = -1,
int k6 = -1,
int k7 = -1,
13058 int k8 = -1,
int k9 = -1 >
13063 : inner_matcher_(inner_matcher) {}
13065 template <
typename ArgsTuple>
13069 k6, k7, k8, k9>(inner_matcher_));
13084 template <
typename M1>
13090 template <
typename M1,
typename M2>
13099 template <
typename M1,
typename M2,
typename M3>
13108 template <
typename M1,
typename M2,
typename M3,
typename M4>
13117 template <
typename M1,
typename M2,
typename M3,
typename M4,
typename M5>
13126 template <
typename M1,
typename M2,
typename M3,
typename M4,
typename M5,
13136 template <
typename M1,
typename M2,
typename M3,
typename M4,
typename M5,
13137 typename M6,
typename M7>
13146 template <
typename M1,
typename M2,
typename M3,
typename M4,
typename M5,
13147 typename M6,
typename M7,
typename M8>
13156 template <
typename M1,
typename M2,
typename M3,
typename M4,
typename M5,
13157 typename M6,
typename M7,
typename M8,
typename M9>
13166 template <
typename M1,
typename M2,
typename M3,
typename M4,
typename M5,
13167 typename M6,
typename M7,
typename M8,
typename M9,
typename M10>
13182 template <
typename M1>
13188 template <
typename M1,
typename M2>
13197 template <
typename M1,
typename M2,
typename M3>
13206 template <
typename M1,
typename M2,
typename M3,
typename M4>
13215 template <
typename M1,
typename M2,
typename M3,
typename M4,
typename M5>
13224 template <
typename M1,
typename M2,
typename M3,
typename M4,
typename M5,
13234 template <
typename M1,
typename M2,
typename M3,
typename M4,
typename M5,
13235 typename M6,
typename M7>
13244 template <
typename M1,
typename M2,
typename M3,
typename M4,
typename M5,
13245 typename M6,
typename M7,
typename M8>
13254 template <
typename M1,
typename M2,
typename M3,
typename M4,
typename M5,
13255 typename M6,
typename M7,
typename M8,
typename M9>
13264 template <
typename M1,
typename M2,
typename M3,
typename M4,
typename M5,
13265 typename M6,
typename M7,
typename M8,
typename M9,
typename M10>
13279 template <
typename InnerMatcher>
13286 template <
int k1,
typename InnerMatcher>
13293 template <
int k1,
int k2,
typename InnerMatcher>
13300 template <
int k1,
int k2,
int k3,
typename InnerMatcher>
13307 template <
int k1,
int k2,
int k3,
int k4,
typename InnerMatcher>
13314 template <
int k1,
int k2,
int k3,
int k4,
int k5,
typename InnerMatcher>
13321 template <
int k1,
int k2,
int k3,
int k4,
int k5,
int k6,
typename InnerMatcher>
13328 template <
int k1,
int k2,
int k3,
int k4,
int k5,
int k6,
int k7,
13329 typename InnerMatcher>
13337 template <
int k1,
int k2,
int k3,
int k4,
int k5,
int k6,
int k7,
int k8,
13338 typename InnerMatcher>
13346 template <
int k1,
int k2,
int k3,
int k4,
int k5,
int k6,
int k7,
int k8,
13347 int k9,
typename InnerMatcher>
13355 template <
int k1,
int k2,
int k3,
int k4,
int k5,
int k6,
int k7,
int k8,
13356 int k9,
int k10,
typename InnerMatcher>
13357 inline internal::ArgsMatcher<InnerMatcher, k1, k2, k3, k4, k5, k6, k7, k8, k9,
13387 template <
typename T1>
13398 template <
typename T1,
typename T2>
13406 typename internal::DecayArray<T1>::type,
13411 template <
typename T1,
typename T2,
typename T3>
13414 typename internal::DecayArray<T1>::type,
13420 typename internal::DecayArray<T1>::type,
13421 typename internal::DecayArray<T2>::type,
13426 template <
typename T1,
typename T2,
typename T3,
typename T4>
13429 typename internal::DecayArray<T1>::type,
13430 typename internal::DecayArray<T2>::type,
13436 typename internal::DecayArray<T1>::type,
13437 typename internal::DecayArray<T2>::type,
13438 typename internal::DecayArray<T3>::type,
13443 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
13446 typename internal::DecayArray<T1>::type,
13447 typename internal::DecayArray<T2>::type,
13448 typename internal::DecayArray<T3>::type,
13455 typename internal::DecayArray<T1>::type,
13456 typename internal::DecayArray<T2>::type,
13457 typename internal::DecayArray<T3>::type,
13458 typename internal::DecayArray<T4>::type,
13463 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
13467 typename internal::DecayArray<T1>::type,
13468 typename internal::DecayArray<T2>::type,
13469 typename internal::DecayArray<T3>::type,
13470 typename internal::DecayArray<T4>::type,
13474 const T5 & e5,
const T6 & e6)
13477 typename internal::DecayArray<T1>::type,
13478 typename internal::DecayArray<T2>::type,
13479 typename internal::DecayArray<T3>::type,
13480 typename internal::DecayArray<T4>::type,
13481 typename internal::DecayArray<T5>::type,
13486 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
13487 typename T6,
typename T7>
13490 typename internal::DecayArray<T1>::type,
13491 typename internal::DecayArray<T2>::type,
13492 typename internal::DecayArray<T3>::type,
13493 typename internal::DecayArray<T4>::type,
13494 typename internal::DecayArray<T5>::type,
13498 const T5 & e5,
const T6 & e6,
const T7 & e7)
13501 typename internal::DecayArray<T1>::type,
13502 typename internal::DecayArray<T2>::type,
13503 typename internal::DecayArray<T3>::type,
13504 typename internal::DecayArray<T4>::type,
13505 typename internal::DecayArray<T5>::type,
13506 typename internal::DecayArray<T6>::type,
13511 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
13512 typename T6,
typename T7,
typename T8>
13515 typename internal::DecayArray<T1>::type,
13516 typename internal::DecayArray<T2>::type,
13517 typename internal::DecayArray<T3>::type,
13518 typename internal::DecayArray<T4>::type,
13519 typename internal::DecayArray<T5>::type,
13520 typename internal::DecayArray<T6>::type,
13524 const T5 & e5,
const T6 & e6,
const T7 & e7,
const T8 & e8)
13527 typename internal::DecayArray<T1>::type,
13528 typename internal::DecayArray<T2>::type,
13529 typename internal::DecayArray<T3>::type,
13530 typename internal::DecayArray<T4>::type,
13531 typename internal::DecayArray<T5>::type,
13532 typename internal::DecayArray<T6>::type,
13533 typename internal::DecayArray<T7>::type,
13539 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
13540 typename T6,
typename T7,
typename T8,
typename T9>
13543 typename internal::DecayArray<T1>::type,
13544 typename internal::DecayArray<T2>::type,
13545 typename internal::DecayArray<T3>::type,
13546 typename internal::DecayArray<T4>::type,
13547 typename internal::DecayArray<T5>::type,
13548 typename internal::DecayArray<T6>::type,
13549 typename internal::DecayArray<T7>::type,
13553 const T5 & e5,
const T6 & e6,
const T7 & e7,
const T8 & e8,
const T9 & e9)
13556 typename internal::DecayArray<T1>::type,
13557 typename internal::DecayArray<T2>::type,
13558 typename internal::DecayArray<T3>::type,
13559 typename internal::DecayArray<T4>::type,
13560 typename internal::DecayArray<T5>::type,
13561 typename internal::DecayArray<T6>::type,
13562 typename internal::DecayArray<T7>::type,
13563 typename internal::DecayArray<T8>::type,
13569 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
13570 typename T6,
typename T7,
typename T8,
typename T9,
typename T10>
13573 typename internal::DecayArray<T1>::type,
13574 typename internal::DecayArray<T2>::type,
13575 typename internal::DecayArray<T3>::type,
13576 typename internal::DecayArray<T4>::type,
13577 typename internal::DecayArray<T5>::type,
13578 typename internal::DecayArray<T6>::type,
13579 typename internal::DecayArray<T7>::type,
13580 typename internal::DecayArray<T8>::type,
13584 const T5 & e5,
const T6 & e6,
const T7 & e7,
const T8 & e8,
const T9 & e9,
13588 typename internal::DecayArray<T1>::type,
13589 typename internal::DecayArray<T2>::type,
13590 typename internal::DecayArray<T3>::type,
13591 typename internal::DecayArray<T4>::type,
13592 typename internal::DecayArray<T5>::type,
13593 typename internal::DecayArray<T6>::type,
13594 typename internal::DecayArray<T7>::type,
13595 typename internal::DecayArray<T8>::type,
13596 typename internal::DecayArray<T9>::type,
13613 template <
typename T1>
13616 typename internal::DecayArray<T1>::type > >
13620 typename internal::DecayArray<T1>::type >
Args;
13624 template <
typename T1,
typename T2>
13627 typename internal::DecayArray<T1>::type,
13628 typename internal::DecayArray<T2>::type > >
13632 typename internal::DecayArray<T1>::type,
13633 typename internal::DecayArray<T2>::type >
Args;
13637 template <
typename T1,
typename T2,
typename T3>
13640 typename internal::DecayArray<T1>::type,
13641 typename internal::DecayArray<T2>::type,
13642 typename internal::DecayArray<T3>::type > >
13646 typename internal::DecayArray<T1>::type,
13647 typename internal::DecayArray<T2>::type,
13648 typename internal::DecayArray<T3>::type >
Args;
13652 template <
typename T1,
typename T2,
typename T3,
typename T4>
13655 typename internal::DecayArray<T1>::type,
13656 typename internal::DecayArray<T2>::type,
13657 typename internal::DecayArray<T3>::type,
13658 typename internal::DecayArray<T4>::type > >
13662 typename internal::DecayArray<T1>::type,
13663 typename internal::DecayArray<T2>::type,
13664 typename internal::DecayArray<T3>::type,
13665 typename internal::DecayArray<T4>::type >
Args;
13669 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
13672 typename internal::DecayArray<T1>::type,
13673 typename internal::DecayArray<T2>::type,
13674 typename internal::DecayArray<T3>::type,
13675 typename internal::DecayArray<T4>::type,
13676 typename internal::DecayArray<T5>::type > >
13681 typename internal::DecayArray<T1>::type,
13682 typename internal::DecayArray<T2>::type,
13683 typename internal::DecayArray<T3>::type,
13684 typename internal::DecayArray<T4>::type,
13685 typename internal::DecayArray<T5>::type >
Args;
13689 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
13693 typename internal::DecayArray<T1>::type,
13694 typename internal::DecayArray<T2>::type,
13695 typename internal::DecayArray<T3>::type,
13696 typename internal::DecayArray<T4>::type,
13697 typename internal::DecayArray<T5>::type,
13698 typename internal::DecayArray<T6>::type > >
13700 const T5 & e5,
const T6 & e6)
13703 typename internal::DecayArray<T1>::type,
13704 typename internal::DecayArray<T2>::type,
13705 typename internal::DecayArray<T3>::type,
13706 typename internal::DecayArray<T4>::type,
13707 typename internal::DecayArray<T5>::type,
13708 typename internal::DecayArray<T6>::type >
Args;
13713 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
13714 typename T6,
typename T7>
13717 typename internal::DecayArray<T1>::type,
13718 typename internal::DecayArray<T2>::type,
13719 typename internal::DecayArray<T3>::type,
13720 typename internal::DecayArray<T4>::type,
13721 typename internal::DecayArray<T5>::type,
13722 typename internal::DecayArray<T6>::type,
13723 typename internal::DecayArray<T7>::type > >
13725 const T5 & e5,
const T6 & e6,
const T7 & e7)
13728 typename internal::DecayArray<T1>::type,
13729 typename internal::DecayArray<T2>::type,
13730 typename internal::DecayArray<T3>::type,
13731 typename internal::DecayArray<T4>::type,
13732 typename internal::DecayArray<T5>::type,
13733 typename internal::DecayArray<T6>::type,
13734 typename internal::DecayArray<T7>::type >
Args;
13739 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
13740 typename T6,
typename T7,
typename T8>
13743 typename internal::DecayArray<T1>::type,
13744 typename internal::DecayArray<T2>::type,
13745 typename internal::DecayArray<T3>::type,
13746 typename internal::DecayArray<T4>::type,
13747 typename internal::DecayArray<T5>::type,
13748 typename internal::DecayArray<T6>::type,
13749 typename internal::DecayArray<T7>::type,
13750 typename internal::DecayArray<T8>::type > >
13752 const T5 & e5,
const T6 & e6,
const T7 & e7,
const T8 & e8)
13755 typename internal::DecayArray<T1>::type,
13756 typename internal::DecayArray<T2>::type,
13757 typename internal::DecayArray<T3>::type,
13758 typename internal::DecayArray<T4>::type,
13759 typename internal::DecayArray<T5>::type,
13760 typename internal::DecayArray<T6>::type,
13761 typename internal::DecayArray<T7>::type,
13762 typename internal::DecayArray<T8>::type >
Args;
13767 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
13768 typename T6,
typename T7,
typename T8,
typename T9>
13771 typename internal::DecayArray<T1>::type,
13772 typename internal::DecayArray<T2>::type,
13773 typename internal::DecayArray<T3>::type,
13774 typename internal::DecayArray<T4>::type,
13775 typename internal::DecayArray<T5>::type,
13776 typename internal::DecayArray<T6>::type,
13777 typename internal::DecayArray<T7>::type,
13778 typename internal::DecayArray<T8>::type,
13779 typename internal::DecayArray<T9>::type > >
13781 const T5 & e5,
const T6 & e6,
const T7 & e7,
const T8 & e8,
const T9 & e9)
13784 typename internal::DecayArray<T1>::type,
13785 typename internal::DecayArray<T2>::type,
13786 typename internal::DecayArray<T3>::type,
13787 typename internal::DecayArray<T4>::type,
13788 typename internal::DecayArray<T5>::type,
13789 typename internal::DecayArray<T6>::type,
13790 typename internal::DecayArray<T7>::type,
13791 typename internal::DecayArray<T8>::type,
13792 typename internal::DecayArray<T9>::type >
Args;
13797 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
13798 typename T6,
typename T7,
typename T8,
typename T9,
typename T10>
13801 typename internal::DecayArray<T1>::type,
13802 typename internal::DecayArray<T2>::type,
13803 typename internal::DecayArray<T3>::type,
13804 typename internal::DecayArray<T4>::type,
13805 typename internal::DecayArray<T5>::type,
13806 typename internal::DecayArray<T6>::type,
13807 typename internal::DecayArray<T7>::type,
13808 typename internal::DecayArray<T8>::type,
13809 typename internal::DecayArray<T9>::type,
13812 const T5 & e5,
const T6 & e6,
const T7 & e7,
const T8 & e8,
const T9 & e9,
13816 typename internal::DecayArray<T1>::type,
13817 typename internal::DecayArray<T2>::type,
13818 typename internal::DecayArray<T3>::type,
13819 typename internal::DecayArray<T4>::type,
13820 typename internal::DecayArray<T5>::type,
13821 typename internal::DecayArray<T6>::type,
13822 typename internal::DecayArray<T7>::type,
13823 typename internal::DecayArray<T8>::type,
13824 typename internal::DecayArray<T9>::type,
13827 e6, e7, e8, e9, e10));
13833 template <
typename M1,
typename M2>
13842 template <
typename M1,
typename M2,
typename M3>
13851 template <
typename M1,
typename M2,
typename M3,
typename M4>
13860 template <
typename M1,
typename M2,
typename M3,
typename M4,
typename M5>
13869 template <
typename M1,
typename M2,
typename M3,
typename M4,
typename M5,
13872 AllOf(M1 m1, M2 m2, M3 m3, M4 m4, M5 m5, M6 m6)
13879 template <
typename M1,
typename M2,
typename M3,
typename M4,
typename M5,
13880 typename M6,
typename M7>
13882 AllOf(M1 m1, M2 m2, M3 m3, M4 m4, M5 m5, M6 m6, M7 m7)
13889 template <
typename M1,
typename M2,
typename M3,
typename M4,
typename M5,
13890 typename M6,
typename M7,
typename M8>
13892 AllOf(M1 m1, M2 m2, M3 m3, M4 m4, M5 m5, M6 m6, M7 m7, M8 m8)
13899 template <
typename M1,
typename M2,
typename M3,
typename M4,
typename M5,
13900 typename M6,
typename M7,
typename M8,
typename M9>
13902 AllOf(M1 m1, M2 m2, M3 m3, M4 m4, M5 m5, M6 m6, M7 m7, M8 m8, M9 m9)
13910 template <
typename M1,
typename M2,
typename M3,
typename M4,
typename M5,
13911 typename M6,
typename M7,
typename M8,
typename M9,
typename M10>
13914 AllOf(M1 m1, M2 m2, M3 m3, M4 m4, M5 m5, M6 m6, M7 m7, M8 m8, M9 m9, M10 m10)
13925 template <
typename M1,
typename M2>
13934 template <
typename M1,
typename M2,
typename M3>
13943 template <
typename M1,
typename M2,
typename M3,
typename M4>
13952 template <
typename M1,
typename M2,
typename M3,
typename M4,
typename M5>
13961 template <
typename M1,
typename M2,
typename M3,
typename M4,
typename M5,
13964 AnyOf(M1 m1, M2 m2, M3 m3, M4 m4, M5 m5, M6 m6)
13971 template <
typename M1,
typename M2,
typename M3,
typename M4,
typename M5,
13972 typename M6,
typename M7>
13974 AnyOf(M1 m1, M2 m2, M3 m3, M4 m4, M5 m5, M6 m6, M7 m7)
13981 template <
typename M1,
typename M2,
typename M3,
typename M4,
typename M5,
13982 typename M6,
typename M7,
typename M8>
13984 AnyOf(M1 m1, M2 m2, M3 m3, M4 m4, M5 m5, M6 m6, M7 m7, M8 m8)
13991 template <
typename M1,
typename M2,
typename M3,
typename M4,
typename M5,
13992 typename M6,
typename M7,
typename M8,
typename M9>
13994 AnyOf(M1 m1, M2 m2, M3 m3, M4 m4, M5 m5, M6 m6, M7 m7, M8 m8, M9 m9)
14002 template <
typename M1,
typename M2,
typename M3,
typename M4,
typename M5,
14003 typename M6,
typename M7,
typename M8,
typename M9,
typename M10>
14006 AnyOf(M1 m1, M2 m2, M3 m3, M4 m4, M5 m5, M6 m6, M7 m7, M8 m8, M9 m9, M10 m10)
14232 #define MATCHER(name, description)\ 14233 class name##Matcher {\ 14235 template <typename arg_type>\ 14236 class gmock_Impl : public ::testing::MatcherInterface<arg_type> {\ 14240 virtual bool MatchAndExplain(\ 14241 arg_type arg, ::testing::MatchResultListener* result_listener) const;\ 14242 virtual void DescribeTo(::std::ostream* gmock_os) const {\ 14243 *gmock_os << FormatDescription(false);\ 14245 virtual void DescribeNegationTo(::std::ostream* gmock_os) const {\ 14246 *gmock_os << FormatDescription(true);\ 14249 ::testing::internal::string FormatDescription(bool negation) const {\ 14250 const ::testing::internal::string gmock_description = (description);\ 14251 if (!gmock_description.empty())\ 14252 return gmock_description;\ 14253 return ::testing::internal::FormatMatcherDescription(\ 14255 ::testing::internal::UniversalTersePrintTupleFieldsToStrings(\ 14256 ::std::tr1::tuple<>()));\ 14258 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\ 14260 template <typename arg_type>\ 14261 operator ::testing::Matcher<arg_type>() const {\ 14262 return ::testing::Matcher<arg_type>(\ 14263 new gmock_Impl<arg_type>());\ 14268 GTEST_DISALLOW_ASSIGN_(name##Matcher);\ 14270 inline name##Matcher name() {\ 14271 return name##Matcher();\ 14273 template <typename arg_type>\ 14274 bool name##Matcher::gmock_Impl<arg_type>::MatchAndExplain(\ 14276 ::testing::MatchResultListener* result_listener GTEST_ATTRIBUTE_UNUSED_)\ 14279 #define MATCHER_P(name, p0, description)\ 14280 template <typename p0##_type>\ 14281 class name##MatcherP {\ 14283 template <typename arg_type>\ 14284 class gmock_Impl : public ::testing::MatcherInterface<arg_type> {\ 14286 explicit gmock_Impl(p0##_type gmock_p0)\ 14288 virtual bool MatchAndExplain(\ 14289 arg_type arg, ::testing::MatchResultListener* result_listener) const;\ 14290 virtual void DescribeTo(::std::ostream* gmock_os) const {\ 14291 *gmock_os << FormatDescription(false);\ 14293 virtual void DescribeNegationTo(::std::ostream* gmock_os) const {\ 14294 *gmock_os << FormatDescription(true);\ 14298 ::testing::internal::string FormatDescription(bool negation) const {\ 14299 const ::testing::internal::string gmock_description = (description);\ 14300 if (!gmock_description.empty())\ 14301 return gmock_description;\ 14302 return ::testing::internal::FormatMatcherDescription(\ 14304 ::testing::internal::UniversalTersePrintTupleFieldsToStrings(\ 14305 ::std::tr1::tuple<p0##_type>(p0)));\ 14307 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\ 14309 template <typename arg_type>\ 14310 operator ::testing::Matcher<arg_type>() const {\ 14311 return ::testing::Matcher<arg_type>(\ 14312 new gmock_Impl<arg_type>(p0));\ 14314 name##MatcherP(p0##_type gmock_p0) : p0(gmock_p0) {\ 14318 GTEST_DISALLOW_ASSIGN_(name##MatcherP);\ 14320 template <typename p0##_type>\ 14321 inline name##MatcherP<p0##_type> name(p0##_type p0) {\ 14322 return name##MatcherP<p0##_type>(p0);\ 14324 template <typename p0##_type>\ 14325 template <typename arg_type>\ 14326 bool name##MatcherP<p0##_type>::gmock_Impl<arg_type>::MatchAndExplain(\ 14328 ::testing::MatchResultListener* result_listener GTEST_ATTRIBUTE_UNUSED_)\ 14331 #define MATCHER_P2(name, p0, p1, description)\ 14332 template <typename p0##_type, typename p1##_type>\ 14333 class name##MatcherP2 {\ 14335 template <typename arg_type>\ 14336 class gmock_Impl : public ::testing::MatcherInterface<arg_type> {\ 14338 gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1)\ 14339 : p0(gmock_p0), p1(gmock_p1) {}\ 14340 virtual bool MatchAndExplain(\ 14341 arg_type arg, ::testing::MatchResultListener* result_listener) const;\ 14342 virtual void DescribeTo(::std::ostream* gmock_os) const {\ 14343 *gmock_os << FormatDescription(false);\ 14345 virtual void DescribeNegationTo(::std::ostream* gmock_os) const {\ 14346 *gmock_os << FormatDescription(true);\ 14351 ::testing::internal::string FormatDescription(bool negation) const {\ 14352 const ::testing::internal::string gmock_description = (description);\ 14353 if (!gmock_description.empty())\ 14354 return gmock_description;\ 14355 return ::testing::internal::FormatMatcherDescription(\ 14357 ::testing::internal::UniversalTersePrintTupleFieldsToStrings(\ 14358 ::std::tr1::tuple<p0##_type, p1##_type>(p0, p1)));\ 14360 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\ 14362 template <typename arg_type>\ 14363 operator ::testing::Matcher<arg_type>() const {\ 14364 return ::testing::Matcher<arg_type>(\ 14365 new gmock_Impl<arg_type>(p0, p1));\ 14367 name##MatcherP2(p0##_type gmock_p0, p1##_type gmock_p1) : p0(gmock_p0), \ 14373 GTEST_DISALLOW_ASSIGN_(name##MatcherP2);\ 14375 template <typename p0##_type, typename p1##_type>\ 14376 inline name##MatcherP2<p0##_type, p1##_type> name(p0##_type p0, \ 14378 return name##MatcherP2<p0##_type, p1##_type>(p0, p1);\ 14380 template <typename p0##_type, typename p1##_type>\ 14381 template <typename arg_type>\ 14382 bool name##MatcherP2<p0##_type, \ 14383 p1##_type>::gmock_Impl<arg_type>::MatchAndExplain(\ 14385 ::testing::MatchResultListener* result_listener GTEST_ATTRIBUTE_UNUSED_)\ 14388 #define MATCHER_P3(name, p0, p1, p2, description)\ 14389 template <typename p0##_type, typename p1##_type, typename p2##_type>\ 14390 class name##MatcherP3 {\ 14392 template <typename arg_type>\ 14393 class gmock_Impl : public ::testing::MatcherInterface<arg_type> {\ 14395 gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2)\ 14396 : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2) {}\ 14397 virtual bool MatchAndExplain(\ 14398 arg_type arg, ::testing::MatchResultListener* result_listener) const;\ 14399 virtual void DescribeTo(::std::ostream* gmock_os) const {\ 14400 *gmock_os << FormatDescription(false);\ 14402 virtual void DescribeNegationTo(::std::ostream* gmock_os) const {\ 14403 *gmock_os << FormatDescription(true);\ 14409 ::testing::internal::string FormatDescription(bool negation) const {\ 14410 const ::testing::internal::string gmock_description = (description);\ 14411 if (!gmock_description.empty())\ 14412 return gmock_description;\ 14413 return ::testing::internal::FormatMatcherDescription(\ 14415 ::testing::internal::UniversalTersePrintTupleFieldsToStrings(\ 14416 ::std::tr1::tuple<p0##_type, p1##_type, p2##_type>(p0, p1, \ 14419 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\ 14421 template <typename arg_type>\ 14422 operator ::testing::Matcher<arg_type>() const {\ 14423 return ::testing::Matcher<arg_type>(\ 14424 new gmock_Impl<arg_type>(p0, p1, p2));\ 14426 name##MatcherP3(p0##_type gmock_p0, p1##_type gmock_p1, \ 14427 p2##_type gmock_p2) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2) {\ 14433 GTEST_DISALLOW_ASSIGN_(name##MatcherP3);\ 14435 template <typename p0##_type, typename p1##_type, typename p2##_type>\ 14436 inline name##MatcherP3<p0##_type, p1##_type, p2##_type> name(p0##_type p0, \ 14437 p1##_type p1, p2##_type p2) {\ 14438 return name##MatcherP3<p0##_type, p1##_type, p2##_type>(p0, p1, p2);\ 14440 template <typename p0##_type, typename p1##_type, typename p2##_type>\ 14441 template <typename arg_type>\ 14442 bool name##MatcherP3<p0##_type, p1##_type, \ 14443 p2##_type>::gmock_Impl<arg_type>::MatchAndExplain(\ 14445 ::testing::MatchResultListener* result_listener GTEST_ATTRIBUTE_UNUSED_)\ 14448 #define MATCHER_P4(name, p0, p1, p2, p3, description)\ 14449 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 14450 typename p3##_type>\ 14451 class name##MatcherP4 {\ 14453 template <typename arg_type>\ 14454 class gmock_Impl : public ::testing::MatcherInterface<arg_type> {\ 14456 gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ 14457 p3##_type gmock_p3)\ 14458 : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), p3(gmock_p3) {}\ 14459 virtual bool MatchAndExplain(\ 14460 arg_type arg, ::testing::MatchResultListener* result_listener) const;\ 14461 virtual void DescribeTo(::std::ostream* gmock_os) const {\ 14462 *gmock_os << FormatDescription(false);\ 14464 virtual void DescribeNegationTo(::std::ostream* gmock_os) const {\ 14465 *gmock_os << FormatDescription(true);\ 14472 ::testing::internal::string FormatDescription(bool negation) const {\ 14473 const ::testing::internal::string gmock_description = (description);\ 14474 if (!gmock_description.empty())\ 14475 return gmock_description;\ 14476 return ::testing::internal::FormatMatcherDescription(\ 14478 ::testing::internal::UniversalTersePrintTupleFieldsToStrings(\ 14479 ::std::tr1::tuple<p0##_type, p1##_type, p2##_type, \ 14480 p3##_type>(p0, p1, p2, p3)));\ 14482 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\ 14484 template <typename arg_type>\ 14485 operator ::testing::Matcher<arg_type>() const {\ 14486 return ::testing::Matcher<arg_type>(\ 14487 new gmock_Impl<arg_type>(p0, p1, p2, p3));\ 14489 name##MatcherP4(p0##_type gmock_p0, p1##_type gmock_p1, \ 14490 p2##_type gmock_p2, p3##_type gmock_p3) : p0(gmock_p0), p1(gmock_p1), \ 14491 p2(gmock_p2), p3(gmock_p3) {\ 14498 GTEST_DISALLOW_ASSIGN_(name##MatcherP4);\ 14500 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 14501 typename p3##_type>\ 14502 inline name##MatcherP4<p0##_type, p1##_type, p2##_type, \ 14503 p3##_type> name(p0##_type p0, p1##_type p1, p2##_type p2, \ 14505 return name##MatcherP4<p0##_type, p1##_type, p2##_type, p3##_type>(p0, \ 14508 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 14509 typename p3##_type>\ 14510 template <typename arg_type>\ 14511 bool name##MatcherP4<p0##_type, p1##_type, p2##_type, \ 14512 p3##_type>::gmock_Impl<arg_type>::MatchAndExplain(\ 14514 ::testing::MatchResultListener* result_listener GTEST_ATTRIBUTE_UNUSED_)\ 14517 #define MATCHER_P5(name, p0, p1, p2, p3, p4, description)\ 14518 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 14519 typename p3##_type, typename p4##_type>\ 14520 class name##MatcherP5 {\ 14522 template <typename arg_type>\ 14523 class gmock_Impl : public ::testing::MatcherInterface<arg_type> {\ 14525 gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ 14526 p3##_type gmock_p3, p4##_type gmock_p4)\ 14527 : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), p3(gmock_p3), \ 14529 virtual bool MatchAndExplain(\ 14530 arg_type arg, ::testing::MatchResultListener* result_listener) const;\ 14531 virtual void DescribeTo(::std::ostream* gmock_os) const {\ 14532 *gmock_os << FormatDescription(false);\ 14534 virtual void DescribeNegationTo(::std::ostream* gmock_os) const {\ 14535 *gmock_os << FormatDescription(true);\ 14543 ::testing::internal::string FormatDescription(bool negation) const {\ 14544 const ::testing::internal::string gmock_description = (description);\ 14545 if (!gmock_description.empty())\ 14546 return gmock_description;\ 14547 return ::testing::internal::FormatMatcherDescription(\ 14549 ::testing::internal::UniversalTersePrintTupleFieldsToStrings(\ 14550 ::std::tr1::tuple<p0##_type, p1##_type, p2##_type, p3##_type, \ 14551 p4##_type>(p0, p1, p2, p3, p4)));\ 14553 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\ 14555 template <typename arg_type>\ 14556 operator ::testing::Matcher<arg_type>() const {\ 14557 return ::testing::Matcher<arg_type>(\ 14558 new gmock_Impl<arg_type>(p0, p1, p2, p3, p4));\ 14560 name##MatcherP5(p0##_type gmock_p0, p1##_type gmock_p1, \ 14561 p2##_type gmock_p2, p3##_type gmock_p3, \ 14562 p4##_type gmock_p4) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \ 14563 p3(gmock_p3), p4(gmock_p4) {\ 14571 GTEST_DISALLOW_ASSIGN_(name##MatcherP5);\ 14573 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 14574 typename p3##_type, typename p4##_type>\ 14575 inline name##MatcherP5<p0##_type, p1##_type, p2##_type, p3##_type, \ 14576 p4##_type> name(p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, \ 14578 return name##MatcherP5<p0##_type, p1##_type, p2##_type, p3##_type, \ 14579 p4##_type>(p0, p1, p2, p3, p4);\ 14581 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 14582 typename p3##_type, typename p4##_type>\ 14583 template <typename arg_type>\ 14584 bool name##MatcherP5<p0##_type, p1##_type, p2##_type, p3##_type, \ 14585 p4##_type>::gmock_Impl<arg_type>::MatchAndExplain(\ 14587 ::testing::MatchResultListener* result_listener GTEST_ATTRIBUTE_UNUSED_)\ 14590 #define MATCHER_P6(name, p0, p1, p2, p3, p4, p5, description)\ 14591 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 14592 typename p3##_type, typename p4##_type, typename p5##_type>\ 14593 class name##MatcherP6 {\ 14595 template <typename arg_type>\ 14596 class gmock_Impl : public ::testing::MatcherInterface<arg_type> {\ 14598 gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ 14599 p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5)\ 14600 : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), p3(gmock_p3), \ 14601 p4(gmock_p4), p5(gmock_p5) {}\ 14602 virtual bool MatchAndExplain(\ 14603 arg_type arg, ::testing::MatchResultListener* result_listener) const;\ 14604 virtual void DescribeTo(::std::ostream* gmock_os) const {\ 14605 *gmock_os << FormatDescription(false);\ 14607 virtual void DescribeNegationTo(::std::ostream* gmock_os) const {\ 14608 *gmock_os << FormatDescription(true);\ 14617 ::testing::internal::string FormatDescription(bool negation) const {\ 14618 const ::testing::internal::string gmock_description = (description);\ 14619 if (!gmock_description.empty())\ 14620 return gmock_description;\ 14621 return ::testing::internal::FormatMatcherDescription(\ 14623 ::testing::internal::UniversalTersePrintTupleFieldsToStrings(\ 14624 ::std::tr1::tuple<p0##_type, p1##_type, p2##_type, p3##_type, \ 14625 p4##_type, p5##_type>(p0, p1, p2, p3, p4, p5)));\ 14627 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\ 14629 template <typename arg_type>\ 14630 operator ::testing::Matcher<arg_type>() const {\ 14631 return ::testing::Matcher<arg_type>(\ 14632 new gmock_Impl<arg_type>(p0, p1, p2, p3, p4, p5));\ 14634 name##MatcherP6(p0##_type gmock_p0, p1##_type gmock_p1, \ 14635 p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \ 14636 p5##_type gmock_p5) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \ 14637 p3(gmock_p3), p4(gmock_p4), p5(gmock_p5) {\ 14646 GTEST_DISALLOW_ASSIGN_(name##MatcherP6);\ 14648 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 14649 typename p3##_type, typename p4##_type, typename p5##_type>\ 14650 inline name##MatcherP6<p0##_type, p1##_type, p2##_type, p3##_type, \ 14651 p4##_type, p5##_type> name(p0##_type p0, p1##_type p1, p2##_type p2, \ 14652 p3##_type p3, p4##_type p4, p5##_type p5) {\ 14653 return name##MatcherP6<p0##_type, p1##_type, p2##_type, p3##_type, \ 14654 p4##_type, p5##_type>(p0, p1, p2, p3, p4, p5);\ 14656 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 14657 typename p3##_type, typename p4##_type, typename p5##_type>\ 14658 template <typename arg_type>\ 14659 bool name##MatcherP6<p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \ 14660 p5##_type>::gmock_Impl<arg_type>::MatchAndExplain(\ 14662 ::testing::MatchResultListener* result_listener GTEST_ATTRIBUTE_UNUSED_)\ 14665 #define MATCHER_P7(name, p0, p1, p2, p3, p4, p5, p6, description)\ 14666 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 14667 typename p3##_type, typename p4##_type, typename p5##_type, \ 14668 typename p6##_type>\ 14669 class name##MatcherP7 {\ 14671 template <typename arg_type>\ 14672 class gmock_Impl : public ::testing::MatcherInterface<arg_type> {\ 14674 gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ 14675 p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \ 14676 p6##_type gmock_p6)\ 14677 : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), p3(gmock_p3), \ 14678 p4(gmock_p4), p5(gmock_p5), p6(gmock_p6) {}\ 14679 virtual bool MatchAndExplain(\ 14680 arg_type arg, ::testing::MatchResultListener* result_listener) const;\ 14681 virtual void DescribeTo(::std::ostream* gmock_os) const {\ 14682 *gmock_os << FormatDescription(false);\ 14684 virtual void DescribeNegationTo(::std::ostream* gmock_os) const {\ 14685 *gmock_os << FormatDescription(true);\ 14695 ::testing::internal::string FormatDescription(bool negation) const {\ 14696 const ::testing::internal::string gmock_description = (description);\ 14697 if (!gmock_description.empty())\ 14698 return gmock_description;\ 14699 return ::testing::internal::FormatMatcherDescription(\ 14701 ::testing::internal::UniversalTersePrintTupleFieldsToStrings(\ 14702 ::std::tr1::tuple<p0##_type, p1##_type, p2##_type, p3##_type, \ 14703 p4##_type, p5##_type, p6##_type>(p0, p1, p2, p3, p4, p5, \ 14706 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\ 14708 template <typename arg_type>\ 14709 operator ::testing::Matcher<arg_type>() const {\ 14710 return ::testing::Matcher<arg_type>(\ 14711 new gmock_Impl<arg_type>(p0, p1, p2, p3, p4, p5, p6));\ 14713 name##MatcherP7(p0##_type gmock_p0, p1##_type gmock_p1, \ 14714 p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \ 14715 p5##_type gmock_p5, p6##_type gmock_p6) : p0(gmock_p0), p1(gmock_p1), \ 14716 p2(gmock_p2), p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), \ 14727 GTEST_DISALLOW_ASSIGN_(name##MatcherP7);\ 14729 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 14730 typename p3##_type, typename p4##_type, typename p5##_type, \ 14731 typename p6##_type>\ 14732 inline name##MatcherP7<p0##_type, p1##_type, p2##_type, p3##_type, \ 14733 p4##_type, p5##_type, p6##_type> name(p0##_type p0, p1##_type p1, \ 14734 p2##_type p2, p3##_type p3, p4##_type p4, p5##_type p5, \ 14736 return name##MatcherP7<p0##_type, p1##_type, p2##_type, p3##_type, \ 14737 p4##_type, p5##_type, p6##_type>(p0, p1, p2, p3, p4, p5, p6);\ 14739 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 14740 typename p3##_type, typename p4##_type, typename p5##_type, \ 14741 typename p6##_type>\ 14742 template <typename arg_type>\ 14743 bool name##MatcherP7<p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \ 14744 p5##_type, p6##_type>::gmock_Impl<arg_type>::MatchAndExplain(\ 14746 ::testing::MatchResultListener* result_listener GTEST_ATTRIBUTE_UNUSED_)\ 14749 #define MATCHER_P8(name, p0, p1, p2, p3, p4, p5, p6, p7, description)\ 14750 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 14751 typename p3##_type, typename p4##_type, typename p5##_type, \ 14752 typename p6##_type, typename p7##_type>\ 14753 class name##MatcherP8 {\ 14755 template <typename arg_type>\ 14756 class gmock_Impl : public ::testing::MatcherInterface<arg_type> {\ 14758 gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ 14759 p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \ 14760 p6##_type gmock_p6, p7##_type gmock_p7)\ 14761 : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), p3(gmock_p3), \ 14762 p4(gmock_p4), p5(gmock_p5), p6(gmock_p6), p7(gmock_p7) {}\ 14763 virtual bool MatchAndExplain(\ 14764 arg_type arg, ::testing::MatchResultListener* result_listener) const;\ 14765 virtual void DescribeTo(::std::ostream* gmock_os) const {\ 14766 *gmock_os << FormatDescription(false);\ 14768 virtual void DescribeNegationTo(::std::ostream* gmock_os) const {\ 14769 *gmock_os << FormatDescription(true);\ 14780 ::testing::internal::string FormatDescription(bool negation) const {\ 14781 const ::testing::internal::string gmock_description = (description);\ 14782 if (!gmock_description.empty())\ 14783 return gmock_description;\ 14784 return ::testing::internal::FormatMatcherDescription(\ 14786 ::testing::internal::UniversalTersePrintTupleFieldsToStrings(\ 14787 ::std::tr1::tuple<p0##_type, p1##_type, p2##_type, p3##_type, \ 14788 p4##_type, p5##_type, p6##_type, p7##_type>(p0, p1, p2, \ 14789 p3, p4, p5, p6, p7)));\ 14791 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\ 14793 template <typename arg_type>\ 14794 operator ::testing::Matcher<arg_type>() const {\ 14795 return ::testing::Matcher<arg_type>(\ 14796 new gmock_Impl<arg_type>(p0, p1, p2, p3, p4, p5, p6, p7));\ 14798 name##MatcherP8(p0##_type gmock_p0, p1##_type gmock_p1, \ 14799 p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \ 14800 p5##_type gmock_p5, p6##_type gmock_p6, \ 14801 p7##_type gmock_p7) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \ 14802 p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), p6(gmock_p6), \ 14814 GTEST_DISALLOW_ASSIGN_(name##MatcherP8);\ 14816 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 14817 typename p3##_type, typename p4##_type, typename p5##_type, \ 14818 typename p6##_type, typename p7##_type>\ 14819 inline name##MatcherP8<p0##_type, p1##_type, p2##_type, p3##_type, \ 14820 p4##_type, p5##_type, p6##_type, p7##_type> name(p0##_type p0, \ 14821 p1##_type p1, p2##_type p2, p3##_type p3, p4##_type p4, p5##_type p5, \ 14822 p6##_type p6, p7##_type p7) {\ 14823 return name##MatcherP8<p0##_type, p1##_type, p2##_type, p3##_type, \ 14824 p4##_type, p5##_type, p6##_type, p7##_type>(p0, p1, p2, p3, p4, p5, \ 14827 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 14828 typename p3##_type, typename p4##_type, typename p5##_type, \ 14829 typename p6##_type, typename p7##_type>\ 14830 template <typename arg_type>\ 14831 bool name##MatcherP8<p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \ 14832 p5##_type, p6##_type, \ 14833 p7##_type>::gmock_Impl<arg_type>::MatchAndExplain(\ 14835 ::testing::MatchResultListener* result_listener GTEST_ATTRIBUTE_UNUSED_)\ 14838 #define MATCHER_P9(name, p0, p1, p2, p3, p4, p5, p6, p7, p8, description)\ 14839 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 14840 typename p3##_type, typename p4##_type, typename p5##_type, \ 14841 typename p6##_type, typename p7##_type, typename p8##_type>\ 14842 class name##MatcherP9 {\ 14844 template <typename arg_type>\ 14845 class gmock_Impl : public ::testing::MatcherInterface<arg_type> {\ 14847 gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ 14848 p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \ 14849 p6##_type gmock_p6, p7##_type gmock_p7, p8##_type gmock_p8)\ 14850 : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), p3(gmock_p3), \ 14851 p4(gmock_p4), p5(gmock_p5), p6(gmock_p6), p7(gmock_p7), \ 14853 virtual bool MatchAndExplain(\ 14854 arg_type arg, ::testing::MatchResultListener* result_listener) const;\ 14855 virtual void DescribeTo(::std::ostream* gmock_os) const {\ 14856 *gmock_os << FormatDescription(false);\ 14858 virtual void DescribeNegationTo(::std::ostream* gmock_os) const {\ 14859 *gmock_os << FormatDescription(true);\ 14871 ::testing::internal::string FormatDescription(bool negation) const {\ 14872 const ::testing::internal::string gmock_description = (description);\ 14873 if (!gmock_description.empty())\ 14874 return gmock_description;\ 14875 return ::testing::internal::FormatMatcherDescription(\ 14877 ::testing::internal::UniversalTersePrintTupleFieldsToStrings(\ 14878 ::std::tr1::tuple<p0##_type, p1##_type, p2##_type, p3##_type, \ 14879 p4##_type, p5##_type, p6##_type, p7##_type, \ 14880 p8##_type>(p0, p1, p2, p3, p4, p5, p6, p7, p8)));\ 14882 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\ 14884 template <typename arg_type>\ 14885 operator ::testing::Matcher<arg_type>() const {\ 14886 return ::testing::Matcher<arg_type>(\ 14887 new gmock_Impl<arg_type>(p0, p1, p2, p3, p4, p5, p6, p7, p8));\ 14889 name##MatcherP9(p0##_type gmock_p0, p1##_type gmock_p1, \ 14890 p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \ 14891 p5##_type gmock_p5, p6##_type gmock_p6, p7##_type gmock_p7, \ 14892 p8##_type gmock_p8) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \ 14893 p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), p6(gmock_p6), p7(gmock_p7), \ 14906 GTEST_DISALLOW_ASSIGN_(name##MatcherP9);\ 14908 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 14909 typename p3##_type, typename p4##_type, typename p5##_type, \ 14910 typename p6##_type, typename p7##_type, typename p8##_type>\ 14911 inline name##MatcherP9<p0##_type, p1##_type, p2##_type, p3##_type, \ 14912 p4##_type, p5##_type, p6##_type, p7##_type, \ 14913 p8##_type> name(p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, \ 14914 p4##_type p4, p5##_type p5, p6##_type p6, p7##_type p7, \ 14916 return name##MatcherP9<p0##_type, p1##_type, p2##_type, p3##_type, \ 14917 p4##_type, p5##_type, p6##_type, p7##_type, p8##_type>(p0, p1, p2, \ 14918 p3, p4, p5, p6, p7, p8);\ 14920 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 14921 typename p3##_type, typename p4##_type, typename p5##_type, \ 14922 typename p6##_type, typename p7##_type, typename p8##_type>\ 14923 template <typename arg_type>\ 14924 bool name##MatcherP9<p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \ 14925 p5##_type, p6##_type, p7##_type, \ 14926 p8##_type>::gmock_Impl<arg_type>::MatchAndExplain(\ 14928 ::testing::MatchResultListener* result_listener GTEST_ATTRIBUTE_UNUSED_)\ 14931 #define MATCHER_P10(name, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, description)\ 14932 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 14933 typename p3##_type, typename p4##_type, typename p5##_type, \ 14934 typename p6##_type, typename p7##_type, typename p8##_type, \ 14935 typename p9##_type>\ 14936 class name##MatcherP10 {\ 14938 template <typename arg_type>\ 14939 class gmock_Impl : public ::testing::MatcherInterface<arg_type> {\ 14941 gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ 14942 p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \ 14943 p6##_type gmock_p6, p7##_type gmock_p7, p8##_type gmock_p8, \ 14944 p9##_type gmock_p9)\ 14945 : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), p3(gmock_p3), \ 14946 p4(gmock_p4), p5(gmock_p5), p6(gmock_p6), p7(gmock_p7), \ 14947 p8(gmock_p8), p9(gmock_p9) {}\ 14948 virtual bool MatchAndExplain(\ 14949 arg_type arg, ::testing::MatchResultListener* result_listener) const;\ 14950 virtual void DescribeTo(::std::ostream* gmock_os) const {\ 14951 *gmock_os << FormatDescription(false);\ 14953 virtual void DescribeNegationTo(::std::ostream* gmock_os) const {\ 14954 *gmock_os << FormatDescription(true);\ 14967 ::testing::internal::string FormatDescription(bool negation) const {\ 14968 const ::testing::internal::string gmock_description = (description);\ 14969 if (!gmock_description.empty())\ 14970 return gmock_description;\ 14971 return ::testing::internal::FormatMatcherDescription(\ 14973 ::testing::internal::UniversalTersePrintTupleFieldsToStrings(\ 14974 ::std::tr1::tuple<p0##_type, p1##_type, p2##_type, p3##_type, \ 14975 p4##_type, p5##_type, p6##_type, p7##_type, p8##_type, \ 14976 p9##_type>(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9)));\ 14978 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\ 14980 template <typename arg_type>\ 14981 operator ::testing::Matcher<arg_type>() const {\ 14982 return ::testing::Matcher<arg_type>(\ 14983 new gmock_Impl<arg_type>(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9));\ 14985 name##MatcherP10(p0##_type gmock_p0, p1##_type gmock_p1, \ 14986 p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \ 14987 p5##_type gmock_p5, p6##_type gmock_p6, p7##_type gmock_p7, \ 14988 p8##_type gmock_p8, p9##_type gmock_p9) : p0(gmock_p0), p1(gmock_p1), \ 14989 p2(gmock_p2), p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), p6(gmock_p6), \ 14990 p7(gmock_p7), p8(gmock_p8), p9(gmock_p9) {\ 15003 GTEST_DISALLOW_ASSIGN_(name##MatcherP10);\ 15005 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 15006 typename p3##_type, typename p4##_type, typename p5##_type, \ 15007 typename p6##_type, typename p7##_type, typename p8##_type, \ 15008 typename p9##_type>\ 15009 inline name##MatcherP10<p0##_type, p1##_type, p2##_type, p3##_type, \ 15010 p4##_type, p5##_type, p6##_type, p7##_type, p8##_type, \ 15011 p9##_type> name(p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, \ 15012 p4##_type p4, p5##_type p5, p6##_type p6, p7##_type p7, p8##_type p8, \ 15014 return name##MatcherP10<p0##_type, p1##_type, p2##_type, p3##_type, \ 15015 p4##_type, p5##_type, p6##_type, p7##_type, p8##_type, p9##_type>(p0, \ 15016 p1, p2, p3, p4, p5, p6, p7, p8, p9);\ 15018 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 15019 typename p3##_type, typename p4##_type, typename p5##_type, \ 15020 typename p6##_type, typename p7##_type, typename p8##_type, \ 15021 typename p9##_type>\ 15022 template <typename arg_type>\ 15023 bool name##MatcherP10<p0##_type, p1##_type, p2##_type, p3##_type, \ 15024 p4##_type, p5##_type, p6##_type, p7##_type, p8##_type, \ 15025 p9##_type>::gmock_Impl<arg_type>::MatchAndExplain(\ 15027 ::testing::MatchResultListener* result_listener GTEST_ATTRIBUTE_UNUSED_)\ 15030 #endif // GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_MATCHERS_H_ 15066 #ifndef GMOCK_INCLUDE_GMOCK_GMOCK_MORE_ACTIONS_H_ 15067 #define GMOCK_INCLUDE_GMOCK_GMOCK_MORE_ACTIONS_H_ 15069 #include <algorithm> 15082 template <
typename FunctionImpl>
15089 : function_impl_(function_impl) {}
15091 template <
typename Result,
typename ArgumentTuple>
15104 template <
class Class,
typename MethodPtr>
15109 : obj_ptr_(obj_ptr), method_ptr_(method_ptr) {}
15111 template <
typename Result,
typename ArgumentTuple>
15115 obj_ptr_, method_ptr_, args);
15131 template <
typename FunctionImpl>
15133 FunctionImpl function_impl)
15141 template <
class Class,
typename MethodPtr>
15143 Class * obj_ptr, MethodPtr method_ptr)
15153 template <
typename InnerAction>
15165 template <
int k,
typename InnerAction>
15178 # pragma warning(push) 15179 # pragma warning(disable:4100) 15184 HAS_1_TEMPLATE_PARAMS(
int, k),
15185 AND_0_VALUE_PARAMS())
15187 return std::tr1::get<k>(args);
15193 HAS_1_TEMPLATE_PARAMS(
int, k),
15194 AND_1_VALUE_PARAMS(pointer))
15196 *pointer = ::std::tr1::get<k>(args);
15202 HAS_1_TEMPLATE_PARAMS(
int, k),
15203 AND_1_VALUE_PARAMS(pointer))
15205 *pointer = *::std::tr1::get<k>(args);
15211 HAS_1_TEMPLATE_PARAMS(
int, k),
15212 AND_1_VALUE_PARAMS(value))
15214 typedef typename ::std::tr1::tuple_element<k, args_type>::type argk_type;
15219 SetArgReferee_must_be_used_with_a_reference_argument);
15220 ::std::tr1::get<k>(args) = value;
15229 HAS_1_TEMPLATE_PARAMS(
int, k),
15230 AND_2_VALUE_PARAMS(first, last))
15235 # pragma warning(push) // Saves the current warning state. 15236 # pragma warning(disable:4996) // Temporarily disables warning 4996. 15238 ::std::copy(first, last, ::std::tr1::get<k>(args));
15240 # pragma warning(pop) // Restores the warning state. 15247 HAS_1_TEMPLATE_PARAMS(
int, k),
15248 AND_0_VALUE_PARAMS())
15250 delete ::std::tr1::get<k>(args);
15258 #if GTEST_HAS_EXCEPTIONS 15262 # pragma warning(push) // Saves the current warning state. 15263 # pragma warning(disable:4702) // Temporarily disables warning 4702. 15265 ACTION_P(Throw, exception) {
throw exception; }
15267 # pragma warning(pop) // Restores the warning state. 15270 #endif // GTEST_HAS_EXCEPTIONS 15273 # pragma warning(pop) 15278 #endif // GMOCK_INCLUDE_GMOCK_GMOCK_MORE_ACTIONS_H_ 15317 #ifndef GMOCK_GMOCK_MORE_MATCHERS_H_ 15318 #define GMOCK_GMOCK_MORE_MATCHERS_H_ 15326 MATCHER(IsEmpty, negation ?
"isn't empty" :
"is empty")
15333 *result_listener <<
"whose size is " <<
arg.size();
15339 #endif // GMOCK_GMOCK_MORE_MATCHERS_H_ 15367 #endif // GMOCK_INCLUDE_GMOCK_GMOCK_H_ NiceMock(const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4, const A5 &a5)
LhsView::const_reference LhsStlContainerReference
void ExpectSpecProperty(bool property, const string &failure_message) const
IgnoredValue MakeResultIgnoredValue(A1, A2, A3, A4, A5)
StrictMock(const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4, const A5 &a5, const A6 &a6, const A7 &a7)
virtual ~TypedExpectation()
virtual void DescribeTo(::std::ostream *os) const
ArgumentMatcherTuple matchers_
R Invoke(A1 a1, A2 a2, A3 a3, A4 a4)
virtual void DescribeTo(::std::ostream *os) const
NaggyMock(const A1 &a1, const A2 &a2)
PolymorphicMatcher< internal::IsNullMatcher > IsNull()
virtual bool MatchAndExplain(Container container, MatchResultListener *listener) const
virtual void DescribeNegationTo(::std::ostream *os) const
Function< F >::ArgumentMatcherTuple ArgumentMatcherTuple
virtual bool MatchAndExplain(Container container, MatchResultListener *listener) const
void ExpectSpecProperty(bool property, const string &failure_message) const
virtual void DescribeTo(::std::ostream *os) const
MatcherTuple< ArgumentTuple >::type ArgumentMatcherTuple
const MethodPtr method_ptr_
void MakeResultVoid(A1, A2, A3)
GTEST_API_ ThreadLocal< Sequence * > g_gmock_implicit_sequence
internal::GtMatcher< Rhs > Gt(Rhs x)
static R InvokeMethod(Class *obj_ptr, MethodPtr method_ptr, const ::std::tr1::tuple< A1, A2, A3, A4, A5, A6 > &args)
virtual void UntypedDescribeUninterestingCall(const void *untyped_args,::std::ostream *os) const GTEST_LOCK_EXCLUDED_(g_gmock_mutex)
TypeWithSize< 8 >::Int Int64
bool MatchAndExplainImpl(true_type, const Class *p, MatchResultListener *listener) const
virtual bool MatchAndExplain(T x, MatchResultListener *listener) const
static Result Perform(Impl *impl, const ::std::tr1::tuple< A0 > &args)
static void ExplainMatchFailuresTo(const MatcherTuple &matchers, const ValueTuple &values,::std::ostream *os)
void DescribeToHelper(bool expect_eq,::std::ostream *os) const
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4, k5, k6, k7, k8,-1,-1 >::Select static SelectedArgs Select(const ArgumentTuple &args)
void AssertSpecProperty(bool property, const string &failure_message) const
static R InvokeMethod(Class *obj_ptr, MethodPtr method_ptr, const ::std::tr1::tuple< A1, A2, A3, A4, A5, A6, A7, A8 > &args)
internal::StlContainerView< GTEST_REMOVE_REFERENCE_AND_CONST_(Container) > ContainerView
const Matcher< T > matcher1_
virtual void DescribeNegationTo(::std::ostream *os) const
#define MOCK_METHOD0_T(m,...)
testing::internal::TupleFields< Tuple, k0, k1, k2, k3, k4,-1,-1,-1,-1,-1 >::GetSelectedFields static type GetSelectedFields(const Tuple &t)
testing::internal::SelectArgs< Result, ArgumentTuple,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 >::Select static SelectedArgs Select(const ArgumentTuple &)
StartsWithMatcher(const StringType &prefix)
StrEqualityMatcher(const StringType &str, bool expect_eq, bool case_sensitive)
const Matcher< const SecondType & > second_matcher_
internal::StlContainerView< GTEST_REMOVE_REFERENCE_AND_CONST_(LhsContainer) > LhsView
bool Matches(const ArgumentTuple &args) const GTEST_EXCLUSIVE_LOCK_REQUIRED_(g_gmock_mutex)
static Result Perform(Impl *impl, const ::std::tr1::tuple< A0, A1, A2 > &args)
virtual void DescribeTo(::std::ostream *os) const
PolymorphicMatcher< internal::MatchesRegexMatcher > MatchesRegex(const internal::RE *regex)
CallableTraits< Callable >::StorageType CallableStorageType
OnCallSpec(const char *a_file, int a_line, const ArgumentMatcherTuple &matchers)
virtual ~UntypedActionResultHolderBase()
internal::Function< F >::Result Result
static Result Perform(const ArgumentTuple &)
BothOfMatcher< typename AllOfResult3< M1, M2, M3 >::type, typename AllOfResult3< M4, M5, M6 >::type > type
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4, k5, k6,-1,-1,-1,-1 >::Select static SelectedArgs Select(const ArgumentTuple &args)
static Matcher< T > Cast(M polymorphic_matcher_or_value)
internal::NeMatcher< Rhs > Ne(Rhs x)
virtual Result Perform(const ArgumentTuple &args)
virtual ~FunctionMockerBase() GTEST_LOCK_EXCLUDED_(g_gmock_mutex)
const Matcher< InnerMatcherArg > mono_tuple_matcher_
FunctionImpl function_impl_
ExpectationSet(const Expectation &e)
const internal::linked_ptr< internal::ExpectationBase > & expectation_base() const
Impl(const InnerMatcher &matcher)
#define GTEST_DISALLOW_COPY_AND_ASSIGN_(type)
bool MatchAndExplain(const T &value, MatchResultListener *listener) const
bool repeated_action_specified_
internal::NativeArray< RawElement > type
internal::Function< F >::ArgumentTuple ArgumentTuple
virtual void DescribeTo(::std::ostream *os) const
internal::IgnoredValue Unused
EitherOfMatcher< typename AnyOfResult3< M1, M2, M3 >::type, typename AnyOfResult3< M4, M5, M6 >::type > type
testing::internal::TupleFields< Tuple, k0,-1,-1,-1,-1,-1,-1,-1,-1,-1 >::type ::std::tr1::tuple< GMOCK_FIELD_TYPE_(Tuple, k0)> type
NaggyMock(const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4, const A5 &a5)
PolymorphicMatcher< internal::NotNullMatcher > NotNull()
static R Invoke(Function function, const ::std::tr1::tuple< A1, A2, A3, A4, A5, A6, A7 > &args)
GTEST_API_ string ConvertIdentifierNameToWords(const char *id_name)
TypedExpectation & Times(int n)
GTEST_API_ Cardinality AtLeast(int n)
R Invoke(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10)
MockSpec< F > & With(const Matcher< A1 > &m1, const Matcher< A2 > &m2, const Matcher< A3 > &m3, const Matcher< A4 > &m4, const Matcher< A5 > &m5, const Matcher< A6 > &m6, const Matcher< A7 > &m7, const Matcher< A8 > &m8)
AssertionResult AssertionFailure()
virtual void DescribeNegationTo(::std::ostream *os) const
internal::StlContainerView< RhsContainer > RhsView
TypedExpectation(FunctionMockerBase< F > *owner, const char *a_file, int a_line, const string &a_source_text, const ArgumentMatcherTuple &m)
const Matcher< T > matcher2_
EitherOfMatcher(Matcher1 matcher1, Matcher2 matcher2)
::std::vector< T > matchers_
static const_reference ConstReference(const ::std::tr1::tuple< ElementPointer, Size > &array)
PolymorphicMatcher< internal::StartsWithMatcher< internal::string > > StartsWith(const internal::string &prefix)
R Invoke(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
testing::internal::TupleFields< Tuple, k0, k1, k2, k3,-1,-1,-1,-1,-1,-1 >::GetSelectedFields static type GetSelectedFields(const Tuple &t)
Function< F >::ArgumentTuple ArgumentTuple
virtual void DescribeNegationTo(::std::ostream *os) const
internal::linked_ptr< const CardinalityInterface > impl_
static type Copy(const ::std::tr1::tuple< ElementPointer, Size > &array)
static void CheckIsValid(Functor)
virtual bool MatchAndExplain(T value, MatchResultListener *) const
Impl(const Matcher< U > &source_matcher)
MatchResultListener(::std::ostream *os)
::std::tr1::tuple< Matcher< A1 >, Matcher< A2 >, Matcher< A3 > > type
BothOfMatcher(Matcher1 matcher1, Matcher2 matcher2)
static R Call(Function function, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)
MockSpec< F > & With(const Matcher< A1 > &m1, const Matcher< A2 > &m2, const Matcher< A3 > &m3, const Matcher< A4 > &m4, const Matcher< A5 > &m5, const Matcher< A6 > &m6)
GTEST_API_ Cardinality AtMost(int n)
virtual void DescribeTo(::std::ostream *os) const
virtual void UntypedPrintArgs(const void *untyped_args,::std::ostream *os) const
static Result Perform(Impl *impl, const ::std::tr1::tuple<> &args)
InvokeMethodAction(Class *obj_ptr, MethodPtr method_ptr)
MatcherTuple< ArgumentTuple >::type ArgumentMatcherTuple
static R Invoke(Function function, const ::std::tr1::tuple< A1, A2, A3, A4, A5 > &args)
IgnoredValue MakeResultIgnoredValue(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10)
const FirstMatcher first_matcher_
const Matcher< const ::std::vector< LhsValue > & > matcher_
PolymorphicAction< internal::InvokeMethodAction< Class, MethodPtr > > Invoke(Class *obj_ptr, MethodPtr method_ptr)
virtual void DescribeNegationTo(::std::ostream *os) const
BothOfMatcher< typename AllOfResult4< M1, M2, M3, M4 >::type, typename AllOfResult4< M5, M6, M7, M8 >::type > type
static R Call(Function function, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
StrictMock(const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4, const A5 &a5, const A6 &a6, const A7 &a7, const A8 &a8)
virtual void DescribeTo(::std::ostream *os) const
internal::EqMatcher< T > Eq(T x)
void ExplainMatchResultTo(T x,::std::ostream *os) const
Matcher< const ArgumentTuple & > extra_matcher_
::std::string PrintToString(const T &value)
ExpectationSet(internal::ExpectationBase &exp)
LhsView::type LhsStlContainer
const ::std::vector< T > matchers_
static Matcher< T > Cast(const Matcher< U > &source_matcher)
::std::ostream * stream()
internal::StlContainerView< RawContainer > View
TypedExpectation & WillOnce(const Action< F > &action)
const char kErrorVerbosity[]
R Invoke(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
virtual Result Perform(const ArgumentTuple &)
static R Call(Function function, A1 a1, A2 a2)
PolymorphicAction< internal::SetArgumentPointeeAction< N, T, internal::IsAProtocolMessage< T >::value > > SetArgumentPointee(const T &x)
testing::internal::TupleFields< Tuple,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 >::GetSelectedFields static type GetSelectedFields(const Tuple &)
static ActionResultHolder * PerformAction(const Action< F > &action, const typename Function< F >::ArgumentTuple &args)
MatcherTuple< ArgumentTuple >::type ArgumentMatcherTuple
bool IsSatisfied() const GTEST_EXCLUSIVE_LOCK_REQUIRED_(g_gmock_mutex)
internal::Function< F1 >::ArgumentTuple ArgumentTuple
::std::tr1::tuple< Matcher< A1 >, Matcher< A2 >, Matcher< A3 >, Matcher< A4 >, Matcher< A5 > > type
bool ShouldHandleArguments(const ArgumentTuple &args) const GTEST_EXCLUSIVE_LOCK_REQUIRED_(g_gmock_mutex)
bool cardinality_specified() const
internal::SizeIsMatcher< SizeMatcher > SizeIs(const SizeMatcher &size_matcher)
const Action< F > & GetAction() const
const RhsStlContainer rhs_
GTEST_API_ void InitGoogleMock(int *argc, char **argv)
R F(A1, A2, A3, A4, A5, A6, A7, A8)
void DescribeLocationTo(::std::ostream *os) const
std::vector< internal::linked_ptr< ExpectationBase > > UntypedExpectations
static const_reference ConstReference(const RawContainer &container)
static void PrintIndices(::std::ostream *os)
internal::Function< F >::ArgumentTuple ArgumentTuple
RawPairType::second_type SecondType
MatcherTuple< ArgumentTuple >::type ArgumentMatcherTuple
GTEST_API_::std::string FormatFileLocation(const char *file, int line)
Matcher(const MatcherInterface< const internal::string & > *impl)
const Matcher< const KeyType & > inner_matcher_
TypedExpectation< F > * FindMatchingExpectationLocked(const ArgumentTuple &args) const GTEST_EXCLUSIVE_LOCK_REQUIRED_(g_gmock_mutex)
UntypedExpectations untyped_expectations_
#define MOCK_METHOD5_T(m,...)
static Result Perform(Impl *impl, const ::std::tr1::tuple< A0, A1, A2, A3, A4, A5, A6 > &args)
MockSpec(internal::FunctionMockerBase< F > *function_mocker)
AssignAction(T1 *ptr, T2 value)
static R Call(Function function)
ElementsAreArrayMatcher(Iter first, Iter last)
Function< F >::Result Result
static R Invoke(Function function, const ::std::tr1::tuple< A1, A2 > &args)
PolymorphicAction< Impl > MakePolymorphicAction(const Impl &impl)
TypedExpectation & Times(const Cardinality &a_cardinality)
GTEST_API_ bool FindPairing(const MatchMatrix &matrix, MatchResultListener *listener)
::std::tr1::tuple< A1, A2, A3, A4 > ArgumentTuple
::std::tr1::tuple< Matcher< A1 > > type
void DescribeTo(::std::ostream *os) const
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2,-1,-1,-1,-1,-1,-1,-1,-1 >::type Result type(GMOCK_FIELD_(ArgumentTuple, k1), GMOCK_FIELD_(ArgumentTuple, k2))
PolymorphicAction(const Impl &impl)
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2,-1,-1,-1,-1,-1,-1,-1,-1 >::SelectedArgs Function< type >::ArgumentTuple SelectedArgs
virtual bool MatchAndExplain(ArgsTuple args, MatchResultListener *listener) const
IgnoredValue MakeResultIgnoredValue(A1, A2, A3, A4, A5, A6, A7)
bool extra_matcher_specified_
MockSpec< F > & With(const Matcher< A1 > &m1, const Matcher< A2 > &m2, const Matcher< A3 > &m3, const Matcher< A4 > &m4, const Matcher< A5 > &m5, const Matcher< A6 > &m6, const Matcher< A7 > &m7)
TypedExpectation< F > & AddNewExpectation(const char *file, int line, const string &source_text, const ArgumentMatcherTuple &m) GTEST_LOCK_EXCLUDED_(g_gmock_mutex)
StlContainer::value_type Element
virtual bool MatchAndExplain(Pointer pointer, MatchResultListener *listener) const
bool action_count_checked_
virtual void DescribeTo(::std::ostream *os) const
const CallableStorageType callable_
void DescribeTo(::std::ostream *os) const
internal::OnCallSpec< F > & InternalDefaultActionSetAt(const char *file, int line, const char *obj, const char *call)
DoBothAction(Action1 action1, Action2 action2)
PolymorphicMatcher< internal::MatchesRegexMatcher > ContainsRegex(const internal::RE *regex)
size_t SpaceIndex(size_t ilhs, size_t irhs) const
IgnoreResultAction(const A &action)
void MakeResultVoid(A1, A2, A3, A4, A5, A6, A7, A8, A9)
static Matcher< T > Cast(const Matcher< U > &matcher)
std::vector< const void * > UntypedActions
static R InvokeMethod(Class *obj_ptr, MethodPtr method_ptr, const ::std::tr1::tuple< A1, A2, A3, A4, A5 > &args)
#define GMOCK_FIELD_(Tuple, N)
OnCallSpec & With(const Matcher< const ArgumentTuple & > &m)
internal::KeyMatcher< M > Key(M inner_matcher)
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4,-1,-1,-1,-1,-1,-1 >::Select static SelectedArgs Select(const ArgumentTuple &args)
bool HasEdge(size_t ilhs, size_t irhs) const
NiceMock(const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4, const A5 &a5, const A6 &a6)
const Matcher< const ArgumentTuple & > & extra_matcher() const
testing::internal::SelectArgs< Result, ArgumentTuple, k1,-1,-1,-1,-1,-1,-1,-1,-1,-1 >::SelectedArgs Function< type >::ArgumentTuple SelectedArgs
internal::WithArgsAction< InnerAction > WithoutArgs(const InnerAction &action)
EndsWithMatcher(const StringType &suffix)
virtual void DescribeNegationTo(::std::ostream *os) const
internal::NativeArray< RawElement > type
static ActionResultHolder * PerformDefaultAction(const FunctionMockerBase< F > *func_mocker, const typename Function< F >::ArgumentTuple &args, const string &call_description)
const Action< F > & repeated_action() const
TypedExpectation & InSequence(const Sequence &s1, const Sequence &s2, const Sequence &s3, const Sequence &s4)
testing::internal::SelectArgs< Result, ArgumentTuple,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 >::type Result type()
MatcherTuple< ArgumentTuple >::type ArgumentMatcherTuple
internal::string str() const
GTEST_API_ GTEST_DECLARE_STATIC_MUTEX_(g_gmock_mutex)
bool is_retired() const GTEST_EXCLUSIVE_LOCK_REQUIRED_(g_gmock_mutex)
Impl(const InnerAction &action)
internal::Function< F >::ArgumentTuple ArgumentTuple
IgnoredValue MakeResultIgnoredValue(A1)
TypedExpectation & After(const ExpectationSet &s1, const ExpectationSet &s2)
::std::tr1::tuple< Matcher< A1 >, Matcher< A2 >, Matcher< A3 >, Matcher< A4 >, Matcher< A5 >, Matcher< A6 >, Matcher< A7 >, Matcher< A8 > > type
virtual bool MatchAndExplain(Container container, MatchResultListener *listener) const
const Matcher< const Pointee & > matcher_
EitherOfMatcher< typename AnyOfResult2< M1, M2 >::type, typename AnyOfResult3< M3, M4, M5 >::type > type
testing::internal::TupleFields< Tuple, k0, k1, k2, k3, k4, k5, k6, k7, k8,-1 >::GetSelectedFields static type GetSelectedFields(const Tuple &t)
InvokeMethodWithoutArgsAction(Class *obj_ptr, MethodPtr method_ptr)
bool IsInterested() const
InnerMatcher AllArgs(const InnerMatcher &matcher)
void DescribeTo(::std::ostream *os) const
void DescribeTo(::std::ostream *os) const
testing::internal::TupleFields< Tuple, k0, k1, k2,-1,-1,-1,-1,-1,-1,-1 >::GetSelectedFields static type GetSelectedFields(const Tuple &t)
internal::FunctionMockerBase< F > *const function_mocker_
const internal::linked_ptr< Proto > proto_
bool HasMaxAbsError() const
NotMatcherImpl(const Matcher< T > &matcher)
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4, k5, k6, k7,-1,-1,-1 >::Select static SelectedArgs Select(const ArgumentTuple &args)
TypeWithSize< 8 >::UInt UInt64
virtual void DescribeNegationTo(::std::ostream *os) const
bool MatchPrintAndExplain(Value &value, const Matcher< T > &matcher, MatchResultListener *listener)
virtual void DescribeNegationTo(::std::ostream *os) const
Function< F >::ArgumentTuple ArgumentTuple
virtual void DescribeTo(::std::ostream *os) const
void IncrementCallCount() GTEST_EXCLUSIVE_LOCK_REQUIRED_(g_gmock_mutex)
virtual int ConservativeUpperBound() const
void DescribeNegationTo(::std::ostream *os) const
Cardinality(const CardinalityInterface *impl)
EachMatcherImpl(InnerMatcher inner_matcher)
bool IsOverSaturatedByCallCount(int call_count) const
::std::tr1::tuple< Matcher< A1 >, Matcher< A2 >, Matcher< A3 >, Matcher< A4 >, Matcher< A5 >, Matcher< A6 >, Matcher< A7 >, Matcher< A8 >, Matcher< A9 >, Matcher< A10 > > type
internal::PointwiseMatcher< TupleMatcher, GTEST_REMOVE_CONST_(Container)> Pointwise(const TupleMatcher &tuple_matcher, const Container &rhs)
void GetValueAndDelete() const
const MatcherTuple matchers_
internal::FloatingEqMatcher< double > NanSensitiveDoubleEq(double rhs)
QuantifierMatcherImpl(InnerMatcher inner_matcher)
bool operator==(const ExpectationSet &rhs) const
testing::internal::TupleFields< Tuple, k0, k1,-1,-1,-1,-1,-1,-1,-1,-1 >::GetSelectedFields static type GetSelectedFields(const Tuple &t)
internal::ArgsMatcher< InnerMatcher > Args(const InnerMatcher &matcher)
NaggyMock(const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4)
bool TupleMatches(const MatcherTuple &matcher_tuple, const ValueTuple &value_tuple)
testing::internal::TupleFields< Tuple, k0, k1, k2, k3, k4, k5, k6, k7, k8,-1 >::type ::std::tr1::tuple< GMOCK_FIELD_TYPE_(Tuple, k0), GMOCK_FIELD_TYPE_(Tuple, k1), GMOCK_FIELD_TYPE_(Tuple, k2), GMOCK_FIELD_TYPE_(Tuple, k3), GMOCK_FIELD_TYPE_(Tuple, k4), GMOCK_FIELD_TYPE_(Tuple, k5), GMOCK_FIELD_TYPE_(Tuple, k6), GMOCK_FIELD_TYPE_(Tuple, k7), GMOCK_FIELD_TYPE_(Tuple, k8)> type
const InnerMatcher matcher_
virtual Result Perform(const ArgumentTuple &args)
PolymorphicMatcher< internal::EndsWithMatcher< internal::string > > EndsWith(const internal::string &suffix)
virtual bool MatchAndExplain(T obj, MatchResultListener *listener) const
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4, k5, k6,-1,-1,-1,-1 >::SelectedArgs Function< type >::ArgumentTuple SelectedArgs
Result Perform(const ArgumentTuple &args) const
internal::UnorderedElementsAreArrayMatcher< typename::std::iterator_traits< Iter >::value_type > UnorderedElementsAreArray(Iter first, Iter last)
const OnCallSpec< F > * FindOnCallSpec(const ArgumentTuple &args) const
#define GTEST_COMPILE_ASSERT_(expr, msg)
const internal::linked_ptr< const RE > regex_
NiceMock(const A1 &a1, const A2 &a2)
static Result Perform(Impl *impl, const ::std::tr1::tuple< A0, A1 > &args)
static ActionResultHolder * PerformAction(const Action< F > &action, const typename Function< F >::ArgumentTuple &args)
static const_reference ConstReference(const Element(&array)[N])
Function< F >::MakeResultVoid VoidResult
bool CaseInsensitiveCStringEquals(const wchar_t *lhs, const wchar_t *rhs)
void Perform(const ArgumentTuple &args) const
static Result Perform(Impl *impl, const ::std::tr1::tuple< A0, A1, A2, A3, A4, A5 > &args)
Result InvokeWith(const ArgumentTuple &args) GTEST_LOCK_EXCLUDED_(g_gmock_mutex)
static Result Perform(Impl *impl, const ::std::tr1::tuple< A0, A1, A2, A3, A4, A5, A6, A7, A8 > &args)
const Impl & impl() const
::std::tr1::tuple< A1, A2, A3, A4, A5, A6, A7, A8 > ArgumentTuple
static R InvokeMethod(Class *obj_ptr, MethodPtr method_ptr, const ::std::tr1::tuple< A1, A2, A3 > &args)
PolymorphicMatcher< internal::ContainerEqMatcher< GTEST_REMOVE_CONST_(Container)> > ContainerEq(const Container &rhs)
Function< F >::ArgumentTuple ArgumentTuple
InvokeAction(FunctionImpl function_impl)
void MakeResultVoid(A1, A2, A3, A4)
MockSpec< F > current_spec_
virtual void PrintAsActionResult(::std::ostream *os) const
static R Invoke(Function function, const ::std::tr1::tuple< A1, A2, A3, A4, A5, A6 > &args)
IgnoredValue MakeResultIgnoredValue(A1, A2, A3, A4)
GMOCK_DECLARE_bool_(catch_leaked_mocks)
TypedExpectation & After(const ExpectationSet &s1, const ExpectationSet &s2, const ExpectationSet &s3, const ExpectationSet &s4, const ExpectationSet &s5)
FieldMatcher(FieldType Class::*field, const Matcher< const FieldType & > &matcher)
static Matcher< T > Cast(M polymorphic_matcher_or_value)
PolymorphicAction< internal::InvokeWithoutArgsAction< FunctionImpl > > InvokeWithoutArgs(FunctionImpl function_impl)
static R Invoke(Function function, const ::std::tr1::tuple<> &)
internal::Function< F >::ArgumentTuple ArgumentTuple
bool MatchAndExplainImpl(false_type, const Class &obj, MatchResultListener *listener) const
bool MatchAndExplain(T &x, MatchResultListener *) const
View::const_reference StlContainerReference
virtual Result Perform(const ArgumentTuple &)
virtual bool MatchAndExplain(PairType key_value, MatchResultListener *listener) const
EitherOfMatcher< typename AnyOfResult5< M1, M2, M3, M4, M5 >::type, typename AnyOfResult5< M6, M7, M8, M9, M10 >::type > type
internal::ReturnRefAction< R > ReturnRef(R &x)
const Matcher< ResultType > matcher_
virtual bool MatchAndExplain(Container container, MatchResultListener *listener) const
virtual void DescribeNegationTo(::std::ostream *os) const
Function< F >::ArgumentTuple ArgumentTuple
static void Perform(const ArgumentTuple &)
internal::AllOfResult2< M1, M2 >::type AllOf(M1 m1, M2 m2)
const SecondMatcher second_matcher_
internal::RefMatcher< T & > Ref(T &x)
const StringType substring_
NaggyMock(const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4, const A5 &a5, const A6 &a6, const A7 &a7)
TypedExpectation & After(const ExpectationSet &s1, const ExpectationSet &s2, const ExpectationSet &s3, const ExpectationSet &s4)
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4, k5, k6, k7,-1,-1,-1 >::SelectedArgs Function< type >::ArgumentTuple SelectedArgs
NiceMock(const A1 &a1, const A2 &a2, const A3 &a3)
const Matcher< U > source_matcher_
Function< F >::ArgumentTuple ArgumentTuple
internal::Function< F >::ArgumentTuple ArgumentTuple
internal::TupleFields< RawArgsTuple, k0, k1, k2, k3, k4, k5, k6, k7, k8, k9 >::type SelectedArgs
::std::tr1::tuple< Matcher< A1 >, Matcher< A2 >, Matcher< A3 >, Matcher< A4 >, Matcher< A5 >, Matcher< A6 > > type
virtual Expectation GetHandle()
Function< F >::ArgumentTuple ArgumentTuple
PolymorphicMatcher< internal::StrEqualityMatcher< internal::string > > StrEq(const internal::string &str)
internal::Function< F >::ArgumentTuple ArgumentTuple
const char kInfoVerbosity[]
::std::tr1::tuple< A1, A2, A3, A4, A5, A6, A7 > ArgumentTuple
bool operator==(const Expectation &rhs) const
EitherOfMatcher< typename AnyOfResult2< M1, M2 >::type, typename AnyOfResult2< M3, M4 >::type > type
virtual void DescribeTo(::std::ostream *os) const
::std::vector< ElementMatcherPair > ElementMatcherPairs
internal::Function< F >::MakeResultIgnoredValue OriginalFunction
void DescribeTo(::std::ostream *os) const
TypedExpectation & InSequence(const Sequence &s1, const Sequence &s2)
Impl(const SizeMatcher &size_matcher)
testing::internal::InvokeHelper< R,::std::tr1::tuple< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10 > >::InvokeMethod static R InvokeMethod(Class *obj_ptr, MethodPtr method_ptr, const ::std::tr1::tuple< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10 > &args)
internal::Function< F >::ArgumentTuple ArgumentTuple
static R Call(Function function, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
virtual ~MatcherDescriberInterface()
StrictMock(const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4, const A5 &a5, const A6 &a6)
static R InvokeMethod(Class *obj_ptr, MethodPtr method_ptr, const ::std::tr1::tuple<> &)
static R Call(Function function, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)
void DescribeNegationTo(::std::ostream *os) const
static R Call(Function function, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10)
const Action< VoidResult > action1_
const MethodPtr method_ptr_
PairMatcher(FirstMatcher first_matcher, SecondMatcher second_matcher)
bool MatchAndExplain(CharType *s, MatchResultListener *listener) const
GMOCK_DECLARE_KIND_(bool, kBool)
Action< F > MakeAction(ActionInterface< F > *impl)
#define MOCK_METHOD6_T(m,...)
virtual void Perform(const ArgumentTuple &args)
internal::LtMatcher< Rhs > Lt(Rhs x)
StreamMatchResultListener(::std::ostream *os)
ElementsAreMatcher(const MatcherTuple &args)
void DescribeNegationTo(::std::ostream *os) const
static Matcher< T > CastImpl(M polymorphic_matcher_or_value, BooleanConstant< true >)
Expectation::Set::const_iterator const_iterator
OnCallSpec< F > & AddNewOnCallSpec(const char *file, int line, const ArgumentMatcherTuple &m) GTEST_LOCK_EXCLUDED_(g_gmock_mutex)
static Result Perform(Impl *impl, const ::std::tr1::tuple< A0, A1, A2, A3 > &args)
MatcherBase(const MatcherInterface< T > *impl)
int call_count() const GTEST_EXCLUSIVE_LOCK_REQUIRED_(g_gmock_mutex)
internal::FloatingEqMatcher< double > DoubleNear(double rhs, double max_abs_error)
MockSpec< F > & With(const Matcher< A1 > &m1, const Matcher< A2 > &m2)
FloatingEqMatcher(FloatType rhs, bool nan_eq_nan)
bool MatchAndExplain(T x, MatchResultListener *listener) const
const char * source_text() const
int ConservativeUpperBound() const
BothOfMatcher< typename AllOfResult2< M1, M2 >::type, typename AllOfResult3< M3, M4, M5 >::type > type
MatcherTuple< ArgumentTuple >::type ArgumentMatcherTuple
const InnerAction action_
internal::FloatingEqMatcher< double > DoubleEq(double rhs)
virtual int ConservativeLowerBound() const
TypedExpectation & RetiresOnSaturation()
void ReportUninterestingCall(CallReaction reaction, const string &msg)
bool MatchAndExplain(CharType *s, MatchResultListener *listener) const
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2,-1,-1,-1,-1,-1,-1,-1,-1 >::Select static SelectedArgs Select(const ArgumentTuple &args)
void DescribeTo(::std::ostream *os) const
NotMatcher(InnerMatcher matcher)
#define MOCK_METHOD3_T(m,...)
BothOfMatcher< typename AllOfResult5< M1, M2, M3, M4, M5 >::type, typename AllOfResult5< M6, M7, M8, M9, M10 >::type > type
SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4, k5, k6, k7, k8, k9, k10 >::type InnerFunctionType
Matcher(const MatcherInterface< T > *impl)
MockSpec< F > & With(const Matcher< A1 > &m1, const Matcher< A2 > &m2, const Matcher< A3 > &m3, const Matcher< A4 > &m4, const Matcher< A5 > &m5, const Matcher< A6 > &m6, const Matcher< A7 > &m7, const Matcher< A8 > &m8, const Matcher< A9 > &m9)
virtual bool MatchAndExplain(T x, MatchResultListener *listener) const
static R InvokeMethod(Class *obj_ptr, MethodPtr method_ptr, const ::std::tr1::tuple< A1 > &args)
virtual void DescribeNegationTo(::std::ostream *os) const
internal::TypedExpectation< F > & InternalExpectedAt(const char *file, int line, const char *obj, const char *call)
NaggyMock(const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4, const A5 &a5, const A6 &a6, const A7 &a7, const A8 &a8, const A9 &a9)
std::vector< const void * > UntypedOnCallSpecs
MatcherTuple< ArgumentTuple >::type ArgumentMatcherTuple
const SizeMatcher size_matcher_
Expectation::Set::value_type value_type
UntypedOnCallSpecs untyped_on_call_specs_
internal::UnorderedElementsAreMatcher< std::tr1::tuple<> > UnorderedElementsAre()
#define GMOCK_FIELD_TYPE_(Tuple, i)
::std::tr1::tuple< Matcher< A1 >, Matcher< A2 >, Matcher< A3 >, Matcher< A4 > > type
void DescribeNegationTo(::std::ostream *os) const
const type const_reference
virtual Result Perform(const ArgumentTuple &)
internal::linked_ptr< internal::ExpectationBase > expectation_base_
virtual void DescribeNegationTo(::std::ostream *os) const
Action(ActionInterface< F > *impl)
IgnoredValue MakeResultIgnoredValue(A1, A2, A3, A4, A5, A6, A7, A8, A9)
const Action< OriginalFunction > action_
internal::Function< F >::ArgumentTuple ArgumentTuple
static R Call(Function function, A1 a1)
static Result Perform(Impl *impl, const ::std::tr1::tuple< A0, A1, A2, A3, A4, A5, A6, A7, A8, A9 > &args)
FunctionMockerBase< F > *const owner_
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4, k5, k6, k7, k8, k9,-1 >::Select static SelectedArgs Select(const ArgumentTuple &args)
virtual ~ActionInterface()
MatchMatrix(size_t num_elements, size_t num_matchers)
internal::LeMatcher< Rhs > Le(Rhs x)
MatchesRegexMatcher(const RE *regex, bool full_match)
TypedExpectation & InSequence(const Sequence &s)
virtual ~CardinalityInterface()
const InnerMatcher inner_matcher_
void Expect(bool condition, const char *file, int line, const string &msg)
::std::tr1::tuple< > type
internal::ElementsAreMatcher< std::tr1::tuple<> > ElementsAre()
static R Call(Function function, A1 a1, A2 a2, A3 a3, A4 a4)
RawPairType::first_type FirstType
AssertionResult AssertionSuccess()
PolymorphicMatcher< Impl > MakePolymorphicMatcher(const Impl &impl)
TrulyMatcher(Predicate pred)
static Result Perform(Impl *impl, const ::std::tr1::tuple< A0, A1, A2, A3, A4, A5, A6, A7 > &args)
const char kWarningVerbosity[]
void DescribeTo(::std::ostream *os) const
PolymorphicMatcher< internal::StrEqualityMatcher< internal::string > > StrCaseNe(const internal::string &str)
NiceMock(const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4, const A5 &a5, const A6 &a6, const A7 &a7, const A8 &a8)
StlContainer::const_iterator StlContainerConstIterator
BothOfMatcherImpl(const Matcher< T > &matcher1, const Matcher< T > &matcher2)
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3,-1,-1,-1,-1,-1,-1,-1 >::type Result type(GMOCK_FIELD_(ArgumentTuple, k1), GMOCK_FIELD_(ArgumentTuple, k2), GMOCK_FIELD_(ArgumentTuple, k3))
const Action< F > * GetActionForArguments(const FunctionMockerBase< F > *mocker, const ArgumentTuple &args,::std::ostream *what,::std::ostream *why) GTEST_EXCLUSIVE_LOCK_REQUIRED_(g_gmock_mutex)
static void ExplainMatchFailuresTo(const MatcherTuple &, const ValueTuple &,::std::ostream *)
IgnoredValue MakeResultIgnoredValue(A1, A2, A3, A4, A5, A6, A7, A8)
IgnoredValue MakeResultIgnoredValue(A1, A2, A3, A4, A5, A6)
R Invoke(A1 a1, A2 a2, A3 a3)
static type GetSelectedFields(const Tuple &t)
def Iter(n, format, sep='')
static Matcher< T > CastImpl(M value, BooleanConstant< false >)
static R InvokeMethod(Class *obj_ptr, MethodPtr method_ptr, const ::std::tr1::tuple< A1, A2 > &args)
void DescribeNegationTo(::std::ostream *os) const
void MakeResultVoid(A1, A2, A3, A4, A5, A6, A7, A8)
MatcherDescriberVec & matcher_describers()
void DescribeTo(::std::ostream *os) const
internal::ElementsAreArrayMatcher< typename::std::iterator_traits< Iter >::value_type > ElementsAreArray(Iter first, Iter last)
PolymorphicAction< internal::SetArgumentPointeeAction< N, T, internal::IsAProtocolMessage< T >::value > > SetArgPointee(const T &x)
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4, k5, k6, k7, k8,-1,-1 >::SelectedArgs Function< type >::ArgumentTuple SelectedArgs
string Print(const T &value)
PolymorphicMatcher(const Impl &an_impl)
#define GTEST_EXCLUSIVE_LOCK_REQUIRED_(locks)
bool operator()(const Expectation &lhs, const Expectation &rhs) const
::testing::internal::linked_ptr< const MatcherInterface< T > > impl_
ACTION_TEMPLATE(InvokeArgument, HAS_1_TEMPLATE_PARAMS(int, k), AND_0_VALUE_PARAMS())
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4, k5, k6, k7, k8,-1,-1 >::type Result type(GMOCK_FIELD_(ArgumentTuple, k1), GMOCK_FIELD_(ArgumentTuple, k2), GMOCK_FIELD_(ArgumentTuple, k3), GMOCK_FIELD_(ArgumentTuple, k4), GMOCK_FIELD_(ArgumentTuple, k5), GMOCK_FIELD_(ArgumentTuple, k6), GMOCK_FIELD_(ArgumentTuple, k7), GMOCK_FIELD_(ArgumentTuple, k8))
WithArgsAction(const InnerAction &action)
static R InvokeMethod(Class *obj_ptr, MethodPtr method_ptr, const ::std::tr1::tuple< A1, A2, A3, A4, A5, A6, A7 > &args)
InvokeWithoutArgsAction(FunctionImpl function_impl)
MatchMatrix AnalyzeElements(ElementIter elem_first, ElementIter elem_last,::std::vector< string > *element_printouts, MatchResultListener *listener) const
ExpectationSet immediate_prerequisites_
MatchResultListener & operator<<(const T &x)
testing::internal::InvokeHelper< R,::std::tr1::tuple< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10 > >::Invoke static R Invoke(Function function, const ::std::tr1::tuple< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10 > &args)
bool MatchAndExplainImpl(true_type, const Class *p, MatchResultListener *listener) const
ArgumentMatcherTuple matchers_
bool MatchAndExplain(const T &value, MatchResultListener *listener) const
const type const_reference
virtual void PrintAsActionResult(::std::ostream *) const
testing::internal::SelectArgs< Result, ArgumentTuple, k1,-1,-1,-1,-1,-1,-1,-1,-1,-1 >::Select static SelectedArgs Select(const ArgumentTuple &args)
::std::vector< Matcher< const Element & > > MatcherVec
::std::tr1::tuple< GMOCK_FIELD_TYPE_(Tuple, k0), GMOCK_FIELD_TYPE_(Tuple, k1), GMOCK_FIELD_TYPE_(Tuple, k2), GMOCK_FIELD_TYPE_(Tuple, k3), GMOCK_FIELD_TYPE_(Tuple, k4), GMOCK_FIELD_TYPE_(Tuple, k5), GMOCK_FIELD_TYPE_(Tuple, k6), GMOCK_FIELD_TYPE_(Tuple, k7), GMOCK_FIELD_TYPE_(Tuple, k8), GMOCK_FIELD_TYPE_(Tuple, k9)> type
const char * file() const
Action< F > repeated_action_
PolymorphicMatcher< internal::HasSubstrMatcher< internal::string > > HasSubstr(const internal::string &substring)
::std::tr1::tuple< A1, A2, A3, A4, A5 > ArgumentTuple
#define MOCK_METHOD8_T(m,...)
PolymorphicAction< internal::InvokeAction< FunctionImpl > > Invoke(FunctionImpl function_impl)
void DescribeNegationTo(::std::ostream *os) const
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4, k5,-1,-1,-1,-1,-1 >::Select static SelectedArgs Select(const ArgumentTuple &args)
bool Value(const T &value, M matcher)
virtual bool MatchAndExplain(T x, MatchResultListener *listener) const
internal::WithArgsAction< InnerAction, k1 > WithArgs(const InnerAction &action)
void DescribeTo(::std::ostream *os) const
internal::PairMatcher< FirstMatcher, SecondMatcher > Pair(FirstMatcher first_matcher, SecondMatcher second_matcher)
static Message Elements(size_t n)
void AddExpectation(const Expectation &expectation) const
void PrintIfNotEmpty(const internal::string &explanation,::std::ostream *os)
R Invoke(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)
virtual bool MatchAndExplain(Super &x, MatchResultListener *listener) const
MatcherTuple< ArgumentTuple >::type ArgumentMatcherTuple
NaggyMock(const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4, const A5 &a5, const A6 &a6, const A7 &a7, const A8 &a8, const A9 &a9, const A10 &a10)
bool retires_on_saturation_
internal::NotMatcher< InnerMatcher > Not(InnerMatcher m)
UnorderedElementsAreArrayMatcher(Iter first, Iter last)
testing::internal::TupleFields< Tuple, k0, k1, k2, k3, k4, k5, k6,-1,-1,-1 >::type ::std::tr1::tuple< GMOCK_FIELD_TYPE_(Tuple, k0), GMOCK_FIELD_TYPE_(Tuple, k1), GMOCK_FIELD_TYPE_(Tuple, k2), GMOCK_FIELD_TYPE_(Tuple, k3), GMOCK_FIELD_TYPE_(Tuple, k4), GMOCK_FIELD_TYPE_(Tuple, k5), GMOCK_FIELD_TYPE_(Tuple, k6)> type
bool MatchAndExplain(const Pointer &p, MatchResultListener *) const
bool operator!=(const ExpectationSet &rhs) const
virtual void DescribeNegationTo(::std::ostream *os) const
Impl(const Action< VoidResult > &action1, const Action< F > &action2)
const Matcher< T > matcher_
virtual void DescribeNegationTo(::std::ostream *os) const
NiceMock(const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4, const A5 &a5, const A6 &a6, const A7 &a7)
bool Matches(const ArgumentTuple &args) const
static R Invoke(Function function, const ::std::tr1::tuple< A1, A2, A3, A4, A5, A6, A7, A8 > &args)
NiceMock(const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4, const A5 &a5, const A6 &a6, const A7 &a7, const A8 &a8, const A9 &a9)
virtual void DescribeTo(::std::ostream *os) const
GTEST_API_ void LogWithLocation(testing::internal::LogSeverity severity, const char *file, int line, const string &message)
PropertyMatcher(PropertyType(Class::*property)() const, const Matcher< RefToConstProperty > &matcher)
::std::tr1::tuple< Matcher< A1 >, Matcher< A2 >, Matcher< A3 >, Matcher< A4 >, Matcher< A5 >, Matcher< A6 >, Matcher< A7 > > type
internal::AnyOfResult2< M1, M2 >::type AnyOf(M1 m1, M2 m2)
MatcherTuple< ArgumentTuple >::type ArgumentMatcherTuple
ReferenceWrapper(T &l_value)
internal::MatcherAsPredicate< M > Matches(M matcher)
SetErrnoAndReturnAction(int errno_value, T result)
Function< F >::Result Result
TypedExpectation & WillRepeatedly(const Action< F > &action)
virtual bool MatchAndExplain(T x, MatchResultListener *listener) const
static R Invoke(Function function, const ::std::tr1::tuple< A1, A2, A3 > &args)
Matcher< T > MakeMatcher(const MatcherInterface< T > *impl)
MatcherTuple< ArgumentTuple >::type ArgumentMatcherTuple
#define MOCK_METHOD9_T(m,...)
Matcher< T > SafeMatcherCast(const M &polymorphic_matcher)
virtual bool MatchAndExplain(LhsContainer lhs, MatchResultListener *listener) const
EitherOfMatcher< typename AnyOfResult4< M1, M2, M3, M4 >::type, typename AnyOfResult5< M5, M6, M7, M8, M9 >::type > type
UnorderedElementsAreMatcherImpl(InputIter first, InputIter last)
GTEST_API_ void Log(LogSeverity severity, const string &message, int stack_frames_to_skip)
::std::pair< size_t, size_t > ElementMatcherPair
UntypedOnCallSpecBase(const char *a_file, int a_line)
void UniversalPrint(const T &value,::std::ostream *os)
internal::FloatingEqMatcher< float > NanSensitiveFloatEq(float rhs)
virtual void DescribeTo(::std::ostream *os) const
Functor::result_type ResultType
Function< F >::Result Result
testing::internal::TupleFields< Tuple, k0,-1,-1,-1,-1,-1,-1,-1,-1,-1 >::GetSelectedFields static type GetSelectedFields(const Tuple &t)
const Matcher< RefToConstProperty > matcher_
class GTEST_API_ testing::InSequence GTEST_ATTRIBUTE_UNUSED_
#define GTEST_REMOVE_REFERENCE_AND_CONST_(T)
void DescribeNegationTo(::std::ostream *os) const
#define GTEST_DISALLOW_ASSIGN_(type)
void DescribeTo(::std::ostream *os) const
internal::Function< F >::ArgumentTuple ArgumentTuple
const FloatType max_abs_error_
static SelectedArgs GetSelectedArgs(ArgsTuple args)
virtual void DescribeNegationTo(::std::ostream *os) const
DummyMatchResultListener()
bool MatchAndExplain(CharType *s, MatchResultListener *listener) const
#define GTEST_REMOVE_REFERENCE_(T)
GTEST_API_ string FormatMatcherDescription(bool negation, const char *matcher_name, const Strings ¶m_values)
ActionResultHolder(T a_value)
BothOfMatcher< typename AllOfResult4< M1, M2, M3, M4 >::type, typename AllOfResult5< M5, M6, M7, M8, M9 >::type > type
EitherOfMatcher< typename AnyOfResult3< M1, M2, M3 >::type, typename AnyOfResult4< M4, M5, M6, M7 >::type > type
bool MatchAndExplain(CharType *s, MatchResultListener *listener) const
internal::PointeeMatcher< InnerMatcher > Pointee(const InnerMatcher &inner_matcher)
virtual bool MatchAndExplain(PairType a_pair, MatchResultListener *listener) const
testing::internal::TupleFields< Tuple, k0, k1, k2, k3, k4, k5, k6, k7,-1,-1 >::type ::std::tr1::tuple< GMOCK_FIELD_TYPE_(Tuple, k0), GMOCK_FIELD_TYPE_(Tuple, k1), GMOCK_FIELD_TYPE_(Tuple, k2), GMOCK_FIELD_TYPE_(Tuple, k3), GMOCK_FIELD_TYPE_(Tuple, k4), GMOCK_FIELD_TYPE_(Tuple, k5), GMOCK_FIELD_TYPE_(Tuple, k6), GMOCK_FIELD_TYPE_(Tuple, k7)> type
NaggyMock(const A1 &a1, const A2 &a2, const A3 &a3)
void DescribeNegationTo(::std::ostream *os) const
virtual const ExpectationBase * UntypedFindMatchingExpectation(const void *untyped_args, const void **untyped_action, bool *is_excessive,::std::ostream *what,::std::ostream *why) GTEST_LOCK_EXCLUDED_(g_gmock_mutex)
MatcherDescriberVec matcher_describers_
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3,-1,-1,-1,-1,-1,-1,-1 >::Select static SelectedArgs Select(const ArgumentTuple &args)
ArgsMatcher(const InnerMatcher &inner_matcher)
internal::Function< F >::ArgumentTuple ArgumentTuple
::std::tr1::tuple< A1, A2 > ArgumentTuple
R Invoke(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
bool operator()(const ::testing::internal::linked_ptr< T > &lhs, const ::testing::internal::linked_ptr< T > &rhs) const
RhsView::type RhsStlContainer
PairMatcherImpl(FirstMatcher first_matcher, SecondMatcher second_matcher)
Result PerformDefaultAction(const ArgumentTuple &args, const string &call_description) const
#define MOCK_METHOD10_T(m,...)
static R Call(Function function, A1 a1, A2 a2, A3 a3)
#define GTEST_REFERENCE_TO_CONST_(T)
PolymorphicMatcher< internal::FieldMatcher< Class, FieldType > > Field(FieldType Class::*field, const FieldMatcher &matcher)
Function< type >::ArgumentTuple SelectedArgs
GMOCK_DECLARE_string_(verbose)
virtual bool MatchAndExplain(LhsContainer lhs, MatchResultListener *listener) const
bool MatchAndExplain(const Pointer &p, MatchResultListener *) const
::std::vector< char > matched_
bool MatchAndExplain(CharType *s, MatchResultListener *listener) const
virtual void DescribeNegationTo(::std::ostream *os) const
internal::Function< F >::Result Result
::std::tr1::tuple< A1, A2, A3 > ArgumentTuple
testing::internal::TupleFields< Tuple, k0, k1, k2, k3, k4,-1,-1,-1,-1,-1 >::type ::std::tr1::tuple< GMOCK_FIELD_TYPE_(Tuple, k0), GMOCK_FIELD_TYPE_(Tuple, k1), GMOCK_FIELD_TYPE_(Tuple, k2), GMOCK_FIELD_TYPE_(Tuple, k3), GMOCK_FIELD_TYPE_(Tuple, k4)> type
Function< F >::ArgumentTuple ArgumentTuple
void MakeResultVoid(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10)
const string source_text_
const Matcher< ResultType > matcher_
void DescribeTo(::std::ostream *os) const
const Matcher< const FieldType & > matcher_
ElementsAreMatcherImpl(InputIter first, InputIter last)
View::const_reference StlContainerReference
::std::tr1::tuple< A1, A2, A3, A4, A5, A6, A7, A8, A9 > ArgumentTuple
ReturnRefOfCopyAction(const T &value)
StrictMock(const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4, const A5 &a5, const A6 &a6, const A7 &a7, const A8 &a8, const A9 &a9, const A10 &a10)
void MakeResultVoid(A1, A2, A3, A4, A5, A6, A7)
void Expect(bool condition, const char *file, int line)
Cardinality MakeCardinality(const CardinalityInterface *c)
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3,-1,-1,-1,-1,-1,-1,-1 >::SelectedArgs Function< type >::ArgumentTuple SelectedArgs
virtual void DescribeTo(::std::ostream *os) const
ContainsMatcherImpl(InnerMatcher inner_matcher)
MockSpec< F > & With(const Matcher< A1 > &m1, const Matcher< A2 > &m2, const Matcher< A3 > &m3)
static Matcher< T > Cast(const Matcher< T > &matcher)
CallableStorageType callable_
internal::Function< F >::ArgumentTuple ArgumentTuple
const Matcher< T > matcher2_
IgnoredValue MakeResultIgnoredValue(A1, A2)
EitherOfMatcher< typename AnyOfResult1< M1 >::type, typename AnyOfResult2< M2, M3 >::type > type
internal::FloatingEqMatcher< float > NanSensitiveFloatNear(float rhs, float max_abs_error)
virtual void DescribeTo(::std::ostream *os) const
static bool Matches(const MatcherTuple &matcher_tuple, const ValueTuple &value_tuple)
T GetValueAndDelete() const
MonomorphicImpl(const Impl &impl)
testing::internal::TupleFields< Tuple, k0, k1, k2, k3, k4, k5, k6,-1,-1,-1 >::GetSelectedFields static type GetSelectedFields(const Tuple &t)
GMOCK_DEFINE_DEFAULT_ACTION_FOR_RETURN_TYPE_(void,)
static ResType Invoke(ResType(*f)(ArgType), T arg)
TypedExpectation & After(const ExpectationSet &s1, const ExpectationSet &s2, const ExpectationSet &s3)
MockSpec< F > & With(const Matcher< A1 > &m1)
void DescribeTo(::std::ostream *os) const
internal::Function< F >::Result Result
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4, k5, k6,-1,-1,-1,-1 >::type Result type(GMOCK_FIELD_(ArgumentTuple, k1), GMOCK_FIELD_(ArgumentTuple, k2), GMOCK_FIELD_(ArgumentTuple, k3), GMOCK_FIELD_(ArgumentTuple, k4), GMOCK_FIELD_(ArgumentTuple, k5), GMOCK_FIELD_(ArgumentTuple, k6))
internal::Function< F >::ArgumentMatcherTuple ArgumentMatcherTuple
void Perform(const ArgumentTuple &args) const
PolymorphicMatcher< internal::StrEqualityMatcher< internal::string > > StrNe(const internal::string &str)
PolymorphicMatcher< internal::PropertyMatcher< Class, PropertyType > > Property(PropertyType(Class::*property)() const, const PropertyMatcher &matcher)
GTEST_API_ Cardinality Between(int min, int max)
internal::Function< F1 >::Result Result
void MakeResultVoid(A1, A2, A3, A4, A5)
bool operator()(const T &lhs, const U &rhs) const
PredicateFormatterFromMatcher< M > MakePredicateFormatterFromMatcher(const M &matcher)
PolymorphicAction< internal::ReturnNullAction > ReturnNull()
void ExplainMatchFailureTupleTo(const MatcherTuple &matchers, const ValueTuple &values,::std::ostream *os)
void Retire() GTEST_EXCLUSIVE_LOCK_REQUIRED_(g_gmock_mutex)
void AssertSpecProperty(bool property, const string &failure_message) const
internal::linked_ptr< Expectation > last_expectation_
bool MatchAndExplain(const MatcheeStringType &s, MatchResultListener *) const
virtual void DescribeTo(::std::ostream *os) const
R Invoke(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)
R F(A1, A2, A3, A4, A5, A6, A7, A8, A9)
Matcher< const ArgumentTuple & > extra_matcher_
ExpectationSet & operator+=(const Expectation &e)
#define MOCK_METHOD4_T(m,...)
BothOfMatcher< typename AllOfResult3< M1, M2, M3 >::type, typename AllOfResult4< M4, M5, M6, M7 >::type > type
const Matcher< SizeType > size_matcher_
BothOfMatcher< typename AllOfResult2< M1, M2 >::type, typename AllOfResult2< M3, M4 >::type > type
const type & const_reference
ResultOfMatcher(Callable callable, const Matcher< ResultType > &matcher)
virtual void DescribeTo(::std::ostream *os) const
HasSubstrMatcher(const StringType &substring)
GTEST_API_ bool LogIsVisible(LogSeverity severity)
Function< F >::ArgumentMatcherTuple ArgumentMatcherTuple
virtual void ClearDefaultActionsLocked() GTEST_EXCLUSIVE_LOCK_REQUIRED_(g_gmock_mutex)
NaggyMock(const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4, const A5 &a5, const A6 &a6)
bool IsSaturated() const GTEST_EXCLUSIVE_LOCK_REQUIRED_(g_gmock_mutex)
EitherOfMatcher< typename AnyOfResult1< M1 >::type, typename AnyOfResult1< M2 >::type > type
Pointer::element_type type
GTEST_API_ Cardinality Exactly(int n)
bool IsSaturatedByCallCount(int call_count) const
void SetEdge(size_t ilhs, size_t irhs, bool b)
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4, k5, k6, k7, k8, k9,-1 >::SelectedArgs Function< type >::ArgumentTuple SelectedArgs
bool MatchAndExplain(const LhsContainer &lhs, MatchResultListener *listener) const
Matcher< Lhs > TypedEq(const Rhs &rhs)
void set_cardinality(const Cardinality &a_cardinality)
internal::Function< F >::ArgumentTuple ArgumentTuple
const_iterator end() const
::std::ostream *const stream_
Result type(GMOCK_FIELD_(ArgumentTuple, k1), GMOCK_FIELD_(ArgumentTuple, k2), GMOCK_FIELD_(ArgumentTuple, k3), GMOCK_FIELD_(ArgumentTuple, k4), GMOCK_FIELD_(ArgumentTuple, k5), GMOCK_FIELD_(ArgumentTuple, k6), GMOCK_FIELD_(ArgumentTuple, k7), GMOCK_FIELD_(ArgumentTuple, k8), GMOCK_FIELD_(ArgumentTuple, k9), GMOCK_FIELD_(ArgumentTuple, k10))
#define GMOCK_KIND_OF_(type)
internal::WhenSortedByMatcher< internal::LessComparator, ContainerMatcher > WhenSorted(const ContainerMatcher &container_matcher)
View::const_reference StlContainerReference
MatcherTuple< ArgumentTuple >::type ArgumentMatcherTuple
internal::FloatingEqMatcher< double > NanSensitiveDoubleNear(double rhs, double max_abs_error)
internal::NamedArg< char > arg(StringRef name, const T &arg)
bool ExplainMatchResult(M matcher, const T &value, MatchResultListener *listener)
const Action< F > action2_
bool MatchAndExplain(const MatcheeStringType &s, MatchResultListener *) const
FloatingEqMatcher(FloatType rhs, bool nan_eq_nan, FloatType max_abs_error)
const FieldType Class::* field_
ActionResultHolder< Result > ResultHolder
RawPairType::first_type KeyType
Matcher< T > MatcherCast(M matcher)
GTEST_API_ Cardinality AnyNumber()
virtual void DescribeTo(::std::ostream *os) const
static bool Matches(const MatcherTuple &, const ValueTuple &)
ContainerView::type::size_type SizeType
const_iterator begin() const
virtual ~MatchResultListener()=0
BothOfMatcher< typename AllOfResult1< M1 >::type, typename AllOfResult1< M2 >::type > type
internal::DoDefaultAction DoDefault()
StrictMock(const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4)
TypedExpectation & InSequence(const Sequence &s1, const Sequence &s2, const Sequence &s3, const Sequence &s4, const Sequence &s5)
R F(A1, A2, A3, A4, A5, A6, A7)
WhenSortedByMatcher(const Comparator &comparator, const ContainerMatcher &matcher)
MockSpec< F > & current_spec()
::std::tr1::tuple ArgumentTuple
void MakeResultVoid(A1, A2, A3, A4, A5, A6)
OnCallSpec & WillByDefault(const Action< F > &action)
void Assert(bool condition, const char *file, int line)
#define GMOCK_IMPLEMENT_COMPARISON_MATCHER_(name, op, relation, negated_relation)
Result Perform(const ArgumentTuple &args) const
::std::tr1::tuple< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10 > ArgumentTuple
TypedExpectation & After(const ExpectationSet &s)
Impl(const TupleMatcher &tuple_matcher, const RhsStlContainer &rhs)
static R Invoke(Function function, const ::std::tr1::tuple< A1, A2, A3, A4, A5, A6, A7, A8, A9 > &args)
const MatcherDescriberInterface * GetDescriber() const
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4,-1,-1,-1,-1,-1,-1 >::SelectedArgs Function< type >::ArgumentTuple SelectedArgs
IgnoredValue MakeResultIgnoredValue(A1, A2, A3)
Function< F >::Result Result
ActionAdaptor(const Action< F2 > &from)
void MakeResultVoid(A1, A2)
LhsView::const_reference LhsStlContainerReference
void DescribeTo(::std::ostream *os) const
void FormatUnexpectedCallMessageLocked(const ArgumentTuple &args,::std::ostream *os,::std::ostream *why) const GTEST_EXCLUSIVE_LOCK_REQUIRED_(g_gmock_mutex)
static type Copy(const RawContainer &container)
internal::StlContainerView< GTEST_REMOVE_REFERENCE_AND_CONST_(LhsContainer) > LhsView
static SelectedArgs Select(const ArgumentTuple &args)
MockSpec< F > & With(const Matcher< A1 > &m1, const Matcher< A2 > &m2, const Matcher< A3 > &m3, const Matcher< A4 > &m4, const Matcher< A5 > &m5)
const Matcher< const Element & > inner_matcher_
bool MatchAndExplain(const MatcheeStringType &s, MatchResultListener *) const
virtual void DescribeNegationTo(::std::ostream *os) const
virtual void DescribeTo(::std::ostream *os) const
void SetMatchers(const ArgumentMatcherTuple &matchers)
Result Perform(const ArgumentTuple &) const
const Comparator comparator_
void ExplainMatchResultTo(const ArgumentTuple &args,::std::ostream *os) const GTEST_EXCLUSIVE_LOCK_REQUIRED_(g_gmock_mutex)
static R Invoke(Function function, const ::std::tr1::tuple< A1 > &args)
BothOfMatcher< typename AllOfResult1< M1 >::type, typename AllOfResult2< M2, M3 >::type > type
GTEST_API_ ElementMatcherPairs FindMaxBipartiteMatching(const MatchMatrix &g)
StlContainer::value_type Element
internal::EachMatcher< M > Each(M matcher)
bool IsReadableTypeName(const string &type_name)
internal::Function< F >::ArgumentTuple ArgumentTuple
PointeeOf< GTEST_REMOVE_CONST_(GTEST_REMOVE_REFERENCE_(Pointer))>::type Pointee
const FloatType max_abs_error_
OutIter TransformTupleValues(Func f, const Tuple &t, OutIter out)
static ActionResultHolder * PerformDefaultAction(const FunctionMockerBase< F > *func_mocker, const typename Function< F >::ArgumentTuple &args, const string &call_description)
LhsStlContainer::value_type LhsValue
Function< F >::ArgumentTuple ArgumentTuple
::std::vector< Matcher< const Element & > > matchers_
MonomorphicImpl(const Impl &impl)
::std::vector< string > Strings
internal::ReferenceWrapper< T > ByRef(T &l_value)
Matcher< const SelectedArgs & > MonomorphicInnerMatcher
Result Perform(const ArgumentTuple &)
testing::internal::TupleFields< Tuple, k0, k1,-1,-1,-1,-1,-1,-1,-1,-1 >::type ::std::tr1::tuple< GMOCK_FIELD_TYPE_(Tuple, k0), GMOCK_FIELD_TYPE_(Tuple, k1)> type
MockSpec< F > & With(const Matcher< A1 > &m1, const Matcher< A2 > &m2, const Matcher< A3 > &m3, const Matcher< A4 > &m4, const Matcher< A5 > &m5, const Matcher< A6 > &m6, const Matcher< A7 > &m7, const Matcher< A8 > &m8, const Matcher< A9 > &m9, const Matcher< A10 > &m10)
virtual Result Perform(const ArgumentTuple &args)
static R InvokeMethod(Class *obj_ptr, MethodPtr method_ptr, const ::std::tr1::tuple< A1, A2, A3, A4, A5, A6, A7, A8, A9 > &args)
#define GTEST_REMOVE_CONST_(T)
internal::FloatingEqMatcher< float > FloatEq(float rhs)
Result Perform(const ArgumentTuple &) const
bool MatchAndExplain(const MatcheeStringType &s, MatchResultListener *) const
const ContainerMatcher matcher_
virtual void DescribeTo(::std::ostream *os) const
PolymorphicAction< internal::AssignAction< T1, T2 > > Assign(T1 *ptr, T2 val)
const RhsStlContainer rhs_
internal::DoBothAction< Action1, Action2 > DoAll(Action1 a1, Action2 a2)
StlContainer::value_type Element
const Pointer::element_type * GetRawPointer(const Pointer &p)
testing::internal::TupleFields< Tuple, k0, k1, k2, k3, k4, k5,-1,-1,-1,-1 >::type ::std::tr1::tuple< GMOCK_FIELD_TYPE_(Tuple, k0), GMOCK_FIELD_TYPE_(Tuple, k1), GMOCK_FIELD_TYPE_(Tuple, k2), GMOCK_FIELD_TYPE_(Tuple, k3), GMOCK_FIELD_TYPE_(Tuple, k4), GMOCK_FIELD_TYPE_(Tuple, k5)> type
StrictMock(const A1 &a1, const A2 &a2, const A3 &a3)
LhsView::type LhsStlContainer
bool_constant< false > false_type
Element * GetRawPointer(Element *p)
Action< InnerFunctionType > action_
const Matcher< const FirstType & > first_matcher_
bool StaticAssertTypeEq()
View::const_reference StlContainerReference
bool CaseInsensitiveStringEquals(const StringType &s1, const StringType &s2)
R F(A1, A2, A3, A4, A5, A6)
const char * file() const
bool IsSatisfiedByCallCount(int call_count) const
void DescribeNegationTo(::std::ostream *os) const
virtual bool MatchAndExplain(T, MatchResultListener *) const
const internal::AnythingMatcher _
const MatcherTuple matchers_
static Result Perform(Impl *impl, const ::std::tr1::tuple< A0, A1, A2, A3, A4 > &args)
virtual void DescribeNegationTo(::std::ostream *os) const
PointeeMatcher(const InnerMatcher &matcher)
internal::Function< F >::Result Result
virtual bool MatchAndExplain(Container container, MatchResultListener *listener) const
#define MOCK_METHOD7_T(m,...)
void DescribeNegationTo(::std::ostream *os) const
bool MatchAndExplainImpl(false_type, const Class &obj, MatchResultListener *listener) const
virtual Result Perform(const ArgumentTuple &args)
static type Copy(const Element(&array)[N])
NiceMock(const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4)
KeyMatcherImpl(InnerMatcher inner_matcher)
static R InvokeMethod(Class *obj_ptr, MethodPtr method_ptr, const ::std::tr1::tuple< A1, A2, A3, A4 > &args)
CallableTraits< Callable >::ResultType ResultType
UntypedActions untyped_actions_
StlContainerView< RawContainer > View
testing::internal::SelectArgs< Result, ArgumentTuple,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 >::SelectedArgs Function< type >::ArgumentTuple SelectedArgs
Result Perform(const ArgumentTuple &args)
UnorderedElementsAreArrayMatcher()
RemoveConstFromKey< typename LhsStlContainer::value_type >::type LhsValue
UnorderedElementsAreMatcher(const MatcherTuple &args)
virtual bool MatchAndExplain(T x, MatchResultListener *listener) const
virtual void DescribeNegationTo(::std::ostream *os) const
ContainerEqMatcher(const Container &rhs)
const bool case_sensitive_
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4, k5,-1,-1,-1,-1,-1 >::type Result type(GMOCK_FIELD_(ArgumentTuple, k1), GMOCK_FIELD_(ArgumentTuple, k2), GMOCK_FIELD_(ArgumentTuple, k3), GMOCK_FIELD_(ArgumentTuple, k4), GMOCK_FIELD_(ArgumentTuple, k5))
const ArgumentMatcherTuple & matchers() const
internal::Function< F >::ArgumentTuple ArgumentTuple
bool cardinality_specified_
void Perform(const ArgumentTuple &) const
virtual void DescribeTo(::std::ostream *os) const
internal::IgnoreResultAction< A > IgnoreResult(const A &an_action)
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4, k5, k6, k7,-1,-1,-1 >::type Result type(GMOCK_FIELD_(ArgumentTuple, k1), GMOCK_FIELD_(ArgumentTuple, k2), GMOCK_FIELD_(ArgumentTuple, k3), GMOCK_FIELD_(ArgumentTuple, k4), GMOCK_FIELD_(ArgumentTuple, k5), GMOCK_FIELD_(ArgumentTuple, k6), GMOCK_FIELD_(ArgumentTuple, k7))
internal::GeMatcher< Rhs > Ge(Rhs x)
testing::internal::TupleFields< Tuple,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 >::type ::std::tr1::tuple type
Iter ArrayAwareFind(Iter begin, Iter end, const Element &elem)
PolymorphicMatcher< internal::StrEqualityMatcher< internal::string > > StrCaseEq(const internal::string &str)
PolymorphicAction< internal::SetErrnoAndReturnAction< T > > SetErrnoAndReturn(int errval, T result)
bool operator()(const T &x) const
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4, k5, k6, k7, k8, k9,-1 >::type Result type(GMOCK_FIELD_(ArgumentTuple, k1), GMOCK_FIELD_(ArgumentTuple, k2), GMOCK_FIELD_(ArgumentTuple, k3), GMOCK_FIELD_(ArgumentTuple, k4), GMOCK_FIELD_(ArgumentTuple, k5), GMOCK_FIELD_(ArgumentTuple, k6), GMOCK_FIELD_(ArgumentTuple, k7), GMOCK_FIELD_(ArgumentTuple, k8), GMOCK_FIELD_(ArgumentTuple, k9))
static void Print(const T &value,::std::ostream *os)
#define MOCK_METHOD1_T(m,...)
::std::tr1::tuple< Matcher< A1 >, Matcher< A2 > > type
void DescribeNegationTo(::std::ostream *os) const
SetArgumentPointeeAction(const A &value)
const TupleMatcher tuple_matcher_
testing::internal::TupleFields< Tuple, k0, k1, k2,-1,-1,-1,-1,-1,-1,-1 >::type ::std::tr1::tuple< GMOCK_FIELD_TYPE_(Tuple, k0), GMOCK_FIELD_TYPE_(Tuple, k1), GMOCK_FIELD_TYPE_(Tuple, k2)> type
MockSpec< F > & With(const Matcher< A1 > &m1, const Matcher< A2 > &m2, const Matcher< A3 > &m3, const Matcher< A4 > &m4)
void ExplainSuccess(const internal::string &first_explanation, const internal::string &second_explanation, MatchResultListener *listener) const
StrictMock(const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4, const A5 &a5, const A6 &a6, const A7 &a7, const A8 &a8, const A9 &a9)
internal::StlContainerView< RawContainer > View
void DescribeNegationTo(::std::ostream *os) const
EitherOfMatcherImpl(const Matcher< T > &matcher1, const Matcher< T > &matcher2)
internal::ContainsMatcher< M > Contains(M matcher)
internal::WithArgsAction< InnerAction, k > WithArg(const InnerAction &action)
#define GTEST_CHECK_(condition)
TypedExpectation & With(const Matcher< const ArgumentTuple & > &m)
IgnoredValue MakeResultIgnoredValue()
internal::Function< F >::ArgumentTuple ArgumentTuple
::std::set< Expectation, Less > Set
EitherOfMatcher< typename AnyOfResult4< M1, M2, M3, M4 >::type, typename AnyOfResult4< M5, M6, M7, M8 >::type > type
internal::Function< F >::ArgumentTuple ArgumentTuple
testing::internal::TupleFields< Tuple, k0, k1, k2, k3, k4, k5, k6, k7,-1,-1 >::GetSelectedFields static type GetSelectedFields(const Tuple &t)
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4, k5,-1,-1,-1,-1,-1 >::SelectedArgs Function< type >::ArgumentTuple SelectedArgs
const Action< F > & GetCurrentAction(const FunctionMockerBase< F > *mocker, const ArgumentTuple &args) const GTEST_EXCLUSIVE_LOCK_REQUIRED_(g_gmock_mutex)
const Cardinality & cardinality() const
bool operator!=(const Expectation &rhs) const
void DescribeCallCountTo(::std::ostream *os) const GTEST_EXCLUSIVE_LOCK_REQUIRED_(g_gmock_mutex)
Impl(FloatType rhs, bool nan_eq_nan, FloatType max_abs_error)
internal::StlContainerView< Container > View
testing::internal::SelectArgs< Result, ArgumentTuple, k1,-1,-1,-1,-1,-1,-1,-1,-1,-1 >::type Result type(GMOCK_FIELD_(ArgumentTuple, k1))
bool IsOverSaturated() const GTEST_EXCLUSIVE_LOCK_REQUIRED_(g_gmock_mutex)
StrictMock(const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4, const A5 &a5)
::std::tr1::tuple< Matcher< A1 >, Matcher< A2 >, Matcher< A3 >, Matcher< A4 >, Matcher< A5 >, Matcher< A6 >, Matcher< A7 >, Matcher< A8 >, Matcher< A9 > > type
int ConservativeLowerBound() const
static void CheckIsValid(ResType(*f)(ArgType))
internal::ResultOfMatcher< Callable > ResultOf(Callable callable, const ResultOfMatcher &matcher)
internal::linked_ptr< ActionInterface< F > > impl_
PolymorphicMatcher< internal::TrulyMatcher< Predicate > > Truly(Predicate pred)
NiceMock(const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4, const A5 &a5, const A6 &a6, const A7 &a7, const A8 &a8, const A9 &a9, const A10 &a10)
NaggyMock(const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4, const A5 &a5, const A6 &a6, const A7 &a7, const A8 &a8)
::std::tr1::tuple< A1, A2, A3, A4, A5, A6 > ArgumentTuple
PointwiseMatcher(const TupleMatcher &tuple_matcher, const RhsContainer &rhs)
ACTION_P(ReturnPointee, pointer)
ArgsMatcherImpl(const InnerMatcher &inner_matcher)
void DescribeDefaultActionTo(const ArgumentTuple &args,::std::ostream *os) const
TypedExpectation & InSequence(const Sequence &s1, const Sequence &s2, const Sequence &s3)
Impl(CallableStorageType callable, const Matcher< ResultType > &matcher)
StrictMock(const A1 &a1, const A2 &a2)
Action(const Action &action)
MATCHER(IsEmpty, negation?"isn't empty":"is empty")
ArgumentMatcherTuple matchers_
void PrintTriedExpectationsLocked(const ArgumentTuple &args,::std::ostream *why) const GTEST_EXCLUSIVE_LOCK_REQUIRED_(g_gmock_mutex)
MatcherAsPredicate(M matcher)
internal::ReturnRefOfCopyAction< R > ReturnRefOfCopy(const R &x)
Matcher(const MatcherInterface< internal::string > *impl)
const T & Const(const T &x)
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4,-1,-1,-1,-1,-1,-1 >::type Result type(GMOCK_FIELD_(ArgumentTuple, k1), GMOCK_FIELD_(ArgumentTuple, k2), GMOCK_FIELD_(ArgumentTuple, k3), GMOCK_FIELD_(ArgumentTuple, k4))
FunctionImpl function_impl_
#define GMOCK_IMPLEMENT_COMPARISON2_MATCHER_(name, op, relation)
void PrintTo(const ReferenceWrapper< T > &ref,::std::ostream *os)
Function< F >::Result Result
Expectation::Set expectations_
R F(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10)
static Message Elements(size_t count)
bool MatchAndExplain(const MatcheeStringType &s, MatchResultListener *) const
::std::tr1::tuple< const LhsValue &, const RhsValue & > InnerMatcherArg
Function< F >::Result Result
::std::tr1::tuple< A1 > ArgumentTuple
testing::internal::TupleFields< Tuple, k0, k1, k2, k3,-1,-1,-1,-1,-1,-1 >::type ::std::tr1::tuple< GMOCK_FIELD_TYPE_(Tuple, k0), GMOCK_FIELD_TYPE_(Tuple, k1), GMOCK_FIELD_TYPE_(Tuple, k2), GMOCK_FIELD_TYPE_(Tuple, k3)> type
const internal::linked_ptr< ActionInterface< F2 > > impl_
const Comparator comparator_
virtual void DescribeNegationTo(::std::ostream *os) const
Function< F >::ArgumentMatcherTuple ArgumentMatcherTuple
SizeIsMatcher(const SizeMatcher &size_matcher)
virtual void DescribeNegationTo(::std::ostream *os) const
static R Call(Function function, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
::std::vector< const MatcherDescriberInterface * > MatcherDescriberVec
testing::internal::TupleFields< Tuple, k0, k1, k2, k3, k4, k5,-1,-1,-1,-1 >::GetSelectedFields static type GetSelectedFields(const Tuple &t)
internal::ReturnAction< R > Return(R value)
const Matcher< T > matcher1_
internal::WhenSortedByMatcher< Comparator, ContainerMatcher > WhenSortedBy(const Comparator &comparator, const ContainerMatcher &container_matcher)
StringMatchResultListener()
bool MatchAndExplainImpl(bool all_elements_should_match, Container container, MatchResultListener *listener) const
static ResultType Invoke(Functor f, T arg)
SetArgumentPointeeAction(const Proto &proto)
virtual UntypedActionResultHolderBase * UntypedPerformDefaultAction(const void *untyped_args, const string &call_description) const
static R Invoke(Function function, const ::std::tr1::tuple< A1, A2, A3, A4 > &args)
virtual void MaybeDescribeExtraMatcherTo(::std::ostream *os)
virtual UntypedActionResultHolderBase * UntypedPerformAction(const void *untyped_action, const void *untyped_args) const
#define MOCK_METHOD2_T(m,...)
#define GTEST_LOCK_EXCLUDED_(locks)
RhsStlContainer::value_type RhsValue
Impl(const Comparator &comparator, const ContainerMatcher &matcher)
virtual void DescribeNegationTo(::std::ostream *os) const
const MonomorphicInnerMatcher inner_matcher_
internal::FloatingEqMatcher< float > FloatNear(float rhs, float max_abs_error)
Function< F >::Result Result