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
This commit is contained in:
mat007 2010-02-15 23:23:27 +00:00
parent 0e8079d47a
commit 058397d415
5 changed files with 9 additions and 6 deletions

View file

@ -11,11 +11,13 @@
#include <boost/preprocessor/comparison/less_equal.hpp> #include <boost/preprocessor/comparison/less_equal.hpp>
#include <boost/preprocessor/debug/assert.hpp> #include <boost/preprocessor/debug/assert.hpp>
#include <boost/preprocessor/inc.hpp>
#include <boost/function.hpp> #include <boost/function.hpp>
#ifndef MOCK_MAX_ARGS #ifndef MOCK_MAX_ARGS
# define MOCK_MAX_ARGS 10 # 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) ) BOOST_PP_ASSERT( BOOST_PP_LESS_EQUAL(MOCK_MAX_ARGS, BOOST_FUNCTION_MAX_ARGS) )

View file

@ -109,7 +109,7 @@ namespace mock
{ \ { \
return (*impl_)( BOOST_PP_ENUM_PARAMS(n, a) ); \ 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 #undef MOCK_EXPECTATION_OPERATOR
friend std::ostream& operator<<( std::ostream& s, const expectation& e ) friend std::ostream& operator<<( std::ostream& s, const expectation& e )
@ -228,7 +228,7 @@ namespace mock
ErrorPolicy::no_match( context( MOCK_EXPECTATION_PARAMETERS(n) ) ); \ ErrorPolicy::no_match( context( MOCK_EXPECTATION_PARAMETERS(n) ) ); \
return ErrorPolicy::abort(); \ 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_PARAMETER
#undef MOCK_EXPECTATION_PARAMETERS #undef MOCK_EXPECTATION_PARAMETERS
#undef MOCK_EXPECTATION_DETAIL #undef MOCK_EXPECTATION_DETAIL

View file

@ -211,7 +211,7 @@ namespace detail
private: \ private: \
BOOST_PP_REPEAT_FROM_TO(0, n, MOCK_MATCHER_MEMBER, BOOST_PP_EMPTY) \ 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_METHODS
#undef MOCK_MATCHER_TYPEDEF #undef MOCK_MATCHER_TYPEDEF

View file

@ -215,7 +215,7 @@ namespace detail
{ \ { \
throw std::logic_error( "should never be called" ); \ 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
#undef MOCK_CALL_INVALID_TYPE #undef MOCK_CALL_INVALID_TYPE
#undef MOCK_CALL_PARAM #undef MOCK_CALL_PARAM
@ -307,7 +307,7 @@ namespace detail
// alternate experimental macros below, way too slow to compile to be really usable // alternate experimental macros below, way too slow to compile to be really usable
#define MOCK_METHOD_STUB_ALT(M, S, t, c, tpn) \ #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) \ #define MOCK_METHOD_EXT_ALT(M, S, t) \
MOCK_METHOD_STUB_ALT(M, S, t,,) \ MOCK_METHOD_STUB_ALT(M, S, t,,) \

View file

@ -23,6 +23,7 @@ namespace
struct my_custom_mock struct my_custom_mock
{ {
MOCK_METHOD_EXT( my_method, 0, void(), my_method ) 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 )
}; };
} }