109467b48Spatrick //===- SourceCoverageViewText.h - A text-based code coverage view ---------===// 209467b48Spatrick // 309467b48Spatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 409467b48Spatrick // See https://llvm.org/LICENSE.txt for license information. 509467b48Spatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 609467b48Spatrick // 709467b48Spatrick //===----------------------------------------------------------------------===// 809467b48Spatrick /// 909467b48Spatrick /// \file This file defines the interface to the text-based coverage renderer. 1009467b48Spatrick /// 1109467b48Spatrick //===----------------------------------------------------------------------===// 1209467b48Spatrick 1309467b48Spatrick #ifndef LLVM_COV_SOURCECOVERAGEVIEWTEXT_H 1409467b48Spatrick #define LLVM_COV_SOURCECOVERAGEVIEWTEXT_H 1509467b48Spatrick 1609467b48Spatrick #include "SourceCoverageView.h" 1709467b48Spatrick 1809467b48Spatrick namespace llvm { 1909467b48Spatrick 2009467b48Spatrick using namespace coverage; 2109467b48Spatrick 2209467b48Spatrick /// A coverage printer for text output. 2309467b48Spatrick class CoveragePrinterText : public CoveragePrinter { 2409467b48Spatrick public: 2509467b48Spatrick Expected<OwnedStream> createViewFile(StringRef Path, 2609467b48Spatrick bool InToplevel) override; 2709467b48Spatrick 2809467b48Spatrick void closeViewFile(OwnedStream OS) override; 2909467b48Spatrick 3009467b48Spatrick Error createIndexFile(ArrayRef<std::string> SourceFiles, 3109467b48Spatrick const CoverageMapping &Coverage, 3209467b48Spatrick const CoverageFiltersMatchAll &Filters) override; 3309467b48Spatrick CoveragePrinterText(const CoverageViewOptions & Opts)3409467b48Spatrick CoveragePrinterText(const CoverageViewOptions &Opts) 3509467b48Spatrick : CoveragePrinter(Opts) {} 3609467b48Spatrick }; 3709467b48Spatrick 3809467b48Spatrick /// A code coverage view which supports text-based rendering. 3909467b48Spatrick class SourceCoverageViewText : public SourceCoverageView { 4009467b48Spatrick void renderViewHeader(raw_ostream &OS) override; 4109467b48Spatrick 4209467b48Spatrick void renderViewFooter(raw_ostream &OS) override; 4309467b48Spatrick 4409467b48Spatrick void renderSourceName(raw_ostream &OS, bool WholeFile) override; 4509467b48Spatrick 4609467b48Spatrick void renderLinePrefix(raw_ostream &OS, unsigned ViewDepth) override; 4709467b48Spatrick 4809467b48Spatrick void renderLineSuffix(raw_ostream &OS, unsigned ViewDepth) override; 4909467b48Spatrick 5009467b48Spatrick void renderViewDivider(raw_ostream &OS, unsigned ViewDepth) override; 5109467b48Spatrick 5209467b48Spatrick void renderLine(raw_ostream &OS, LineRef L, const LineCoverageStats &LCS, 5309467b48Spatrick unsigned ExpansionCol, unsigned ViewDepth) override; 5409467b48Spatrick 5509467b48Spatrick void renderExpansionSite(raw_ostream &OS, LineRef L, 5609467b48Spatrick const LineCoverageStats &LCS, unsigned ExpansionCol, 5709467b48Spatrick unsigned ViewDepth) override; 5809467b48Spatrick 5909467b48Spatrick void renderExpansionView(raw_ostream &OS, ExpansionView &ESV, 6009467b48Spatrick unsigned ViewDepth) override; 6109467b48Spatrick 62*73471bf0Spatrick void renderBranchView(raw_ostream &OS, BranchView &BRV, 63*73471bf0Spatrick unsigned ViewDepth) override; 64*73471bf0Spatrick 6509467b48Spatrick void renderInstantiationView(raw_ostream &OS, InstantiationView &ISV, 6609467b48Spatrick unsigned ViewDepth) override; 6709467b48Spatrick 6809467b48Spatrick void renderLineCoverageColumn(raw_ostream &OS, 6909467b48Spatrick const LineCoverageStats &Line) override; 7009467b48Spatrick 7109467b48Spatrick void renderLineNumberColumn(raw_ostream &OS, unsigned LineNo) override; 7209467b48Spatrick 7309467b48Spatrick void renderRegionMarkers(raw_ostream &OS, const LineCoverageStats &Line, 7409467b48Spatrick unsigned ViewDepth) override; 7509467b48Spatrick 7609467b48Spatrick void renderTitle(raw_ostream &OS, StringRef Title) override; 7709467b48Spatrick 7809467b48Spatrick void renderTableHeader(raw_ostream &OS, unsigned FirstUncoveredLineNo, 7909467b48Spatrick unsigned IndentLevel) override; 8009467b48Spatrick 8109467b48Spatrick public: SourceCoverageViewText(StringRef SourceName,const MemoryBuffer & File,const CoverageViewOptions & Options,CoverageData && CoverageInfo)8209467b48Spatrick SourceCoverageViewText(StringRef SourceName, const MemoryBuffer &File, 8309467b48Spatrick const CoverageViewOptions &Options, 8409467b48Spatrick CoverageData &&CoverageInfo) 8509467b48Spatrick : SourceCoverageView(SourceName, File, Options, std::move(CoverageInfo)) { 8609467b48Spatrick } 8709467b48Spatrick }; 8809467b48Spatrick 8909467b48Spatrick } // namespace llvm 9009467b48Spatrick 9109467b48Spatrick #endif // LLVM_COV_SOURCECOVERAGEVIEWTEXT_H 92