From f4127636d54e557c65d8c185b9d3164a747a9e5d Mon Sep 17 00:00:00 2001 From: mat007 Date: Mon, 9 May 2011 22:17:10 +0000 Subject: [PATCH] Refactoring git-svn-id: https://svn.code.sf.net/p/turtle/code/trunk@317 860be788-9bd5-4423-9f1e-828f051e677b --- build/vc80/turtle_bench.vcproj | 4 -- .../turtle_bench/turtle_bench.cpp | 40 ++++++++++++++----- .../turtle_bench/turtle_bench.hpp | 17 -------- 3 files changed, 31 insertions(+), 30 deletions(-) delete mode 100644 src/applications/turtle_bench/turtle_bench.hpp diff --git a/build/vc80/turtle_bench.vcproj b/build/vc80/turtle_bench.vcproj index 294c4e2..0653f87 100644 --- a/build/vc80/turtle_bench.vcproj +++ b/build/vc80/turtle_bench.vcproj @@ -186,10 +186,6 @@ RelativePath="..\..\src\applications\turtle_bench\turtle_bench.cpp" > - - diff --git a/src/applications/turtle_bench/turtle_bench.cpp b/src/applications/turtle_bench/turtle_bench.cpp index 648072c..6720fd8 100644 --- a/src/applications/turtle_bench/turtle_bench.cpp +++ b/src/applications/turtle_bench/turtle_bench.cpp @@ -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 -#include +#include -#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; +} diff --git a/src/applications/turtle_bench/turtle_bench.hpp b/src/applications/turtle_bench/turtle_bench.hpp deleted file mode 100644 index 6ce53e8..0000000 --- a/src/applications/turtle_bench/turtle_bench.hpp +++ /dev/null @@ -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, ) -};