diff --git a/test/testpreprocessor.cpp b/test/testpreprocessor.cpp index 7727b349b..b9a7143e5 100644 --- a/test/testpreprocessor.cpp +++ b/test/testpreprocessor.cpp @@ -77,6 +77,7 @@ private: TEST_CASE(macro_simple5); TEST_CASE(macro_mismatch); TEST_CASE(preprocessor_inside_string); + TEST_CASE(preprocessor_undef); } @@ -509,6 +510,24 @@ private: ASSERT_EQUALS(1, actual.size()); ASSERT_EQUALS("int main(){ const char *a = \"#define A\n\";}\n", actual[""]); } + + void preprocessor_undef() + { + const char filedata[] = "#define AAA int a;\n" + "#undef AAA\n" + "#define AAA char b=0;\n" + "AAA\n"; + + // Preprocess => actual result.. + std::istringstream istr(filedata); + std::map actual; + Preprocessor preprocessor; + preprocessor.preprocess(istr, actual); + + // Compare results.. + ASSERT_EQUALS(1, actual.size()); + ASSERT_EQUALS("\n\n\nchar b=0;\n", actual[""]); + } }; REGISTER_TEST(TestPreprocessor)