@@ -154,6 +154,9 @@ static std::string toString(const simplecpp::OutputList &outputList)
154
154
case simplecpp::Output::Type::FILE_NOT_FOUND:
155
155
ostr << " file_not_found," ;
156
156
break ;
157
+ case simplecpp::Output::Type::DUI_ERROR:
158
+ ostr << " dui_error," ;
159
+ break ;
157
160
}
158
161
159
162
ostr << output.msg << ' \n ' ;
@@ -2656,6 +2659,48 @@ static void cpluscplusDefine()
2656
2659
ASSERT_EQUALS (" \n 201103L" , preprocess (code, dui));
2657
2660
}
2658
2661
2662
+ static void invalidStd ()
2663
+ {
2664
+ const char code[] = " " ;
2665
+ simplecpp::DUI dui;
2666
+ simplecpp::OutputList outputList;
2667
+
2668
+ dui.std = " c88" ;
2669
+ ASSERT_EQUALS (" " , preprocess (code, dui, &outputList));
2670
+ ASSERT_EQUALS (1 , outputList.size ());
2671
+ ASSERT_EQUALS (simplecpp::Output::Type::DUI_ERROR, outputList.cbegin ()->type );
2672
+ ASSERT_EQUALS (" unknown standard specified: 'c88'" , outputList.cbegin ()->msg );
2673
+ outputList.clear ();
2674
+
2675
+ dui.std = " gnu88" ;
2676
+ ASSERT_EQUALS (" " , preprocess (code, dui, &outputList));
2677
+ ASSERT_EQUALS (1 , outputList.size ());
2678
+ ASSERT_EQUALS (simplecpp::Output::Type::DUI_ERROR, outputList.cbegin ()->type );
2679
+ ASSERT_EQUALS (" unknown standard specified: 'gnu88'" , outputList.cbegin ()->msg );
2680
+ outputList.clear ();
2681
+
2682
+ dui.std = " d99" ;
2683
+ ASSERT_EQUALS (" " , preprocess (code, dui, &outputList));
2684
+ ASSERT_EQUALS (1 , outputList.size ());
2685
+ ASSERT_EQUALS (simplecpp::Output::Type::DUI_ERROR, outputList.cbegin ()->type );
2686
+ ASSERT_EQUALS (" unknown standard specified: 'd99'" , outputList.cbegin ()->msg );
2687
+ outputList.clear ();
2688
+
2689
+ dui.std = " c++77" ;
2690
+ ASSERT_EQUALS (" " , preprocess (code, dui, &outputList));
2691
+ ASSERT_EQUALS (1 , outputList.size ());
2692
+ ASSERT_EQUALS (simplecpp::Output::Type::DUI_ERROR, outputList.cbegin ()->type );
2693
+ ASSERT_EQUALS (" unknown standard specified: 'c++77'" , outputList.cbegin ()->msg );
2694
+ outputList.clear ();
2695
+
2696
+ dui.std = " gnu++33" ;
2697
+ ASSERT_EQUALS (" " , preprocess (code, dui, &outputList));
2698
+ ASSERT_EQUALS (1 , outputList.size ());
2699
+ ASSERT_EQUALS (simplecpp::Output::Type::DUI_ERROR, outputList.cbegin ()->type );
2700
+ ASSERT_EQUALS (" unknown standard specified: 'gnu++33'" , outputList.cbegin ()->msg );
2701
+ outputList.clear ();
2702
+ }
2703
+
2659
2704
static void assertToken (const std::string& s, bool name, bool number, bool comment, char op, int line)
2660
2705
{
2661
2706
const std::vector<std::string> f;
@@ -2984,6 +3029,7 @@ int main(int argc, char **argv)
2984
3029
2985
3030
TEST_CASE (stdcVersionDefine);
2986
3031
TEST_CASE (cpluscplusDefine);
3032
+ TEST_CASE (invalidStd);
2987
3033
2988
3034
TEST_CASE (token);
2989
3035
0 commit comments