From 058397d415349d190481844cf0fc0ae3366bdc09 Mon Sep 17 00:00:00 2001 From: mat007 Date: Mon, 15 Feb 2010 23:23:27 +0000 Subject: [PATCH] Fixed maximum number of mocked methods arguments git-svn-id: https://svn.code.sf.net/p/turtle/code/trunk@122 860be788-9bd5-4423-9f1e-828f051e677b --- src/libraries/turtle/config.hpp | 4 +++- src/libraries/turtle/expectation.hpp | 4 ++-- src/libraries/turtle/matcher.hpp | 2 +- src/libraries/turtle/mock.hpp | 4 ++-- src/tests/turtle_test/integration_test.cpp | 1 + 5 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/libraries/turtle/config.hpp b/src/libraries/turtle/config.hpp index 6d23dc8..a671fa2 100644 --- a/src/libraries/turtle/config.hpp +++ b/src/libraries/turtle/config.hpp @@ -11,11 +11,13 @@ #include #include +#include #include #ifndef MOCK_MAX_ARGS # define MOCK_MAX_ARGS 10 -#endif // MOCK_MAX_ARGS +#endif +#define MOCK_NUM_ARGS BOOST_PP_INC(MOCK_MAX_ARGS) BOOST_PP_ASSERT( BOOST_PP_LESS_EQUAL(MOCK_MAX_ARGS, BOOST_FUNCTION_MAX_ARGS) ) diff --git a/src/libraries/turtle/expectation.hpp b/src/libraries/turtle/expectation.hpp index 46ab84f..03efccd 100644 --- a/src/libraries/turtle/expectation.hpp +++ b/src/libraries/turtle/expectation.hpp @@ -109,7 +109,7 @@ namespace mock { \ return (*impl_)( BOOST_PP_ENUM_PARAMS(n, a) ); \ } - BOOST_PP_REPEAT_FROM_TO(1, MOCK_MAX_ARGS, MOCK_EXPECTATION_OPERATOR, BOOST_PP_EMPTY) + BOOST_PP_REPEAT_FROM_TO(1, MOCK_NUM_ARGS, MOCK_EXPECTATION_OPERATOR, BOOST_PP_EMPTY) #undef MOCK_EXPECTATION_OPERATOR friend std::ostream& operator<<( std::ostream& s, const expectation& e ) @@ -228,7 +228,7 @@ namespace mock ErrorPolicy::no_match( context( MOCK_EXPECTATION_PARAMETERS(n) ) ); \ return ErrorPolicy::abort(); \ } - BOOST_PP_REPEAT_FROM_TO(1, MOCK_MAX_ARGS, MOCK_EXPECTATION_OPERATOR, BOOST_PP_EMPTY) + BOOST_PP_REPEAT_FROM_TO(1, MOCK_NUM_ARGS, MOCK_EXPECTATION_OPERATOR, BOOST_PP_EMPTY) #undef MOCK_EXPECTATION_PARAMETER #undef MOCK_EXPECTATION_PARAMETERS #undef MOCK_EXPECTATION_DETAIL diff --git a/src/libraries/turtle/matcher.hpp b/src/libraries/turtle/matcher.hpp index 09097de..ec0762a 100644 --- a/src/libraries/turtle/matcher.hpp +++ b/src/libraries/turtle/matcher.hpp @@ -211,7 +211,7 @@ namespace detail private: \ BOOST_PP_REPEAT_FROM_TO(0, n, MOCK_MATCHER_MEMBER, BOOST_PP_EMPTY) \ }; - BOOST_PP_REPEAT_FROM_TO(1, MOCK_MAX_ARGS, MOCK_MATCHER, BOOST_PP_EMPTY) + BOOST_PP_REPEAT_FROM_TO(1, MOCK_NUM_ARGS, MOCK_MATCHER, BOOST_PP_EMPTY) #undef MOCK_MATCHER_METHODS #undef MOCK_MATCHER_TYPEDEF diff --git a/src/libraries/turtle/mock.hpp b/src/libraries/turtle/mock.hpp index f59b53e..54e4ff6 100644 --- a/src/libraries/turtle/mock.hpp +++ b/src/libraries/turtle/mock.hpp @@ -215,7 +215,7 @@ namespace detail { \ throw std::logic_error( "should never be called" ); \ } - BOOST_PP_REPEAT_FROM_TO(0, MOCK_MAX_ARGS, MOCK_CALL, BOOST_PP_EMPTY) + BOOST_PP_REPEAT_FROM_TO(0, MOCK_NUM_ARGS, MOCK_CALL, BOOST_PP_EMPTY) #undef MOCK_CALL #undef MOCK_CALL_INVALID_TYPE #undef MOCK_CALL_PARAM @@ -307,7 +307,7 @@ namespace detail // alternate experimental macros below, way too slow to compile to be really usable #define MOCK_METHOD_STUB_ALT(M, S, t, c, tpn) \ - BOOST_PP_REPEAT_FROM_TO(0, MOCK_MAX_ARGS, MOCK_METHOD_STUB_PROXY, (5,(M, S, t, c, tpn))) + BOOST_PP_REPEAT_FROM_TO(0, MOCK_NUM_ARGS, MOCK_METHOD_STUB_PROXY, (5,(M, S, t, c, tpn))) #define MOCK_METHOD_EXT_ALT(M, S, t) \ MOCK_METHOD_STUB_ALT(M, S, t,,) \ diff --git a/src/tests/turtle_test/integration_test.cpp b/src/tests/turtle_test/integration_test.cpp index 05e4028..f7ce874 100644 --- a/src/tests/turtle_test/integration_test.cpp +++ b/src/tests/turtle_test/integration_test.cpp @@ -23,6 +23,7 @@ namespace struct my_custom_mock { MOCK_METHOD_EXT( my_method, 0, void(), my_method ) + MOCK_METHOD_EXT( my_method_with_max_number_of_args, MOCK_MAX_ARGS, void( int, int, int, int, int, int, int, int, int, int ), my_method_with_max_number_of_args ) }; }