xref: /openbsd-src/gnu/llvm/llvm/tools/llvm-cov/SourceCoverageViewText.h (revision 73471bf04ceb096474c7f0fa83b1b65c70a787a1)
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