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
/// @{