diff --git a/llvm/test/tools/llvm-cov/export_functions-lcov.test b/llvm/test/tools/llvm-cov/export_functions-lcov.test new file mode 100644 --- /dev/null +++ b/llvm/test/tools/llvm-cov/export_functions-lcov.test @@ -0,0 +1,8 @@ +# Test that llvm-cov export produces function data by default and that it can be +# turned off with a flag. + +RUN: llvm-cov export -format lcov %S/Inputs/report.covmapping -instr-profile %S/Inputs/report.profdata 2>&1 | FileCheck %s +RUN: llvm-cov export -format lcov %S/Inputs/report.covmapping -instr-profile %S/Inputs/report.profdata -skip-functions 2>&1 | FileCheck -check-prefix=SKIP-FUNCTIONS %s + +CHECK: FN: +SKIP-FUNCTIONS-NOT: FN: diff --git a/llvm/tools/llvm-cov/CoverageExporterLcov.cpp b/llvm/tools/llvm-cov/CoverageExporterLcov.cpp --- a/llvm/tools/llvm-cov/CoverageExporterLcov.cpp +++ b/llvm/tools/llvm-cov/CoverageExporterLcov.cpp @@ -78,10 +78,11 @@ void renderFile(raw_ostream &OS, const coverage::CoverageMapping &Coverage, const std::string &Filename, - const FileCoverageSummary &FileReport, bool ExportSummaryOnly) { + const FileCoverageSummary &FileReport, bool ExportSummaryOnly, + bool SkipFunctions) { OS << "SF:" << Filename << '\n'; - if (!ExportSummaryOnly) { + if (!ExportSummaryOnly && !SkipFunctions) { renderFunctions(OS, Coverage.getCoveredFunctions(Filename)); } renderFunctionSummary(OS, FileReport); @@ -99,9 +100,10 @@ void renderFiles(raw_ostream &OS, const coverage::CoverageMapping &Coverage, ArrayRef SourceFiles, ArrayRef FileReports, - bool ExportSummaryOnly) { + bool ExportSummaryOnly, bool SkipFunctions) { for (unsigned I = 0, E = SourceFiles.size(); I < E; ++I) - renderFile(OS, Coverage, SourceFiles[I], FileReports[I], ExportSummaryOnly); + renderFile(OS, Coverage, SourceFiles[I], FileReports[I], ExportSummaryOnly, + SkipFunctions); } } // end anonymous namespace @@ -119,6 +121,6 @@ FileCoverageSummary Totals = FileCoverageSummary("Totals"); auto FileReports = CoverageReport::prepareFileReports(Coverage, Totals, SourceFiles, Options); - renderFiles(OS, Coverage, SourceFiles, FileReports, - Options.ExportSummaryOnly); + renderFiles(OS, Coverage, SourceFiles, FileReports, Options.ExportSummaryOnly, + Options.SkipFunctions); }