summaryrefslogtreecommitdiffstats
path: root/Source/CTest/cmParseJacocoCoverage.h
diff options
context:
space:
mode:
authorJoseph Snyder <joe.snyder@kitware.com>2014-05-21 19:19:35 (GMT)
committerJoseph Snyder <joe.snyder@kitware.com>2014-06-12 14:38:19 (GMT)
commit558c2190e89c4a62d9e279cfee2af1f77f628b9b (patch)
treef5452711f616f0a78493248978f294ad6b110db6 /Source/CTest/cmParseJacocoCoverage.h
parent47cde18849201c3b58479d38725b554f3ad34eaf (diff)
downloadCMake-558c2190e89c4a62d9e279cfee2af1f77f628b9b.zip
CMake-558c2190e89c4a62d9e279cfee2af1f77f628b9b.tar.gz
CMake-558c2190e89c4a62d9e279cfee2af1f77f628b9b.tar.bz2
CTest: Add Jacoco Coverage functionality
Add the ability to parse the XML output of the Jacoco tool. Jacoco (www.eclemma.org/jacoco) is a Java coverage tool. Add and integrate a class for the parser and include a test which utilizes the new parser.
Diffstat (limited to 'Source/CTest/cmParseJacocoCoverage.h')
-rw-r--r--Source/CTest/cmParseJacocoCoverage.h59
1 files changed, 59 insertions, 0 deletions
diff --git a/Source/CTest/cmParseJacocoCoverage.h b/Source/CTest/cmParseJacocoCoverage.h
new file mode 100644
index 0000000..dad05a3
--- /dev/null
+++ b/Source/CTest/cmParseJacocoCoverage.h
@@ -0,0 +1,59 @@
+/*============================================================================
+ 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 cmParseJacocoCoverage_h
+#define cmParseJacocoCoverage_h
+
+#include "cmStandardIncludes.h"
+#include "cmCTestCoverageHandler.h"
+
+
+/** \class cmParseJacocoCoverage
+ * \brief Parse JaCoCO coverage information
+ *
+ * This class is used to parse coverage information for
+ * java using the JaCoCo tool:
+ *
+ * http://www.eclemma.org/jacoco/trunk/index.html
+ */
+class cmParseJacocoCoverage
+{
+public:
+ cmParseJacocoCoverage(cmCTestCoverageHandlerContainer& cont,
+ cmCTest* ctest);
+ bool LoadCoverageData(const std::vector<std::string> files);
+
+ std::string PackageName;
+ std::string FileName;
+ std::string ModuleName;
+ std::string CurFileName;
+private:
+ // implement virtual from parent
+ // remove files with no coverage
+ void RemoveUnCoveredFiles();
+ // Read a single mcov file
+ bool ReadJacocoXML(const char* f);
+ // split a string based on ,
+ bool SplitString(std::vector<std::string>& args,
+ std::string const& line);
+ bool FindJavaFile(std::string const& routine,
+ std::string& filepath);
+ void InitializeJavaFile(std::string& file);
+ bool LoadSource(std::string d);
+
+ class XMLParser;
+ std::map<std::string, std::string> RoutineToDirectory;
+ cmCTestCoverageHandlerContainer& Coverage;
+ cmCTest* CTest;
+};
+
+#endif