Skip to content

Commit 4862716

Browse files
committed
[llvm-cov] let text mode divider honor --show-branch-summary --show-region-summary etc
1 parent 527e732 commit 4862716

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

llvm/tools/llvm-cov/CoverageReport.cpp

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -102,8 +102,16 @@ void adjustColumnWidths(ArrayRef<StringRef> Files,
102102

103103
/// Prints a horizontal divider long enough to cover the given column
104104
/// widths.
105-
void renderDivider(ArrayRef<size_t> ColumnWidths, raw_ostream &OS) {
105+
void renderDivider(ArrayRef<size_t> ColumnWidths, raw_ostream &OS, const CoverageViewOptions &Options) {
106106
size_t Length = std::accumulate(ColumnWidths.begin(), ColumnWidths.end(), 0);
107+
if (!Options.ShowRegionSummary)
108+
Length -= (FileReportColumns[1] + FileReportColumns[2] + FileReportColumns[3]);
109+
if (!Options.ShowInstantiationSummary)
110+
Length -= (FileReportColumns[7] + FileReportColumns[8] + FileReportColumns[9]);
111+
if (!Options.ShowBranchSummary)
112+
Length -= (FileReportColumns[13] + FileReportColumns[14] + FileReportColumns[15]);
113+
if (!Options.ShowMCDCSummary)
114+
Length -= (FileReportColumns[16] + FileReportColumns[17] + FileReportColumns[18]);
107115
for (size_t I = 0; I < Length; ++I)
108116
OS << '-';
109117
}
@@ -405,7 +413,7 @@ void CoverageReport::renderFunctionReports(ArrayRef<std::string> Files,
405413
<< column("Miss", FunctionReportColumns[11], Column::RightAlignment)
406414
<< column("Cover", FunctionReportColumns[12], Column::RightAlignment);
407415
OS << "\n";
408-
renderDivider(FunctionReportColumns, OS);
416+
renderDivider(FunctionReportColumns, OS, Options);
409417
OS << "\n";
410418
FunctionCoverageSummary Totals("TOTAL");
411419
for (const auto &F : Functions) {
@@ -418,7 +426,7 @@ void CoverageReport::renderFunctionReports(ArrayRef<std::string> Files,
418426
render(Function, DC, OS);
419427
}
420428
if (Totals.ExecutionCount) {
421-
renderDivider(FunctionReportColumns, OS);
429+
renderDivider(FunctionReportColumns, OS, Options);
422430
OS << "\n";
423431
render(Totals, DC, OS);
424432
}
@@ -544,7 +552,7 @@ void CoverageReport::renderFileReports(
544552
Column::RightAlignment)
545553
<< column("Cover", FileReportColumns[18], Column::RightAlignment);
546554
OS << "\n";
547-
renderDivider(FileReportColumns, OS);
555+
renderDivider(FileReportColumns, OS, Options);
548556
OS << "\n";
549557

550558
std::vector<const FileCoverageSummary *> EmptyFiles;
@@ -563,7 +571,7 @@ void CoverageReport::renderFileReports(
563571
render(*FCS, OS);
564572
}
565573

566-
renderDivider(FileReportColumns, OS);
574+
renderDivider(FileReportColumns, OS, Options);
567575
OS << "\n";
568576
render(Totals, OS);
569577
}

0 commit comments

Comments
 (0)