@@ -343,6 +343,8 @@ class TestPreprocessor : public TestFixture {
343343 TEST_CASE (getConfigsAndCodeIssue14317);
344344 TEST_CASE (getConfigsMostGeneralConfigIssue14317);
345345
346+ TEST_CASE (getConfigsInvalid); // #14732
347+
346348 TEST_CASE (if_sizeof);
347349
348350 TEST_CASE (invalid_ifs); // #5909
@@ -2715,6 +2717,38 @@ class TestPreprocessor : public TestFixture {
27152717 ASSERT_EQUALS (" \n X\n Y=Y\n Z\n " , getConfigsStr (filedata));
27162718 }
27172719
2720+ // TODO: should these report errors about being incomplete?
2721+ void getConfigsInvalid () { // #14732
2722+ {
2723+ const char filedata[] = " #if<" ;
2724+ ASSERT_EQUALS (" \n " , getConfigsStr (filedata));
2725+ }
2726+ {
2727+ const char filedata[] = " #if>" ;
2728+ ASSERT_EQUALS (" \n " , getConfigsStr (filedata));
2729+ }
2730+ {
2731+ const char filedata[] = " #if==" ;
2732+ ASSERT_EQUALS (" \n " , getConfigsStr (filedata));
2733+ }
2734+ {
2735+ const char filedata[] = " #if<=" ;
2736+ ASSERT_EQUALS (" \n " , getConfigsStr (filedata));
2737+ }
2738+ {
2739+ const char filedata[] = " #if>=" ;
2740+ ASSERT_EQUALS (" \n " , getConfigsStr (filedata));
2741+ }
2742+ {
2743+ const char filedata[] = " #if!" ;
2744+ ASSERT_EQUALS (" \n " , getConfigsStr (filedata));
2745+ }
2746+ {
2747+ const char filedata[] = " #if defined" ;
2748+ ASSERT_EQUALS (" \n " , getConfigsStr (filedata));
2749+ }
2750+ }
2751+
27182752 void if_sizeof () { // #4071
27192753 const char code[] = " #if sizeof(unsigned short) == 2\n "
27202754 " Fred & Wilma\n "
0 commit comments