1717 */
1818
1919#include < list>
20+ #include " cppcheck.h"
2021#include " testsuite.h"
2122#include " errorlogger.h"
2223
@@ -38,6 +39,7 @@ class TestErrorLogger : public TestFixture
3839 TEST_CASE (CustomFormat2);
3940 TEST_CASE (ToXml);
4041 TEST_CASE (ToVerboseXml);
42+ TEST_CASE (ToXmlV2);
4143 }
4244
4345 void FileLocationDefaults ()
@@ -140,5 +142,25 @@ class TestErrorLogger : public TestFixture
140142 ASSERT_EQUALS (" </results>" , ErrorLogger::ErrorMessage::getXMLFooter (1 ));
141143 ASSERT_EQUALS (" <error file=\" foo.cpp\" line=\" 5\" id=\" errorId\" severity=\" error\" msg=\" Verbose error\" />" , msg.toXML (true ,1 ));
142144 }
145+
146+ void ToXmlV2 ()
147+ {
148+ ErrorLogger::ErrorMessage::FileLocation loc;
149+ loc.setfile (" foo.cpp" );
150+ loc.line = 5 ;
151+ std::list<ErrorLogger::ErrorMessage::FileLocation> locs;
152+ locs.push_back (loc);
153+ ErrorMessage msg (locs, Severity::error, " Programming error.\n Verbose error" , " errorId" );
154+ std::string header (" <?xml version=\" 1.0\" ?>\n <results version=\" 2\" >\n " );
155+ header += " <cppcheck version=\" " ;
156+ header += CppCheck::version ();
157+ header += " \" />\n <errors>" ;
158+ ASSERT_EQUALS (header, ErrorLogger::ErrorMessage::getXMLHeader (2 ));
159+ ASSERT_EQUALS (" </errors>\n </results>" , ErrorLogger::ErrorMessage::getXMLFooter (2 ));
160+ std::string message (" <error id=\" errorId\" severity=\" error\" " );
161+ message += " msg=\" Programming error.\" verbose=\" Verbose error\" >\n " ;
162+ message += " <location file=\" foo.cpp\" line=\" 5\" />\n </error>" ;
163+ ASSERT_EQUALS (message, msg.toXML (false ,2 ));
164+ }
143165};
144166REGISTER_TEST (TestErrorLogger)
0 commit comments