diff --git a/gui/test/main.cpp b/gui/test/main.cpp index 355bb4d9d..9ba262892 100644 --- a/gui/test/main.cpp +++ b/gui/test/main.cpp @@ -21,6 +21,7 @@ #include "testtranslationhandler.h" #include "testxmlreport.h" #include "testxmlreportv1.h" +#include "testxmlreportv2.h" int main(int argc, char *argv[]) { @@ -35,5 +36,8 @@ int main(int argc, char *argv[]) TestXmlReportV1 testXmlReportV1; QTest::qExec(&testXmlReportV1); + TestXmlReportV2 testXmlReportV2; + QTest::qExec(&testXmlReportV2); + return a.exec(); } diff --git a/gui/test/test.pro b/gui/test/test.pro index 1f3b04a8d..917d4364f 100644 --- a/gui/test/test.pro +++ b/gui/test/test.pro @@ -2,27 +2,37 @@ TEMPLATE = app TARGET = test CONFIG += qtestlib DEPENDPATH += . .. -INCLUDEPATH += . .. +INCLUDEPATH += . .. ../../lib + +LIBS += -L../../externals -lpcre +INCLUDEPATH += ../../externals + +BASEPATH = ../../lib/ +include($$PWD/../../lib/lib.pri) # tests SOURCES += main.cpp \ testtranslationhandler.cpp \ testxmlreport.cpp \ - testxmlreportv1.cpp + testxmlreportv1.cpp \ + testxmlreportv2.cpp HEADERS += testtranslationhandler.h \ testxmlreport.h \ - testxmlreportv1.h + testxmlreportv1.h \ + testxmlreportv2.h # GUI SOURCES += ../erroritem.cpp \ ../report.cpp \ ../translationhandler.cpp \ ../xmlreport.cpp \ - ../xmlreportv1.cpp + ../xmlreportv1.cpp \ + ../xmlreportv2.cpp HEADERS += ../erroritem.h \ ../report.h \ ../translationhandler.h \ ../xmlreport.h \ - ../xmlreportv1.h + ../xmlreportv1.h \ + ../xmlreportv2.h diff --git a/gui/test/testxmlreportv2.cpp b/gui/test/testxmlreportv2.cpp new file mode 100644 index 000000000..164061852 --- /dev/null +++ b/gui/test/testxmlreportv2.cpp @@ -0,0 +1,56 @@ +/* + * Cppcheck - A tool for static C/C++ code analysis + * Copyright (C) 2007-2011 Daniel Marjamäki and Cppcheck team. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include +#include +#include "testxmlreportv2.h" +#include "xmlreportv2.h" +#include "erroritem.h" + +void TestXmlReportV2::readXml() +{ + const QString filepath("xmlfiles/xmlreport_v2.xml"); + XmlReportV2 report(filepath); + QVERIFY(report.Open()); + QList errors = report.Read(); + QCOMPARE(6, errors.size()); + + ErrorItem item = errors[0]; + QCOMPARE(item.file, QString("test.cxx")); + QCOMPARE(item.files.size(), 1); + QCOMPARE(item.lines.size(), 1); + QCOMPARE(item.files[0], QString("test.cxx")); + QCOMPARE(item.lines[0], (unsigned int)11); + QCOMPARE(item.id, QString("unreadVariable")); + QCOMPARE(item.severity, QString("style")); + QCOMPARE(item.summary, QString("Variable 'a' is assigned a value that is never used")); + QCOMPARE(item.message, QString("Variable 'a' is assigned a value that is never used")); + + ErrorItem item2 = errors[3]; + QCOMPARE(item2.file, QString("test.cxx")); + QCOMPARE(item2.files.size(), 2); + QCOMPARE(item2.lines.size(), 2); + QCOMPARE(item2.files[0], QString("test.cxx")); + QCOMPARE(item2.lines[0], (unsigned int)32); + QCOMPARE(item2.files[1], QString("test.cxx")); + QCOMPARE(item2.lines[1], (unsigned int)16); + QCOMPARE(item2.id, QString("mismatchAllocDealloc")); + QCOMPARE(item2.severity, QString("error")); + QCOMPARE(item2.summary, QString("Mismatching allocation and deallocation: k")); + QCOMPARE(item2.message, QString("Mismatching allocation and deallocation: k")); +} diff --git a/gui/test/testxmlreportv2.h b/gui/test/testxmlreportv2.h new file mode 100644 index 000000000..d3c43f750 --- /dev/null +++ b/gui/test/testxmlreportv2.h @@ -0,0 +1,28 @@ +/* + * Cppcheck - A tool for static C/C++ code analysis + * Copyright (C) 2007-2011 Daniel Marjamäki and Cppcheck team. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include +#include + +class TestXmlReportV2: public QObject +{ + Q_OBJECT + +private slots: + void readXml(); +}; diff --git a/gui/xmlreportv2.h b/gui/xmlreportv2.h index 6b1a2841c..47b5a5775 100644 --- a/gui/xmlreportv2.h +++ b/gui/xmlreportv2.h @@ -26,6 +26,7 @@ #include #include #include "report.h" +#include "xmlreport.h" /// @addtogroup GUI /// @{