/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying file Copyright.txt or https://cmake.org/licensing for details. */ #ifndef cmParseCoberturaCoverage_h #define cmParseCoberturaCoverage_h #include "cmConfigure.h" // IWYU pragma: keep #include #include class cmCTest; class cmCTestCoverageHandlerContainer; /** \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 cmParseCoberturaCoverage { public: //! Create the coverage parser by passing in the coverage handler //! container and the cmCTest object cmParseCoberturaCoverage(cmCTestCoverageHandlerContainer& cont, cmCTest* ctest); bool inSources; bool inSource; std::vector filepaths; //! Read the XML produced by running `coverage xml` bool ReadCoverageXML(const char* xmlFile); private: class XMLParser; cmCTestCoverageHandlerContainer& Coverage; cmCTest* CTest; std::string CurFileName; }; #endif