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/CodeCoverage.cpp | |
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/CodeCoverage.cpp')
-rw-r--r-- | llvm/tools/llvm-cov/CodeCoverage.cpp | 38 |
1 files changed, 22 insertions, 16 deletions
diff --git a/llvm/tools/llvm-cov/CodeCoverage.cpp b/llvm/tools/llvm-cov/CodeCoverage.cpp index c5ea50bff27..59743f56703 100644 --- a/llvm/tools/llvm-cov/CodeCoverage.cpp +++ b/llvm/tools/llvm-cov/CodeCoverage.cpp @@ -13,6 +13,7 @@ // //===----------------------------------------------------------------------===// +#include "CoverageExporterJson.h" #include "CoverageFilters.h" #include "CoverageReport.h" #include "CoverageSummaryInfo.h" @@ -113,14 +114,14 @@ private: typedef llvm::function_ref<int(int, const char **)> CommandLineParserType; - int show(int argc, const char **argv, - CommandLineParserType commandLineParser); - - int report(int argc, const char **argv, + int doShow(int argc, const char **argv, CommandLineParserType commandLineParser); - int export_(int argc, const char **argv, - CommandLineParserType commandLineParser); + int doReport(int argc, const char **argv, + CommandLineParserType commandLineParser); + + int doExport(int argc, const char **argv, + CommandLineParserType commandLineParser); std::vector<StringRef> ObjectFilenames; CoverageViewOptions ViewOpts; @@ -755,17 +756,17 @@ int CodeCoverageTool::run(Command Cmd, int argc, const char **argv) { switch (Cmd) { case Show: - return show(argc, argv, commandLineParser); + return doShow(argc, argv, commandLineParser); case Report: - return report(argc, argv, commandLineParser); + return doReport(argc, argv, commandLineParser); case Export: - return export_(argc, argv, commandLineParser); + return doExport(argc, argv, commandLineParser); } return 0; } -int CodeCoverageTool::show(int argc, const char **argv, - CommandLineParserType commandLineParser) { +int CodeCoverageTool::doShow(int argc, const char **argv, + CommandLineParserType commandLineParser) { cl::OptionCategory ViewCategory("Viewing options"); @@ -932,8 +933,8 @@ int CodeCoverageTool::show(int argc, const char **argv, return 0; } -int CodeCoverageTool::report(int argc, const char **argv, - CommandLineParserType commandLineParser) { +int CodeCoverageTool::doReport(int argc, const char **argv, + CommandLineParserType commandLineParser) { cl::opt<bool> ShowFunctionSummaries( "show-functions", cl::Optional, cl::init(false), cl::desc("Show coverage summaries for each function")); @@ -969,8 +970,8 @@ int CodeCoverageTool::report(int argc, const char **argv, return 0; } -int CodeCoverageTool::export_(int argc, const char **argv, - CommandLineParserType commandLineParser) { +int CodeCoverageTool::doExport(int argc, const char **argv, + CommandLineParserType commandLineParser) { auto Err = commandLineParser(argc, argv); if (Err) @@ -987,7 +988,12 @@ int CodeCoverageTool::export_(int argc, const char **argv, return 1; } - exportCoverageDataToJson(*Coverage.get(), ViewOpts, outs()); + auto Exporter = CoverageExporterJson(*Coverage.get(), ViewOpts, outs()); + + if (SourceFiles.empty()) + Exporter.renderRoot(); + else + Exporter.renderRoot(SourceFiles); return 0; } |