summaryrefslogtreecommitdiffstats
path: root/Source/CTest/cmParsePythonCoverage.h
diff options
context:
space:
mode:
authorPatrick Reynolds <patrick.reynolds@kitware.com>2013-09-27 14:42:39 (GMT)
committerBrad King <brad.king@kitware.com>2013-10-08 13:20:30 (GMT)
commitd0ec3a01a61f259768d31fc20791780807e1788e (patch)
treed5dfba622c1739ddedadfe7190eda5c7959a27f5 /Source/CTest/cmParsePythonCoverage.h
parent6ed8504ea5633932e5db3a5a70853a763df7af50 (diff)
downloadCMake-d0ec3a01a61f259768d31fc20791780807e1788e.zip
CMake-d0ec3a01a61f259768d31fc20791780807e1788e.tar.gz
CMake-d0ec3a01a61f259768d31fc20791780807e1788e.tar.bz2
Adding support for the Python coverage.py tool.
This assumes that coverage.py has been run in such a way to produce its standard XML output. This uses the Cobertura schema and should be somewhat generalizable.
Diffstat (limited to 'Source/CTest/cmParsePythonCoverage.h')
-rw-r--r--Source/CTest/cmParsePythonCoverage.h48
1 files changed, 48 insertions, 0 deletions
diff --git a/Source/CTest/cmParsePythonCoverage.h b/Source/CTest/cmParsePythonCoverage.h
new file mode 100644
index 0000000..668c7f9
--- /dev/null
+++ b/Source/CTest/cmParsePythonCoverage.h
@@ -0,0 +1,48 @@
+/*============================================================================
+ CMake - Cross Platform Makefile Generator
+ Copyright 2000-2009 Kitware, Inc.
+
+ Distributed under the OSI-approved BSD License (the "License");
+ see accompanying file Copyright.txt for details.
+
+ This software is distributed WITHOUT ANY WARRANTY; without even the
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the License for more information.
+============================================================================*/
+
+#ifndef cmParsePythonCoverage_h
+#define cmParsePythonCoverage_h
+
+#include "cmStandardIncludes.h"
+#include "cmCTestCoverageHandler.h"
+
+/** \class cmParsePythonCoverage
+ * \brief Parse coverage.py Python coverage information
+ *
+ * This class is used to parse the output of the coverage.py tool that
+ * is currently maintained by Ned Batchelder. That tool has a command
+ * that produces xml output in the format typically output by the common
+ * Java-based Cobertura coverage application. This helper class parses
+ * that XML file to fill the coverage-handler container.
+ */
+class cmParsePythonCoverage
+{
+public:
+
+ //! Create the coverage parser by passing in the coverage handler
+ //! container and the cmCTest object
+ cmParsePythonCoverage(cmCTestCoverageHandlerContainer& cont,
+ cmCTest* ctest);
+
+ //! Read the XML produced by running `coverage xml`
+ bool ReadCoverageXML(const char* xmlFile);
+
+private:
+
+ class XMLParser;
+ cmCTestCoverageHandlerContainer& Coverage;
+ cmCTest* CTest;
+ std::string CurFileName;
+};
+
+#endif