diff options
Diffstat (limited to 'contrib/llvm-project/llvm/tools/llvm-cov/CoverageExporter.h')
| -rw-r--r-- | contrib/llvm-project/llvm/tools/llvm-cov/CoverageExporter.h | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/contrib/llvm-project/llvm/tools/llvm-cov/CoverageExporter.h b/contrib/llvm-project/llvm/tools/llvm-cov/CoverageExporter.h new file mode 100644 index 000000000000..751e55dc0916 --- /dev/null +++ b/contrib/llvm-project/llvm/tools/llvm-cov/CoverageExporter.h @@ -0,0 +1,51 @@ +//===- CoverageExporter.h - Code coverage exporter ------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// +// +// This class defines a code coverage exporter interface. +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_COV_COVERAGEEXPORTER_H +#define LLVM_COV_COVERAGEEXPORTER_H + +#include "CoverageFilters.h" +#include "CoverageSummaryInfo.h" +#include "CoverageViewOptions.h" +#include "llvm/ProfileData/Coverage/CoverageMapping.h" + +namespace llvm { + +/// Exports the code coverage information. +class CoverageExporter { +protected: + /// The full CoverageMapping object to export. + const coverage::CoverageMapping &Coverage; + + /// The options passed to the tool. + const CoverageViewOptions &Options; + + /// Output stream to print to. + raw_ostream &OS; + + CoverageExporter(const coverage::CoverageMapping &CoverageMapping, + const CoverageViewOptions &Options, raw_ostream &OS) + : Coverage(CoverageMapping), Options(Options), OS(OS) {} + +public: + virtual ~CoverageExporter(){}; + + /// Render the CoverageMapping object. + virtual void renderRoot(const CoverageFilters &IgnoreFilters) = 0; + + /// Render the CoverageMapping object for specified source files. + virtual void renderRoot(ArrayRef<std::string> SourceFiles) = 0; +}; + +} // end namespace llvm + +#endif // LLVM_COV_COVERAGEEXPORTER_H |
