diff options
author | Joseph Snyder <joe.snyder@kitware.com> | 2014-05-21 19:19:35 (GMT) |
---|---|---|
committer | Joseph Snyder <joe.snyder@kitware.com> | 2014-06-12 14:38:19 (GMT) |
commit | 558c2190e89c4a62d9e279cfee2af1f77f628b9b (patch) | |
tree | f5452711f616f0a78493248978f294ad6b110db6 /Source/CTest/cmParseJacocoCoverage.h | |
parent | 47cde18849201c3b58479d38725b554f3ad34eaf (diff) | |
download | CMake-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.h | 59 |
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 |