@@ -154,6 +154,9 @@ static std::string toString(const simplecpp::OutputList &outputList)
154154 case simplecpp::Output::Type::FILE_NOT_FOUND:
155155 ostr << " file_not_found," ;
156156 break ;
157+ case simplecpp::Output::Type::DUI_ERROR:
158+ ostr << " dui_error," ;
159+ break ;
157160 }
158161
159162 ostr << output.msg << ' \n ' ;
@@ -2656,6 +2659,48 @@ static void cpluscplusDefine()
26562659 ASSERT_EQUALS (" \n 201103L" , preprocess (code, dui));
26572660}
26582661
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+
26592704static void assertToken (const std::string& s, bool name, bool number, bool comment, char op, int line)
26602705{
26612706 const std::vector<std::string> f;
@@ -2984,6 +3029,7 @@ int main(int argc, char **argv)
29843029
29853030 TEST_CASE (stdcVersionDefine);
29863031 TEST_CASE (cpluscplusDefine);
3032+ TEST_CASE (invalidStd);
29873033
29883034 TEST_CASE (token);
29893035
0 commit comments