diff options
author | Vedant Kumar <vsk@apple.com> | 2016-07-06 21:44:05 +0000 |
---|---|---|
committer | Vedant Kumar <vsk@apple.com> | 2016-07-06 21:44:05 +0000 |
commit | 4c01092a25506abfc75e36ce625cf0c2c3446ddc (patch) | |
tree | cea51e9b3f76a813b73086b89f1d6a36d0640544 /llvm/tools/llvm-cov/SourceCoverageViewHTML.h | |
parent | d03e659140834cd2a50087bf0e5bc5ffca70b2f4 (diff) | |
download | bcm5719-llvm-4c01092a25506abfc75e36ce625cf0c2c3446ddc.tar.gz bcm5719-llvm-4c01092a25506abfc75e36ce625cf0c2c3446ddc.zip |
[llvm-cov] Add support for creating html reports
Based on a patch by Harlan Haskins!
Differential Revision: http://reviews.llvm.org/D18278
llvm-svn: 274688
Diffstat (limited to 'llvm/tools/llvm-cov/SourceCoverageViewHTML.h')
-rw-r--r-- | llvm/tools/llvm-cov/SourceCoverageViewHTML.h | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/llvm/tools/llvm-cov/SourceCoverageViewHTML.h b/llvm/tools/llvm-cov/SourceCoverageViewHTML.h new file mode 100644 index 00000000000..50ecf2bf899 --- /dev/null +++ b/llvm/tools/llvm-cov/SourceCoverageViewHTML.h @@ -0,0 +1,83 @@ +//===- SourceCoverageViewHTML.h - A html code coverage view ---------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +/// +/// \file This file defines the interface to the html coverage renderer. +/// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_COV_SOURCECOVERAGEVIEWHTML_H +#define LLVM_COV_SOURCECOVERAGEVIEWHTML_H + +#include "SourceCoverageView.h" + +namespace llvm { + +/// \brief A coverage printer for html output. +class CoveragePrinterHTML : public CoveragePrinter { +public: + Expected<OwnedStream> createViewFile(StringRef Path, + bool InToplevel) override; + + void closeViewFile(OwnedStream OS) override; + + Error createIndexFile(ArrayRef<StringRef> SourceFiles) override; + + CoveragePrinterHTML(const CoverageViewOptions &Opts) + : CoveragePrinter(Opts) {} +}; + +/// \brief A code coverage view which supports html-based rendering. +class SourceCoverageViewHTML : public SourceCoverageView { + void renderViewHeader(raw_ostream &OS) override; + + void renderViewFooter(raw_ostream &OS) override; + + void renderSourceName(raw_ostream &OS) override; + + void renderLinePrefix(raw_ostream &OS, unsigned ViewDepth) override; + + void renderLineSuffix(raw_ostream &OS, unsigned ViewDepth) override; + + void renderViewDivider(raw_ostream &OS, unsigned ViewDepth) override; + + void renderLine(raw_ostream &OS, LineRef L, + const coverage::CoverageSegment *WrappedSegment, + CoverageSegmentArray Segments, unsigned ExpansionCol, + unsigned ViewDepth) override; + + void renderExpansionSite(raw_ostream &OS, LineRef L, + const coverage::CoverageSegment *WrappedSegment, + CoverageSegmentArray Segments, unsigned ExpansionCol, + unsigned ViewDepth) override; + + void renderExpansionView(raw_ostream &OS, ExpansionView &ESV, + unsigned ViewDepth) override; + + void renderInstantiationView(raw_ostream &OS, InstantiationView &ISV, + unsigned ViewDepth) override; + + void renderLineCoverageColumn(raw_ostream &OS, + const LineCoverageStats &Line) override; + + void renderLineNumberColumn(raw_ostream &OS, unsigned LineNo) override; + + void renderRegionMarkers(raw_ostream &OS, CoverageSegmentArray Segments, + unsigned ViewDepth) override; + +public: + SourceCoverageViewHTML(StringRef SourceName, const MemoryBuffer &File, + const CoverageViewOptions &Options, + coverage::CoverageData &&CoverageInfo) + : SourceCoverageView(SourceName, File, Options, std::move(CoverageInfo)) { + } +}; + +} // namespace llvm + +#endif // LLVM_COV_SOURCECOVERAGEVIEWHTML_H |