mirror of
https://github.com/mat007/turtle.git
synced 2026-06-22 12:13:43 +00:00
Refactoring
git-svn-id: https://svn.code.sf.net/p/turtle/code/trunk@317 860be788-9bd5-4423-9f1e-828f051e677b
This commit is contained in:
parent
14e80c37dc
commit
f4127636d5
3 changed files with 31 additions and 30 deletions
|
|
@ -6,12 +6,24 @@
|
|||
// http://www.boost.org/LICENSE_1_0.txt)
|
||||
//
|
||||
|
||||
#ifndef MOCK_BENCH_NUMBER_OF_METHODS
|
||||
#define MOCK_BENCH_NUMBER_OF_METHODS 30
|
||||
#endif
|
||||
|
||||
#ifndef MOCK_BENCH_NUMBER_OF_ARGS
|
||||
#define MOCK_BENCH_NUMBER_OF_ARGS 9
|
||||
#endif
|
||||
//#define MOCK_MAX_ARGS MOCK_BENCH_NUMBER_OF_ARGS
|
||||
|
||||
#ifndef MOCK_BENCH_NUMBER_OF_CLASSES
|
||||
#define MOCK_BENCH_NUMBER_OF_CLASSES 20
|
||||
#endif
|
||||
|
||||
#include <turtle/mock.hpp>
|
||||
#include <boost/preprocessor/iteration/iterate.hpp>
|
||||
#include <boost/preprocessor/repetition/repeat.hpp>
|
||||
|
||||
#define F(z, n, d) virtual void f##n() = 0;
|
||||
|
||||
#define NUMBER_OF_METHODS 20
|
||||
#define MOCK_BENCH_IDENTITY(z, n, d) d
|
||||
#define MOCK_BENCH_METHOD(z, n, d) virtual void f##n( d ) = 0;
|
||||
|
||||
namespace
|
||||
{
|
||||
|
|
@ -19,13 +31,23 @@ namespace
|
|||
{
|
||||
public:
|
||||
virtual ~base_class() {}
|
||||
BOOST_PP_REPEAT_FROM_TO(0, NUMBER_OF_METHODS, F, )
|
||||
BOOST_PP_REPEAT(MOCK_BENCH_NUMBER_OF_METHODS, MOCK_BENCH_METHOD, BOOST_PP_ENUM(MOCK_BENCH_NUMBER_OF_ARGS, MOCK_BENCH_IDENTITY, int))
|
||||
};
|
||||
}
|
||||
|
||||
#define BOOST_PP_FILENAME_1 "turtle_bench.hpp"
|
||||
#define BOOST_PP_ITERATION_LIMITS (1, 10)
|
||||
#include BOOST_PP_ITERATE()
|
||||
#define MOCK_BENCH_MOCK_METHOD(z, n, d) MOCK_METHOD( f##n, MOCK_BENCH_NUMBER_OF_ARGS )
|
||||
#define MOCK_BENCH_BASE_CLASS(z, n, d) \
|
||||
MOCK_BASE_CLASS( BOOST_PP_CAT( mock_class, n ), base_class ) \
|
||||
{ \
|
||||
BOOST_PP_REPEAT(MOCK_BENCH_NUMBER_OF_METHODS, MOCK_BENCH_MOCK_METHOD,) \
|
||||
};
|
||||
|
||||
BOOST_PP_REPEAT(MOCK_BENCH_NUMBER_OF_CLASSES, MOCK_BENCH_BASE_CLASS,)
|
||||
|
||||
#define MOCK_BENCH_INSTANTIATION(z, n, d) mock_class##n c##n;
|
||||
|
||||
int main()
|
||||
{}
|
||||
{
|
||||
BOOST_PP_REPEAT(MOCK_BENCH_NUMBER_OF_CLASSES, MOCK_BENCH_INSTANTIATION,)
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,17 +0,0 @@
|
|||
//
|
||||
// Copyright Mathieu Champlon 2010
|
||||
//
|
||||
// Distributed under the Boost Software License, Version 1.0. (See
|
||||
// accompanying file LICENSE_1_0.txt or copy at
|
||||
// http://www.boost.org/LICENSE_1_0.txt)
|
||||
//
|
||||
|
||||
//#pragma message( BOOST_PP_STRINGIZE( BOOST_PP_CAT( mock_class, BOOST_PP_ITERATION() ) ) )
|
||||
|
||||
#define MOCK_F(z, n, d) MOCK_METHOD( f##n, 0 )
|
||||
//#define MOCK_F(z, n, d) MOCK_METHOD_ALT( f##n )
|
||||
|
||||
MOCK_BASE_CLASS( BOOST_PP_CAT( mock_class, BOOST_PP_ITERATION() ), base_class )
|
||||
{
|
||||
BOOST_PP_REPEAT_FROM_TO(0, NUMBER_OF_METHODS, MOCK_F, )
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue