diff options
| author | Max Moroz <mmoroz@chromium.org> | 2018-01-04 19:33:29 +0000 |
|---|---|---|
| committer | Max Moroz <mmoroz@chromium.org> | 2018-01-04 19:33:29 +0000 |
| commit | 1ef3a778ac47564aa5a7f04bbf572d22d1c616fb (patch) | |
| tree | b228056baa1272298a67b3db879ee593e3f72cb6 /llvm/tools/llvm-cov/CoverageExporter.h | |
| parent | a47289a2ee77963de3e0dfafed0490ac3db449d2 (diff) | |
| download | bcm5719-llvm-1ef3a778ac47564aa5a7f04bbf572d22d1c616fb.tar.gz bcm5719-llvm-1ef3a778ac47564aa5a7f04bbf572d22d1c616fb.zip | |
[llvm-cov] Refactor "export" command implementation and add support for SOURCES.
Summary: Define an interface for Exporter + split JSON exporter into .h and .cpp.
Reviewers: vsk, morehouse
Reviewed By: vsk
Subscribers: llvm-commits, Dor1s, kcc
Differential Revision: https://reviews.llvm.org/D41600
llvm-svn: 321815
Diffstat (limited to 'llvm/tools/llvm-cov/CoverageExporter.h')
| -rw-r--r-- | llvm/tools/llvm-cov/CoverageExporter.h | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/llvm/tools/llvm-cov/CoverageExporter.h b/llvm/tools/llvm-cov/CoverageExporter.h new file mode 100644 index 00000000000..af9c8f062e4 --- /dev/null +++ b/llvm/tools/llvm-cov/CoverageExporter.h @@ -0,0 +1,51 @@ +//===- CoverageExporter.h - Code coverage exporter ------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This class defines a code coverage exporter interface. +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_COV_COVERAGEEXPORTER_H +#define LLVM_COV_COVERAGEEXPORTER_H + +#include "CoverageSummaryInfo.h" +#include "CoverageViewOptions.h" +#include "llvm/ProfileData/Coverage/CoverageMapping.h" + +namespace llvm { + +/// \brief Exports the code coverage information. +class CoverageExporter { +protected: + /// \brief The full CoverageMapping object to export. + const coverage::CoverageMapping &Coverage; + + /// \brief The options passed to the tool. + const CoverageViewOptions &Options; + + /// \brief Output stream to print JSON to. + raw_ostream &OS; + + CoverageExporter(const coverage::CoverageMapping &CoverageMapping, + const CoverageViewOptions &Options, raw_ostream &OS) + : Coverage(CoverageMapping), Options(Options), OS(OS) {} + +public: + virtual ~CoverageExporter(){}; + + /// \brief Render the CoverageMapping object. + virtual void renderRoot() = 0; + + /// \brief Render the CoverageMapping object for specified source files. + virtual void renderRoot(const std::vector<std::string> &SourceFiles) = 0; +}; + +} // end namespace llvm + +#endif // LLVM_COV_COVERAGEEXPORTER_H |

