Path: blob/main/contrib/llvm-project/llvm/tools/llvm-cov/SourceCoverageViewText.h
35231 views
//===- SourceCoverageViewText.h - A text-based code coverage view ---------===//1//2// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.3// See https://llvm.org/LICENSE.txt for license information.4// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception5//6//===----------------------------------------------------------------------===//7///8/// \file This file defines the interface to the text-based coverage renderer.9///10//===----------------------------------------------------------------------===//1112#ifndef LLVM_COV_SOURCECOVERAGEVIEWTEXT_H13#define LLVM_COV_SOURCECOVERAGEVIEWTEXT_H1415#include "SourceCoverageView.h"1617namespace llvm {1819using namespace coverage;2021/// A coverage printer for text output.22class CoveragePrinterText : public CoveragePrinter {23public:24Expected<OwnedStream> createViewFile(StringRef Path,25bool InToplevel) override;2627void closeViewFile(OwnedStream OS) override;2829Error createIndexFile(ArrayRef<std::string> SourceFiles,30const CoverageMapping &Coverage,31const CoverageFiltersMatchAll &Filters) override;3233CoveragePrinterText(const CoverageViewOptions &Opts)34: CoveragePrinter(Opts) {}35};3637/// A coverage printer for text output, but generates index files in every38/// subdirectory to show a hierarchical view. The implementation is similar39/// to CoveragePrinterHTMLDirectory. So please refer to that for more comments.40class CoveragePrinterTextDirectory : public CoveragePrinterText {41public:42using CoveragePrinterText::CoveragePrinterText;4344Error createIndexFile(ArrayRef<std::string> SourceFiles,45const CoverageMapping &Coverage,46const CoverageFiltersMatchAll &Filters) override;4748private:49struct Reporter;50};5152/// A code coverage view which supports text-based rendering.53class SourceCoverageViewText : public SourceCoverageView {54void renderViewHeader(raw_ostream &OS) override;5556void renderViewFooter(raw_ostream &OS) override;5758void renderSourceName(raw_ostream &OS, bool WholeFile) override;5960void renderLinePrefix(raw_ostream &OS, unsigned ViewDepth) override;6162void renderLineSuffix(raw_ostream &OS, unsigned ViewDepth) override;6364void renderViewDivider(raw_ostream &OS, unsigned ViewDepth) override;6566void renderLine(raw_ostream &OS, LineRef L, const LineCoverageStats &LCS,67unsigned ExpansionCol, unsigned ViewDepth) override;6869void renderExpansionSite(raw_ostream &OS, LineRef L,70const LineCoverageStats &LCS, unsigned ExpansionCol,71unsigned ViewDepth) override;7273void renderExpansionView(raw_ostream &OS, ExpansionView &ESV,74unsigned ViewDepth) override;7576void renderBranchView(raw_ostream &OS, BranchView &BRV,77unsigned ViewDepth) override;7879void renderMCDCView(raw_ostream &OS, MCDCView &BRV,80unsigned ViewDepth) override;8182void renderInstantiationView(raw_ostream &OS, InstantiationView &ISV,83unsigned ViewDepth) override;8485void renderLineCoverageColumn(raw_ostream &OS,86const LineCoverageStats &Line) override;8788void renderLineNumberColumn(raw_ostream &OS, unsigned LineNo) override;8990void renderRegionMarkers(raw_ostream &OS, const LineCoverageStats &Line,91unsigned ViewDepth) override;9293void renderTitle(raw_ostream &OS, StringRef Title) override;9495void renderTableHeader(raw_ostream &OS, unsigned IndentLevel) override;9697public:98SourceCoverageViewText(StringRef SourceName, const MemoryBuffer &File,99const CoverageViewOptions &Options,100CoverageData &&CoverageInfo)101: SourceCoverageView(SourceName, File, Options, std::move(CoverageInfo)) {102}103};104105} // namespace llvm106107#endif // LLVM_COV_SOURCECOVERAGEVIEWTEXT_H108109110