45namespace gmock_generated_actions_test {
50using testing::make_tuple;
52using testing::tuple_element;
60using testing::ReturnNew;
67inline short Short(
short n) {
return n; }
68inline char Char(
char ch) {
return ch; }
80bool Unary(
int x) {
return x < 0; }
82const char*
Plus1(
const char*
s) {
return s + 1; }
95const char*
Binary(
const char* input,
short n) {
return input + n; }
99int Ternary(
int x,
char y,
short z) {
return x + y + z; }
103int SumOf4(
int a,
int b,
int c,
int d) {
return a + b + c +
d; }
105std::string
Concat4(
const char* s1,
const char* s2,
const char* s3,
107 return std::string(s1) + s2 + s3 + s4;
110int SumOf5(
int a,
int b,
int c,
int d,
int e) {
return a + b + c +
d + e; }
114 return a + b + c +
d + e;
118std::string
Concat5(
const char* s1,
const char* s2,
const char* s3,
119 const char* s4,
const char* s5) {
120 return std::string(s1) + s2 + s3 + s4 + s5;
123int SumOf6(
int a,
int b,
int c,
int d,
int e,
int f) {
124 return a + b + c +
d + e +
f;
129 return a + b + c +
d + e +
f;
133std::string
Concat6(
const char* s1,
const char* s2,
const char* s3,
134 const char* s4,
const char* s5,
const char* s6) {
135 return std::string(s1) + s2 + s3 + s4 + s5 + s6;
138std::string
Concat7(
const char* s1,
const char* s2,
const char* s3,
139 const char* s4,
const char* s5,
const char* s6,
141 return std::string(s1) + s2 + s3 + s4 + s5 + s6 + s7;
144std::string
Concat8(
const char* s1,
const char* s2,
const char* s3,
145 const char* s4,
const char* s5,
const char* s6,
146 const char* s7,
const char* s8) {
147 return std::string(s1) + s2 + s3 + s4 + s5 + s6 + s7 + s8;
150std::string
Concat9(
const char* s1,
const char* s2,
const char* s3,
151 const char* s4,
const char* s5,
const char* s6,
152 const char* s7,
const char* s8,
const char* s9) {
153 return std::string(s1) + s2 + s3 + s4 + s5 + s6 + s7 + s8 + s9;
156std::string
Concat10(
const char* s1,
const char* s2,
const char* s3,
157 const char* s4,
const char* s5,
const char* s6,
158 const char* s7,
const char* s8,
const char* s9,
160 return std::string(s1) + s2 + s3 + s4 + s5 + s6 + s7 + s8 + s9 + s10;
170TEST(InvokeArgumentTest, Function0) {
171 Action<int(
int,
int(*)())>
a = InvokeArgument<1>();
176TEST(InvokeArgumentTest, Functor1) {
182TEST(InvokeArgumentTest, Function5) {
183 Action<int(
int(*)(
int,
int,
int,
int,
int))>
a =
184 InvokeArgument<0>(10000, 2000, 300, 40, 5);
189TEST(InvokeArgumentTest, Functor5) {
191 InvokeArgument<0>(10000, 2000, 300, 40, 5);
196TEST(InvokeArgumentTest, Function6) {
197 Action<int(
int(*)(
int,
int,
int,
int,
int,
int))>
a =
198 InvokeArgument<0>(100000, 20000, 3000, 400, 50, 6);
203TEST(InvokeArgumentTest, Functor6) {
205 InvokeArgument<0>(100000, 20000, 3000, 400, 50, 6);
210TEST(InvokeArgumentTest, Function7) {
211 Action<std::string(std::string(*)(
const char*,
const char*,
const char*,
212 const char*,
const char*,
const char*,
214 a = InvokeArgument<0>(
"1",
"2",
"3",
"4",
"5",
"6",
"7");
219TEST(InvokeArgumentTest, Function8) {
220 Action<std::string(std::string(*)(
const char*,
const char*,
const char*,
221 const char*,
const char*,
const char*,
222 const char*,
const char*))>
223 a = InvokeArgument<0>(
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8");
228TEST(InvokeArgumentTest, Function9) {
229 Action<std::string(std::string(*)(
const char*,
const char*,
const char*,
230 const char*,
const char*,
const char*,
231 const char*,
const char*,
const char*))>
232 a = InvokeArgument<0>(
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9");
237TEST(InvokeArgumentTest, Function10) {
238 Action<std::string(std::string(*)(
239 const char*,
const char*,
const char*,
const char*,
const char*,
240 const char*,
const char*,
const char*,
const char*,
const char*))>
241 a = InvokeArgument<0>(
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9",
"0");
246TEST(InvokeArgumentTest, ByPointerFunction) {
247 Action<
const char*(
const char*(*)(
const char* input,
short n))>
a =
248 InvokeArgument<0>(
static_cast<const char*
>(
"Hi"),
Short(1));
254TEST(InvokeArgumentTest, FunctionWithCStringLiteral) {
255 Action<
const char*(
const char*(*)(
const char* input,
short n))>
a =
256 InvokeArgument<0>(
"Hi",
Short(1));
261TEST(InvokeArgumentTest, ByConstReferenceFunction) {
262 Action<bool(
bool (*function)(
const std::string&
s))>
a =
263 InvokeArgument<0>(std::string(
"Hi"));
272TEST(InvokeArgumentTest, ByExplicitConstReferenceFunction) {
273 Action<bool(
bool(*)(
const double& x))>
a =
279 a = InvokeArgument<0>(
ByRef(x));
292 Action<
const char*(
const char*
s,
double x,
short n)>
a =
294 const char s[] =
"Hello";
300 Action<int(
int,
double,
char,
short)>
a =
307 Action<std::string(
const char*,
const char*,
double,
const char*,
316 Action<std::string(
const char*,
const char*,
const char*,
const char*,
326 Action<std::string(
const char*,
const char*,
const char*)>
a =
334 Action<std::string(
const char*,
const char*,
const char*,
const char*)>
a =
343 Action<std::string(
const char*,
const char*,
const char*,
const char*)>
a =
352 Action<std::string(
const char*,
const char*,
const char*,
const char*)>
a =
361 Action<std::string(
const char*,
const char*,
const char*,
const char*)>
a =
371 virtual int Perform(
const tuple<int, int>& args) {
372 return get<0>(args) - get<1>(args);
376TEST(WithArgsTest, NonInvokeAction) {
377 Action<int(
const std::string&,
int,
int)>
a =
379 tuple<std::string, int, int> dummy = make_tuple(std::string(
"hi"), 2, 10);
385 Action<int(
int x,
char y,
short z)>
a =
391TEST(WithArgsTest, RepeatedArguments) {
392 Action<int(
bool,
int m,
int n)>
a =
394 EXPECT_EQ(4,
a.Perform(make_tuple(
false, 1, 10)));
398TEST(WithArgsTest, ReversedArgumentOrder) {
399 Action<
const char*(
short n,
const char* input)>
a =
401 const char s[] =
"Hello";
406TEST(WithArgsTest, ArgsOfCompatibleTypes) {
407 Action<long(
short x,
char y,
double z,
char c)>
a =
413TEST(WithArgsTest, VoidAction) {
416 a.Perform(make_tuple(1.5,
'a', 3));
444 Action<int(
int*,
int*,
char*)>
a =
445 DoAll(SetArgPointee<0>(1),
447 SetArgPointee<2>(
'a'),
449 EXPECT_EQ(3,
a.Perform(make_tuple(&m, &n, &ch)));
458 char a =
'\0', b =
'\0';
460 DoAll(SetArgPointee<0>(1),
462 SetArgPointee<2>(
'a'),
463 SetArgPointee<3>(
'b'),
475 char a =
'\0', b =
'\0', c =
'\0';
477 DoAll(SetArgPointee<0>(1),
479 SetArgPointee<2>(
'a'),
480 SetArgPointee<3>(
'b'),
481 SetArgPointee<4>(
'c'),
494 char a =
'\0', b =
'\0', c =
'\0',
d =
'\0';
495 Action<int(
int*,
int*,
char*,
char*,
char*,
char*)>
action =
496 DoAll(SetArgPointee<0>(1),
498 SetArgPointee<2>(
'a'),
499 SetArgPointee<3>(
'b'),
500 SetArgPointee<4>(
'c'),
501 SetArgPointee<5>(
'd'),
515 char a =
'\0', b =
'\0', c =
'\0',
d =
'\0', e =
'\0';
516 Action<int(
int*,
int*,
char*,
char*,
char*,
char*,
518 DoAll(SetArgPointee<0>(1),
520 SetArgPointee<2>(
'a'),
521 SetArgPointee<3>(
'b'),
522 SetArgPointee<4>(
'c'),
523 SetArgPointee<5>(
'd'),
524 SetArgPointee<6>(
'e'),
539 char a =
'\0', b =
'\0', c =
'\0',
d =
'\0', e =
'\0',
f =
'\0';
540 Action<int(
int*,
int*,
char*,
char*,
char*,
char*,
542 DoAll(SetArgPointee<0>(1),
544 SetArgPointee<2>(
'a'),
545 SetArgPointee<3>(
'b'),
546 SetArgPointee<4>(
'c'),
547 SetArgPointee<5>(
'd'),
548 SetArgPointee<6>(
'e'),
549 SetArgPointee<7>(
'f'),
565 char a =
'\0', b =
'\0', c =
'\0',
d =
'\0';
566 char e =
'\0',
f =
'\0', g =
'\0';
567 Action<int(
int*,
int*,
char*,
char*,
char*,
char*,
568 char*,
char*,
char*)>
action =
569 DoAll(SetArgPointee<0>(1),
571 SetArgPointee<2>(
'a'),
572 SetArgPointee<3>(
'b'),
573 SetArgPointee<4>(
'c'),
574 SetArgPointee<5>(
'd'),
575 SetArgPointee<6>(
'e'),
576 SetArgPointee<7>(
'f'),
577 SetArgPointee<8>(
'g'),
597# pragma warning(push)
598# pragma warning(disable:4100)
607TEST(ActionMacroTest, WorksWhenNotReferencingArguments) {
608 Action<double()> a1 = Return5();
611 Action<int(
double,
bool)> a2 = Return5();
618TEST(ActionMacroTest, WorksWhenReturningVoid) {
619 Action<void(
int,
int*)> a1 = IncrementArg1();
629 arg2_type temp = arg2;
633TEST(ActionMacroTest, CanReferenceArgumentType) {
634 Action<void(
int,
bool,
int*)> a1 = IncrementArg2();
636 a1.
Perform(make_tuple(5,
false, &n));
643 StaticAssertTypeEq<tuple<int, char, int*>, args_type>();
644 args_type args_copy = args;
645 return get<0>(args_copy) + get<1>(args_copy);
648TEST(ActionMacroTest, CanReferenceArgumentTuple) {
649 Action<int(
int,
char,
int*)> a1 = Sum2();
656int Dummy(
bool flag) {
return flag? 1 : 0; }
660 function_type* fp = &
Dummy;
664TEST(ActionMacroTest, CanReferenceMockFunctionType) {
665 Action<int(
bool)> a1 = InvokeDummy();
674 return_type result =
Dummy(
true);
678TEST(ActionMacroTest, CanReferenceMockFunctionReturnType) {
679 Action<int(
bool)> a1 = InvokeDummy2();
685ACTION(ReturnAddrOfConstBoolReferenceArg) {
690TEST(ActionMacroTest, WorksForConstReferenceArg) {
691 Action<
const bool*(int,
const bool&)>
a = ReturnAddrOfConstBoolReferenceArg();
692 const bool b =
false;
693 EXPECT_EQ(&b,
a.Perform(tuple<int, const bool&>(0, b)));
702TEST(ActionMacroTest, WorksForNonConstReferenceArg) {
703 Action<
int*(
int&, bool, int)>
a = ReturnAddrOfIntReferenceArg();
705 EXPECT_EQ(&n,
a.Perform(tuple<int&, bool, int>(n,
true, 1)));
709namespace action_test {
713TEST(ActionMacroTest, WorksInNamespace) {
714 Action<int(
int,
int)> a1 = action_test::Sum();
722TEST(ActionMacroTest, WorksForDifferentArgumentNumbers) {
723 Action<int(
int)> a1 = PlusTwo();
726 Action<double(
float,
void*)> a2 = PlusTwo();
734TEST(ActionPMacroTest, DefinesParameterizedAction) {
735 Action<int(
int m,
bool t)> a1 = Plus(9);
747TEST(ActionPMacroTest, CanReferenceArgumentAndParameterTypes) {
748 Action<int(
char m,
bool t)> a1 = TypedPlus(9);
754TEST(ActionPMacroTest, WorksInCompatibleMockFunction) {
755 Action<std::string(
const std::string&
s)> a1 = Plus(
"tail");
756 const std::string re =
"re";
757 tuple<const std::string> dummy = make_tuple(re);
764ACTION(OverloadedAction) {
return arg0 ? arg1 :
"hello"; }
767 return arg0 ? arg1 : default_value;
771 return arg0 ? true_value : false_value;
774TEST(ActionMacroTest, CanDefineOverloadedActions) {
775 typedef Action<
const char*(bool,
const char*)> MyAction;
777 const MyAction a1 = OverloadedAction();
781 const MyAction a2 = OverloadedAction(
"hi");
785 const MyAction a3 = OverloadedAction(
"hi",
"you");
794TEST(ActionPnMacroTest, WorksFor3Parameters) {
795 Action<double(
int m,
bool t)> a1 = Plus(100, 20, 3.4);
798 Action<std::string(
const std::string&
s)> a2 = Plus(
"tail",
"-",
">");
799 const std::string re =
"re";
800 tuple<const std::string> dummy = make_tuple(re);
804ACTION_P4(Plus, p0, p1, p2, p3) {
return arg0 + p0 + p1 + p2 + p3; }
806TEST(ActionPnMacroTest, WorksFor4Parameters) {
807 Action<int(
int)> a1 = Plus(1, 2, 3, 4);
811ACTION_P5(Plus, p0, p1, p2, p3, p4) {
return arg0 + p0 + p1 + p2 + p3 + p4; }
813TEST(ActionPnMacroTest, WorksFor5Parameters) {
814 Action<int(
int)> a1 = Plus(1, 2, 3, 4, 5);
819 return arg0 + p0 + p1 + p2 + p3 + p4 + p5;
822TEST(ActionPnMacroTest, WorksFor6Parameters) {
823 Action<int(
int)> a1 = Plus(1, 2, 3, 4, 5, 6);
828 return arg0 + p0 + p1 + p2 + p3 + p4 + p5 + p6;
831TEST(ActionPnMacroTest, WorksFor7Parameters) {
832 Action<int(
int)> a1 = Plus(1, 2, 3, 4, 5, 6, 7);
837 return arg0 + p0 + p1 + p2 + p3 + p4 + p5 + p6 + p7;
840TEST(ActionPnMacroTest, WorksFor8Parameters) {
841 Action<int(
int)> a1 = Plus(1, 2, 3, 4, 5, 6, 7, 8);
846 return arg0 + p0 + p1 + p2 + p3 + p4 + p5 + p6 + p7 + p8;
849TEST(ActionPnMacroTest, WorksFor9Parameters) {
850 Action<int(
int)> a1 = Plus(1, 2, 3, 4, 5, 6, 7, 8, 9);
851 EXPECT_EQ(10 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9, a1.
Perform(make_tuple(10)));
854ACTION_P10(Plus, p0, p1, p2, p3, p4, p5, p6, p7, p8, last_param) {
856 last_param_type t9 = last_param;
857 return t0 + p0 + p1 + p2 + p3 + p4 + p5 + p6 + p7 + p8 + t9;
860TEST(ActionPnMacroTest, WorksFor10Parameters) {
861 Action<int(
int)> a1 = Plus(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
862 EXPECT_EQ(10 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10,
870 std::string prefix_str(prefix);
871 char suffix_char =
static_cast<char>(suffix);
872 return prefix_str + arg0 + suffix_char;
875TEST(ActionPnMacroTest, SimpleTypePromotion) {
876 Action<std::string(
const char*)> no_promo =
877 PadArgument(std::string(
"foo"),
'r');
878 Action<std::string(
const char*)> promo =
879 PadArgument(
"foo",
static_cast<int>(
'r'));
890 std::stringstream ss;
900template <
typename T1,
typename T2>
904ConcatImplActionP3<std::string, T1, T2>
911 return ConcatImpl(
a, b, c);
916 return ConcatImpl<std::string, T1, T2>(
a, b, c);
922template <
typename T1,
typename T2>
923ConcatImplActionP3<T1, int, T2>
925 return ConcatImpl(
a, b, c);
928TEST(ActionPnMacroTest, CanPartiallyRestrictParameterTypes) {
929 Action<
const std::string()> a1 =
Concat(
"Hello",
"1", 2);
942TEST(ActionPnMacroTest, TypesAreCorrect) {
944 DoFooAction a0 = DoFoo();
947 DoFooActionP<int> a1 = DoFoo(1);
951 DoFooActionP2<int, char> a2 = DoFoo(1,
'2');
952 PlusActionP3<int, int, char> a3 = Plus(1, 2,
'3');
953 PlusActionP4<int, int, int, char> a4 = Plus(1, 2, 3,
'4');
954 PlusActionP5<int, int, int, int, char> a5 = Plus(1, 2, 3, 4,
'5');
955 PlusActionP6<int, int, int, int, int, char> a6 = Plus(1, 2, 3, 4, 5,
'6');
956 PlusActionP7<int, int, int, int, int, int, char> a7 =
957 Plus(1, 2, 3, 4, 5, 6,
'7');
958 PlusActionP8<int, int, int, int, int, int, int, char> a8 =
959 Plus(1, 2, 3, 4, 5, 6, 7,
'8');
960 PlusActionP9<int, int, int, int, int, int, int, int, char> a9 =
961 Plus(1, 2, 3, 4, 5, 6, 7, 8,
'9');
962 PlusActionP10<int, int, int, int, int, int, int, int, int, char> a10 =
963 Plus(1, 2, 3, 4, 5, 6, 7, 8, 9,
'0');
985ACTION_P10(Plus10, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {
986 return a0 + a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8 + a9;
989TEST(ActionPnMacroTest, CanExplicitlyInstantiateWithReferenceTypes) {
990 int x = 1, y = 2, z = 3;
991 const tuple<> empty = make_tuple();
996 a = Plus2<const int&, int&>(x, y);
999 a = Plus3<int&, const int&, int&>(x, y, z);
1002 int n[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
1003 a = Plus10<
const int&,
int&,
const int&,
int&,
const int&,
int&,
const int&,
1004 int&,
const int&,
int&>(n[0], n[1], n[2], n[3], n[4], n[5], n[6], n[7],
1037TEST(ReturnNewTest, UnaryWorksWhenMockMethodHasArgs) {
1039 ReturnNew<UnaryConstructorClass>(4000);
1045TEST(ReturnNewTest, UnaryWorksWhenMockMethodReturnsPointerToConst) {
1047 ReturnNew<UnaryConstructorClass>(4000);
1056 int a6,
int a7,
int a8,
int a9,
int a10)
1057 :
value_(a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8 + a9 + a10) {
1063TEST(ReturnNewTest, ConstructorThatTakes10Arguments) {
1065 ReturnNew<TenArgConstructorClass>(1000000000, 200000000, 30000000,
1066 4000000, 500000, 60000,
1075 HAS_1_TEMPLATE_PARAMS(
typename,
T),
1076 AND_0_VALUE_PARAMS()) {
1080TEST(ActionTemplateTest, WorksWithoutValueParam) {
1081 const Action<
int*()>
a = CreateNew<int>();
1082 int*
p =
a.Perform(make_tuple());
1088 HAS_1_TEMPLATE_PARAMS(
typename,
T),
1089 AND_1_VALUE_PARAMS(a0)) {
1093TEST(ActionTemplateTest, WorksWithValueParams) {
1094 const Action<
int*()>
a = CreateNew<int>(42);
1095 int*
p =
a.Perform(make_tuple());
1102 HAS_1_TEMPLATE_PARAMS(
int, k),
1103 AND_0_VALUE_PARAMS()) {
1104 delete get<k>(args);
1116TEST(ActionTemplateTest, WorksForIntegralTemplateParams) {
1121 a.Perform(make_tuple(&n, resetter));
1129 AND_1_VALUE_PARAMS(pointee)) {
1133TEST(ActionTemplateTest, WorksForTemplateTemplateParameters) {
1134 using ::testing::internal::linked_ptr;
1136 linked_ptr<int>
p =
a.Perform(make_tuple());
1141template <
typename T1,
typename T2,
typename T3,
int k4,
bool k5,
1142 unsigned int k6,
typename T7,
typename T8,
typename T9>
1150 HAS_10_TEMPLATE_PARAMS(
1161 AND_1_VALUE_PARAMS(
value)) {
1165TEST(ActionTemplateTest, WorksFor10TemplateParameters) {
1166 using ::testing::internal::linked_ptr;
1168 true, 6, char, unsigned,
int> Giant;
1169 const Action<Giant()>
a = ReturnGiant<
1170 int, bool, double, 5,
true, 6, char, unsigned, int, linked_ptr>(42);
1171 Giant giant =
a.
Perform(make_tuple());
1177 HAS_1_TEMPLATE_PARAMS(
typename, Number),
1178 AND_10_VALUE_PARAMS(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10)) {
1179 return static_cast<Number
>(v1) + v2 + v3 + v4 + v5 + v6 + v7 + v8 + v9 + v10;
1182TEST(ActionTemplateTest, WorksFor10ValueParameters) {
1183 const Action<int()>
a = ReturnSum<int>(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
1195 HAS_1_TEMPLATE_PARAMS(
typename, Number),
1196 AND_2_VALUE_PARAMS(v1, v2)) {
1197 return static_cast<Number
>(v1) + v2;
1201 HAS_1_TEMPLATE_PARAMS(
typename, Number),
1202 AND_3_VALUE_PARAMS(v1, v2, v3)) {
1203 return static_cast<Number
>(v1) + v2 + v3;
1207 HAS_2_TEMPLATE_PARAMS(
typename, Number,
int, k),
1208 AND_4_VALUE_PARAMS(v1, v2, v3, v4)) {
1209 return static_cast<Number
>(v1) + v2 + v3 + v4 + k;
1212TEST(ActionTemplateTest, CanBeOverloadedOnNumberOfValueParameters) {
1213 const Action<int()> a0 = ReturnSum();
1214 const Action<int()> a1 = ReturnSum(1);
1215 const Action<int()> a2 = ReturnSum<int>(1, 2);
1216 const Action<int()> a3 = ReturnSum<int>(1, 2, 3);
1217 const Action<int()> a4 = ReturnSum<int, 10000>(2000, 300, 40, 5);
1226# pragma warning(pop)
Represents a JSON Pointer. Use Pointer for UTF8 encoding and default allocator.
Result Perform(ArgumentTuple args) const
BoolResetter(bool *value)
NullaryConstructorClass()
virtual int Perform(const tuple< int, int > &args)
TenArgConstructorClass(int a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8, int a9, int a10)
UnaryConstructorClass(int value)
GenericPointer< Value, CrtAllocator > Pointer
#define ACTION_P8(name, p0, p1, p2, p3, p4, p5, p6, p7)
#define ACTION_P6(name, p0, p1, p2, p3, p4, p5)
#define ACTION_P2(name, p0, p1)
#define ACTION_P9(name, p0, p1, p2, p3, p4, p5, p6, p7, p8)
#define ACTION_P7(name, p0, p1, p2, p3, p4, p5, p6)
#define ACTION_P(name, p0)
#define ACTION_P3(name, p0, p1, p2)
#define ACTION_TEMPLATE(name, template_params, value_params)
#define ACTION_P5(name, p0, p1, p2, p3, p4)
#define ACTION_P4(name, p0, p1, p2, p3)
#define ACTION_P10(name, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9)
#define GTEST_INTENTIONAL_CONST_COND_PUSH_()
#define GTEST_INTENTIONAL_CONST_COND_POP_()
#define EXPECT_EQ(val1, val2)
#define EXPECT_DOUBLE_EQ(val1, val2)
#define EXPECT_TRUE(condition)
#define EXPECT_STREQ(s1, s2)
#define TEST(test_case_name, test_name)
#define EXPECT_FALSE(condition)
int Ternary(int x, char y, short z)
std::string Concat8(const char *s1, const char *s2, const char *s3, const char *s4, const char *s5, const char *s6, const char *s7, const char *s8)
int SumOf4(int a, int b, int c, int d)
std::string Concat6(const char *s1, const char *s2, const char *s3, const char *s4, const char *s5, const char *s6)
bool ReferencesGlobalDouble(const double &x)
int SumOf6(int a, int b, int c, int d, int e, int f)
const char * CharPtr(const char *s)
std::string Concat5(const char *s1, const char *s2, const char *s3, const char *s4, const char *s5)
void VoidTernary(int, char, bool)
int SumOf5(int a, int b, int c, int d, int e)
std::string Concat9(const char *s1, const char *s2, const char *s3, const char *s4, const char *s5, const char *s6, const char *s7, const char *s8, const char *s9)
std::string Concat10(const char *s1, const char *s2, const char *s3, const char *s4, const char *s5, const char *s6, const char *s7, const char *s8, const char *s9, const char *s10)
std::string Concat4(const char *s1, const char *s2, const char *s3, const char *s4)
std::string Concat7(const char *s1, const char *s2, const char *s3, const char *s4, const char *s5, const char *s6, const char *s7)
ConcatImplActionP3< std::string, T1, T2 > Concat(const std::string &a, T1 b, T2 c)
const char * Binary(const char *input, short n)
bool ByConstRef(const std::string &s)
const char * Plus1(const char *s)
void VoidBinary(int, char)
std::string ByNonConstRef(std::string &s)
internal::WithArgsAction< InnerAction, k1 > WithArgs(const InnerAction &action)
PolymorphicAction< internal::ReturnVoidAction > Return()
const internal::AnythingMatcher _
bool StaticAssertTypeEq()
Action< F > MakeAction(ActionInterface< F > *impl)
internal::ReferenceWrapper< T > ByRef(T &l_value)
PolymorphicAction< internal::InvokeAction< FunctionImpl > > Invoke(FunctionImpl function_impl)
internal::DoBothAction< Action1, Action2 > DoAll(Action1 a1, Action2 a2)
PolymorphicAction< internal::SetArgumentPointeeAction< N, T, internal::IsAProtocolMessage< T >::value > > SetArgPointee(const T &x)
const GenericPointer< typename T::ValueType > T2 T::AllocatorType & a
#define T(meth, val, expected)
GiantTemplate(int a_value)
int operator()(int a, int b, int c, int d, int e)
int operator()(int a, int b, int c, int d, int e, int f)
yubihsm_pkcs11_object_template template