Skip to content

Commit d1812c8

Browse files
committed
Cppcheck: Write product name if provided in xml output
1 parent 68bb724 commit d1812c8

4 files changed

Lines changed: 8 additions & 6 deletions

File tree

cli/cppcheckexecutor.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ bool CppCheckExecutor::parseFromArgs(CppCheck *cppcheck, int argc, const char* c
122122

123123
if (parser.getShowErrorMessages()) {
124124
mShowAllErrors = true;
125-
std::cout << ErrorMessage::getXMLHeader();
125+
std::cout << ErrorMessage::getXMLHeader(settings.cppcheckCfgProductName);
126126
cppcheck->getErrorMessages();
127127
std::cout << ErrorMessage::getXMLFooter() << std::endl;
128128
}
@@ -908,7 +908,7 @@ int CppCheckExecutor::check_internal(CppCheck& cppcheck)
908908
}
909909

910910
if (settings.xml) {
911-
reportErr(ErrorMessage::getXMLHeader());
911+
reportErr(ErrorMessage::getXMLHeader(settings.cppcheckCfgProductName));
912912
}
913913

914914
if (!settings.buildDir.empty()) {

lib/errorlogger.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -368,7 +368,7 @@ bool ErrorMessage::deserialize(const std::string &data)
368368
return true;
369369
}
370370

371-
std::string ErrorMessage::getXMLHeader()
371+
std::string ErrorMessage::getXMLHeader(const std::string& productName)
372372
{
373373
tinyxml2::XMLPrinter printer;
374374

@@ -380,6 +380,8 @@ std::string ErrorMessage::getXMLHeader()
380380

381381
printer.PushAttribute("version", 2);
382382
printer.OpenElement("cppcheck", false);
383+
if (!productName.empty())
384+
printer.PushAttribute("product-name", productName.c_str());
383385
printer.PushAttribute("version", CppCheck::version());
384386
printer.CloseElement(false);
385387
printer.OpenElement("errors", false);

lib/errorlogger.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ class CPPCHECKLIB ErrorMessage {
160160
*/
161161
std::string toXML() const;
162162

163-
static std::string getXMLHeader();
163+
static std::string getXMLHeader(const std::string& productName);
164164
static std::string getXMLFooter();
165165

166166
/**

test/testerrorlogger.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ class TestErrorLogger : public TestFixture {
192192
header += " <cppcheck version=\"";
193193
header += CppCheck::version();
194194
header += "\"/>\n <errors>";
195-
ASSERT_EQUALS(header, ErrorMessage::getXMLHeader());
195+
ASSERT_EQUALS(header, ErrorMessage::getXMLHeader(""));
196196
ASSERT_EQUALS(" </errors>\n</results>", ErrorMessage::getXMLFooter());
197197
std::string message(" <error id=\"errorId\" severity=\"error\"");
198198
message += " msg=\"Programming error.\" verbose=\"Verbose error\">\n";
@@ -208,7 +208,7 @@ class TestErrorLogger : public TestFixture {
208208
header += " <cppcheck version=\"";
209209
header += CppCheck::version();
210210
header += "\"/>\n <errors>";
211-
ASSERT_EQUALS(header, ErrorMessage::getXMLHeader());
211+
ASSERT_EQUALS(header, ErrorMessage::getXMLHeader(""));
212212
ASSERT_EQUALS(" </errors>\n</results>", ErrorMessage::getXMLFooter());
213213
std::string message(" <error id=\"errorId\" severity=\"error\"");
214214
message += " msg=\"Programming error.\" verbose=\"Verbose error\">\n";

0 commit comments

Comments
 (0)