18 #if __cplusplus >= 201103L || defined(DOXYGEN)
26 #define EXPECT_FFF_CALL_COUNT(name, count) \
27 if (name##_fake.call_count != (count)) { \
29 printf("Expected %d calls to " #name ", but got %d\n", count, name##_fake.call_count); \
33 #define EXPECT_FFF_CALL_1(name, val1) \
34 if (name##_fake.arg0_val != (val1)) { \
36 puts("Argument 0 to mock " #name " doesn't match the expectation.\n"); \
38 #define EXPECT_FFF_CALL_2(name, val1, val2) \
39 if (name##_fake.arg0_val != (val1)) { \
41 puts("Argument 1 to mock " #name " doesn't match the expectation.\n"); \
43 if (name##_fake.arg1_val != (val2)) { \
45 puts("Argument 2 to mock " #name " doesn't match the expectation.\n"); \
47 #define EXPECT_FFF_CALL_3(name, val1, val2, val3) \
48 if (name##_fake.arg0_val != (val1)) { \
50 puts("Argument 1 to mock " #name " doesn't match the expectation.\n"); \
52 if (name##_fake.arg1_val != (val2)) { \
54 puts("Argument 2 to mock " #name " doesn't match the expectation.\n"); \
56 if (name##_fake.arg2_val != (val3)) { \
58 puts("Argument 3 to mock " #name " doesn't match the expectation.\n"); \
60 #define EXPECT_FFF_CALL_4(name, val1, val2, val3, val4) \
61 if (name##_fake.arg0_val != (val1)) { \
63 puts("Argument 1 to mock " #name " doesn't match the expectation.\n"); \
65 if (name##_fake.arg1_val != (val2)) { \
67 puts("Argument 2 to mock " #name " doesn't match the expectation.\n"); \
69 if (name##_fake.arg2_val != (val3)) { \
71 puts("Argument 3 to mock " #name " doesn't match the expectation.\n"); \
73 if (name##_fake.arg3_val != (val4)) { \
75 puts("Argument 4 to mock " #name " doesn't match the expectation.\n"); \
77 #define EXPECT_FFF_CALL_5(name, val1, val2, val3, val4, val5) \
78 if (name##_fake.arg0_val != (val1)) { \
80 puts("Argument 1 to mock " #name " doesn't match the expectation.\n"); \
82 if (name##_fake.arg1_val != (val2)) { \
84 puts("Argument 2 to mock " #name " doesn't match the expectation.\n"); \
86 if (name##_fake.arg2_val != (val3)) { \
88 puts("Argument 3 to mock " #name " doesn't match the expectation.\n"); \
90 if (name##_fake.arg3_val != (val4)) { \
92 puts("Argument 4 to mock " #name " doesn't match the expectation.\n"); \
94 if (name##_fake.arg4_val != (val5)) { \
96 puts("Argument 5 to mock " #name " doesn't match the expectation.\n"); \
98 #define EXPECT_FFF_CALL_6(name, val1, val2, val3, val4, val5, val6) \
99 if (name##_fake.arg0_val != (val1)) { \
101 puts("Argument 1 to mock " #name " doesn't match the expectation.\n"); \
103 if (name##_fake.arg1_val != (val2)) { \
105 puts("Argument 2 to mock " #name " doesn't match the expectation.\n"); \
107 if (name##_fake.arg2_val != (val3)) { \
109 puts("Argument 3 to mock " #name " doesn't match the expectation.\n"); \
111 if (name##_fake.arg3_val != (val4)) { \
113 puts("Argument 4 to mock " #name " doesn't match the expectation.\n"); \
115 if (name##_fake.arg5_val != (val6)) { \
117 puts("Argument 6 to mock " #name " doesn't match the expectation.\n"); \
119 #define GET_FFF_MACRO(_1, _2, _3, _4, _5, _6, NAME, ...) NAME
128 #define EXPECT_FFF_CALL_PARAMS(mock, ...) \
129 GET_FFF_MACRO(__VA_ARGS__, EXPECT_FFF_CALL_6, EXPECT_FFF_CALL_5, EXPECT_FFF_CALL_4, \
130 EXPECT_FFF_CALL_3, EXPECT_FFF_CALL_2, EXPECT_FFF_CALL_1) \
133 #error This library needs C++11 and newer