diff options
Diffstat (limited to 'llvm/tools/llvm-cov/CoverageReport.h')
| -rw-r--r-- | llvm/tools/llvm-cov/CoverageReport.h | 69 | 
1 files changed, 69 insertions, 0 deletions
diff --git a/llvm/tools/llvm-cov/CoverageReport.h b/llvm/tools/llvm-cov/CoverageReport.h new file mode 100644 index 000000000000..f9a092f510b5 --- /dev/null +++ b/llvm/tools/llvm-cov/CoverageReport.h @@ -0,0 +1,69 @@ +//===- CoverageReport.h - Code coverage report ----------------------------===// +// +// 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 implements rendering of a code coverage report. +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_COV_COVERAGEREPORT_H +#define LLVM_COV_COVERAGEREPORT_H + +#include "CoverageFilters.h" +#include "CoverageSummaryInfo.h" +#include "CoverageViewOptions.h" + +namespace llvm { + +/// Displays the code coverage report. +class CoverageReport { +  const CoverageViewOptions &Options; +  const coverage::CoverageMapping &Coverage; + +  void render(const FileCoverageSummary &File, raw_ostream &OS) const; +  void render(const FunctionCoverageSummary &Function, const DemangleCache &DC, +              raw_ostream &OS) const; + +public: +  CoverageReport(const CoverageViewOptions &Options, +                 const coverage::CoverageMapping &Coverage) +      : Options(Options), Coverage(Coverage) {} + +  void renderFunctionReports(ArrayRef<std::string> Files, +                             const DemangleCache &DC, raw_ostream &OS); + +  /// Prepare file reports for the files specified in \p Files. +  static std::vector<FileCoverageSummary> +  prepareFileReports(const coverage::CoverageMapping &Coverage, +                     FileCoverageSummary &Totals, ArrayRef<std::string> Files, +                     const CoverageViewOptions &Options, +                     const CoverageFilter &Filters = CoverageFiltersMatchAll()); + +  static void +  prepareSingleFileReport(const StringRef Filename, +                          const coverage::CoverageMapping *Coverage, +                          const CoverageViewOptions &Options, +                          const unsigned LCP, +                          FileCoverageSummary *FileReport, +                          const CoverageFilter *Filters); + +  /// Render file reports for every unique file in the coverage mapping. +  void renderFileReports(raw_ostream &OS, +                         const CoverageFilters &IgnoreFilenameFilters) const; + +  /// Render file reports for the files specified in \p Files. +  void renderFileReports(raw_ostream &OS, ArrayRef<std::string> Files) const; + +  /// Render file reports for the files specified in \p Files and the functions +  /// in \p Filters. +  void renderFileReports(raw_ostream &OS, ArrayRef<std::string> Files, +                         const CoverageFiltersMatchAll &Filters) const; +}; + +} // end namespace llvm + +#endif // LLVM_COV_COVERAGEREPORT_H  | 
