From cf2315ddeab4854a06d9adafdadf209b970aaf44 Mon Sep 17 00:00:00 2001 From: Vesa Karvonen Date: Tue, 22 Jan 2002 13:38:55 +0000 Subject: [PATCH] Removed replacement rescan from tests. Made requirements for BOOST_PP_CAT and BOOST_PP_STRINGIZE stronger. [SVN r12440] --- test/arithmetic_test.cpp | 70 +++++++++++++++++++------------------- test/for_test.cpp | 2 +- test/list_test.cpp | 22 ++++++------ test/logical_test.cpp | 33 ++++++++++-------- test/preprocessor_test.cpp | 12 ++++--- test/test.hpp | 10 +++++- 6 files changed, 83 insertions(+), 66 deletions(-) diff --git a/test/arithmetic_test.cpp b/test/arithmetic_test.cpp index ab2eeff..2f05779 100644 --- a/test/arithmetic_test.cpp +++ b/test/arithmetic_test.cpp @@ -19,50 +19,50 @@ // *** -TEST(BOOST_PP_ADD(2,3) == 5) -TEST(BOOST_PP_ADD(11,BOOST_PP_SUB(BOOST_PP_LIMIT_MAG,10)) == BOOST_PP_LIMIT_MAG) +TEST_B BOOST_PP_ADD(2,3) == 5 TEST_E +TEST_B BOOST_PP_ADD(11,BOOST_PP_SUB(BOOST_PP_LIMIT_MAG,10)) == BOOST_PP_LIMIT_MAG TEST_E -TEST(BOOST_PP_SUB(11,0) == 11) -TEST(BOOST_PP_SUB(12,1) == 11) -TEST(BOOST_PP_SUB(3,4) == 0) +TEST_B BOOST_PP_SUB(11,0) == 11 TEST_E +TEST_B BOOST_PP_SUB(12,1) == 11 TEST_E +TEST_B BOOST_PP_SUB(3,4) == 0 TEST_E -TEST(BOOST_PP_MUL(0,1) == 0) -TEST(BOOST_PP_MUL(1,0) == 0) -TEST(BOOST_PP_MUL(1,1) == 1) -TEST(BOOST_PP_MUL(4,3) == 12) +TEST_B BOOST_PP_MUL(0,1) == 0 TEST_E +TEST_B BOOST_PP_MUL(1,0) == 0 TEST_E +TEST_B BOOST_PP_MUL(1,1) == 1 TEST_E +TEST_B BOOST_PP_MUL(4,3) == 12 TEST_E -TEST(BOOST_PP_DIV(2,1) == 2) -TEST(BOOST_PP_DIV(0,5) == 0) -TEST(BOOST_PP_DIV(7,3) == 2) +TEST_B BOOST_PP_DIV(2,1) == 2 TEST_E +TEST_B BOOST_PP_DIV(0,5) == 0 TEST_E +TEST_B BOOST_PP_DIV(7,3) == 2 TEST_E -TEST(BOOST_PP_EQUAL(1,0) == 0) -TEST(BOOST_PP_EQUAL(10,10) == 1) +TEST_B BOOST_PP_EQUAL(1,0) == 0 TEST_E +TEST_B BOOST_PP_EQUAL(10,10) == 1 TEST_E -TEST(BOOST_PP_NOT_EQUAL(3,4) == 1) -TEST(BOOST_PP_NOT_EQUAL(7,7) == 0) +TEST_B BOOST_PP_NOT_EQUAL(3,4) == 1 TEST_E +TEST_B BOOST_PP_NOT_EQUAL(7,7) == 0 TEST_E -TEST(BOOST_PP_LESS_EQUAL(6,7) == 1) -TEST(BOOST_PP_LESS_EQUAL(8,1) == 0) -TEST(BOOST_PP_LESS_EQUAL(5,5) == 1) +TEST_B BOOST_PP_LESS_EQUAL(6,7) == 1 TEST_E +TEST_B BOOST_PP_LESS_EQUAL(8,1) == 0 TEST_E +TEST_B BOOST_PP_LESS_EQUAL(5,5) == 1 TEST_E -TEST(BOOST_PP_GREATER_EQUAL(6,7) == 0) -TEST(BOOST_PP_GREATER_EQUAL(10,10) == 1) -TEST(BOOST_PP_GREATER_EQUAL(8,1) == 1) +TEST_B BOOST_PP_GREATER_EQUAL(6,7) == 0 TEST_E +TEST_B BOOST_PP_GREATER_EQUAL(10,10) == 1 TEST_E +TEST_B BOOST_PP_GREATER_EQUAL(8,1) == 1 TEST_E -TEST(BOOST_PP_LESS(2,1) == 0) -TEST(BOOST_PP_LESS(1,1) == 0) -TEST(BOOST_PP_LESS(1,2) == 1) +TEST_B BOOST_PP_LESS(2,1) == 0 TEST_E +TEST_B BOOST_PP_LESS(1,1) == 0 TEST_E +TEST_B BOOST_PP_LESS(1,2) == 1 TEST_E -TEST(BOOST_PP_GREATER(2,1) == 1) -TEST(BOOST_PP_GREATER(1,1) == 0) -TEST(BOOST_PP_GREATER(1,2) == 0) +TEST_B BOOST_PP_GREATER(2,1) == 1 TEST_E +TEST_B BOOST_PP_GREATER(1,1) == 0 TEST_E +TEST_B BOOST_PP_GREATER(1,2) == 0 TEST_E -TEST(BOOST_PP_MIN(1,0) == 0) -TEST(BOOST_PP_MIN(1,2) == 1) +TEST_B BOOST_PP_MIN(1,0) == 0 TEST_E +TEST_B BOOST_PP_MIN(1,2) == 1 TEST_E -TEST(BOOST_PP_MAX(3,2) == 3) -TEST(BOOST_PP_MAX(4,5) == 5) +TEST_B BOOST_PP_MAX(3,2) == 3 TEST_E +TEST_B BOOST_PP_MAX(4,5) == 5 TEST_E -TEST(BOOST_PP_MOD(5,5) == 0) -TEST(BOOST_PP_MOD(9,5) == 4) -TEST(BOOST_PP_MOD(7,4) == 3) +TEST_B BOOST_PP_MOD(5,5) == 0 TEST_E +TEST_B BOOST_PP_MOD(9,5) == 4 TEST_E +TEST_B BOOST_PP_MOD(7,4) == 3 TEST_E diff --git a/test/for_test.cpp b/test/for_test.cpp index 4cc81d1..2ea30fd 100644 --- a/test/for_test.cpp +++ b/test/for_test.cpp @@ -24,4 +24,4 @@ #define F(D,X) BOOST_PP_DEC(X) #define I(D,X) -X -TEST((FOR_TEST_MAX*(FOR_TEST_MAX+1)/2)+1 BOOST_PP_FOR(FOR_TEST_MAX,C,F,I)) +TEST_B (FOR_TEST_MAX*(FOR_TEST_MAX+1)/2)+1 BOOST_PP_FOR(FOR_TEST_MAX,C,F,I) TEST_E diff --git a/test/list_test.cpp b/test/list_test.cpp index 2563ff3..54a7bcb 100644 --- a/test/list_test.cpp +++ b/test/list_test.cpp @@ -21,22 +21,22 @@ #define TEST_LIST BOOST_PP_TUPLE_TO_LIST(5,(4,1,5,9,2)) -TEST(BOOST_PP_LIST_FOLD_LEFT(BOOST_PP_SUB_D,22,TEST_LIST) == 1) -TEST(BOOST_PP_LIST_CAT(BOOST_PP_LIST_REVERSE(TEST_LIST)) == 29514) -TEST(BOOST_PP_LIST_FOLD_RIGHT(BOOST_PP_SUB_D,TEST_LIST,0) == 3) +TEST_B BOOST_PP_LIST_FOLD_LEFT(BOOST_PP_SUB_D,22,TEST_LIST) == 1 TEST_E +TEST_B BOOST_PP_LIST_CAT(BOOST_PP_LIST_REVERSE(TEST_LIST)) == 29514 TEST_E +TEST_B BOOST_PP_LIST_FOLD_RIGHT(BOOST_PP_SUB_D,TEST_LIST,0) == 3 TEST_E -TEST(BOOST_PP_LIST_CAT(BOOST_PP_LIST_REST_N(2,TEST_LIST)) == 592) -TEST(BOOST_PP_LIST_CAT(BOOST_PP_LIST_FIRST_N(2,TEST_LIST)) == 41) +TEST_B BOOST_PP_LIST_CAT(BOOST_PP_LIST_REST_N(2,TEST_LIST)) == 592 TEST_E +TEST_B BOOST_PP_LIST_CAT(BOOST_PP_LIST_FIRST_N(2,TEST_LIST)) == 41 TEST_E -TEST(BOOST_PP_LIST_AT(TEST_LIST,2) == 5) +TEST_B BOOST_PP_LIST_AT(TEST_LIST,2) == 5 TEST_E -TEST(BOOST_PP_LIST_CAT(BOOST_PP_LIST_TRANSFORM(BOOST_PP_ADD_D,2,TEST_LIST)) == 637114) +TEST_B BOOST_PP_LIST_CAT(BOOST_PP_LIST_TRANSFORM(BOOST_PP_ADD_D,2,TEST_LIST)) == 637114 TEST_E -TEST(BOOST_PP_LIST_CAT(BOOST_PP_LIST_APPEND(BOOST_PP_LIST_REST(TEST_LIST),TEST_LIST)) == 159241592) +TEST_B BOOST_PP_LIST_CAT(BOOST_PP_LIST_APPEND(BOOST_PP_LIST_REST(TEST_LIST),TEST_LIST)) == 159241592 TEST_E #define ENUM_LIST_F(I,P,X) +X+P -TEST(BOOST_PP_LIST_FOR_EACH(ENUM_LIST_F,1,TEST_LIST) == 26) +TEST_B BOOST_PP_LIST_FOR_EACH(ENUM_LIST_F,1,TEST_LIST) == 26 TEST_E -TEST(BOOST_PP_TUPLE_ELEM(5,4,BOOST_PP_LIST_TO_TUPLE(TEST_LIST)) == 2) +TEST_B BOOST_PP_TUPLE_ELEM(5,4,BOOST_PP_LIST_TO_TUPLE(TEST_LIST)) == 2 TEST_E -TEST(BOOST_PP_LIST_CAT(BOOST_PP_LIST_FILTER(BOOST_PP_LESS_D,3,TEST_LIST)) == 459) +TEST_B BOOST_PP_LIST_CAT(BOOST_PP_LIST_FILTER(BOOST_PP_LESS_D,3,TEST_LIST)) == 459 TEST_E diff --git a/test/logical_test.cpp b/test/logical_test.cpp index 8fbe6da..1c8b8fe 100644 --- a/test/logical_test.cpp +++ b/test/logical_test.cpp @@ -15,20 +15,25 @@ // *** -TEST(BOOST_PP_NOT(0) == 1) -TEST(BOOST_PP_NOT(1) == 0) +TEST_B BOOST_PP_NOT(MACRO MACRO_ARGS(0)) == 1 TEST_E +TEST_B BOOST_PP_NOT(1) == 0 TEST_E -TEST(BOOST_PP_AND(0,0) == 0) -TEST(BOOST_PP_AND(0,1) == 0) -TEST(BOOST_PP_AND(1,0) == 0) -TEST(BOOST_PP_AND(1,1) == 1) +TEST_B BOOST_PP_AND(0,MACRO MACRO_ARGS(0)) == 0 TEST_E +TEST_B BOOST_PP_AND(0,1) == 0 TEST_E +TEST_B BOOST_PP_AND(1,0) == 0 TEST_E +TEST_B BOOST_PP_AND(1,1) == 1 TEST_E -TEST(BOOST_PP_OR(0,0) == 0) -TEST(BOOST_PP_OR(0,1) == 1) -TEST(BOOST_PP_OR(1,0) == 1) -TEST(BOOST_PP_OR(1,1) == 1) +TEST_B BOOST_PP_OR(0,MACRO MACRO_ARGS(0)) == 0 TEST_E +TEST_B BOOST_PP_OR(0,1) == 1 TEST_E +TEST_B BOOST_PP_OR(1,0) == 1 TEST_E +TEST_B BOOST_PP_OR(1,1) == 1 TEST_E -TEST(BOOST_PP_XOR(0,0) == 0) -TEST(BOOST_PP_XOR(0,1) == 1) -TEST(BOOST_PP_XOR(1,0) == 1) -TEST(BOOST_PP_XOR(1,1) == 0) +TEST_B BOOST_PP_XOR(0,MACRO MACRO_ARGS(0)) == 0 TEST_E +TEST_B BOOST_PP_XOR(0,1) == 1 TEST_E +TEST_B BOOST_PP_XOR(1,0) == 1 TEST_E +TEST_B BOOST_PP_XOR(1,1) == 0 TEST_E + +TEST_B BOOST_PP_NOR(0,MACRO MACRO_ARGS(0)) == 1 TEST_E +TEST_B BOOST_PP_NOR(0,1) == 0 TEST_E +TEST_B BOOST_PP_NOR(1,0) == 0 TEST_E +TEST_B BOOST_PP_NOR(1,1) == 0 TEST_E diff --git a/test/preprocessor_test.cpp b/test/preprocessor_test.cpp index 9395e62..5a1c455 100644 --- a/test/preprocessor_test.cpp +++ b/test/preprocessor_test.cpp @@ -33,13 +33,17 @@ struct Container // *** -TEST(BOOST_PP_IF(BOOST_PP_IF(1,1,1),true,false) && - BOOST_PP_IF(BOOST_PP_IF(0,0,0),false,true)) +TEST_B BOOST_PP_IF(BOOST_PP_IF(1,1,1),true,false) && + BOOST_PP_IF(BOOST_PP_IF(0,0,0),false,true) TEST_E // *** -TEST(BOOST_PP_CAT(BOOST_PP_IF(1,tru,fals), e)) +TEST_B BOOST_PP_CAT(BOOST_PP_IF(1,tru,fals), MACRO MACRO_ARGS(e)) TEST_E // *** -char stringize_test[4] = BOOST_PP_STRINGIZE(__LINE__); +char stringize_test[2] = BOOST_PP_STRINGIZE(MACRO MACRO_ARGS(X)); + +// *** + +TEST_B BOOST_PP_TUPLE_ELEM(2,0,(1,0)) TEST_E diff --git a/test/test.hpp b/test/test.hpp index be5fbe2..b31c6e8 100644 --- a/test/test.hpp +++ b/test/test.hpp @@ -14,5 +14,13 @@ #include -#define TEST(C) typedef int BOOST_PP_CAT(test_,__LINE__)[((C)==1) ? 1 : -1]; +// The TEST macro has been broken into two pieces to avoid +// double expansion: +// 1. as a macro argument +// 2. rescan +#define TEST_B typedef int BOOST_PP_CAT(test_,__LINE__)[(( +#define TEST_E )==1) ? 1 : -1]; + +#define MACRO(X) X +#define MACRO_ARGS(X) (X) #endif