@@ -102,8 +102,16 @@ void adjustColumnWidths(ArrayRef<StringRef> Files,
102
102
103
103
// / Prints a horizontal divider long enough to cover the given column
104
104
// / widths.
105
- void renderDivider (ArrayRef<size_t > ColumnWidths, raw_ostream &OS) {
105
+ void renderDivider (ArrayRef<size_t > ColumnWidths, raw_ostream &OS, const CoverageViewOptions &Options ) {
106
106
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 ]);
107
115
for (size_t I = 0 ; I < Length; ++I)
108
116
OS << ' -' ;
109
117
}
@@ -405,7 +413,7 @@ void CoverageReport::renderFunctionReports(ArrayRef<std::string> Files,
405
413
<< column (" Miss" , FunctionReportColumns[11 ], Column::RightAlignment)
406
414
<< column (" Cover" , FunctionReportColumns[12 ], Column::RightAlignment);
407
415
OS << " \n " ;
408
- renderDivider (FunctionReportColumns, OS);
416
+ renderDivider (FunctionReportColumns, OS, Options );
409
417
OS << " \n " ;
410
418
FunctionCoverageSummary Totals (" TOTAL" );
411
419
for (const auto &F : Functions) {
@@ -418,7 +426,7 @@ void CoverageReport::renderFunctionReports(ArrayRef<std::string> Files,
418
426
render (Function, DC, OS);
419
427
}
420
428
if (Totals.ExecutionCount ) {
421
- renderDivider (FunctionReportColumns, OS);
429
+ renderDivider (FunctionReportColumns, OS, Options );
422
430
OS << " \n " ;
423
431
render (Totals, DC, OS);
424
432
}
@@ -544,7 +552,7 @@ void CoverageReport::renderFileReports(
544
552
Column::RightAlignment)
545
553
<< column (" Cover" , FileReportColumns[18 ], Column::RightAlignment);
546
554
OS << " \n " ;
547
- renderDivider (FileReportColumns, OS);
555
+ renderDivider (FileReportColumns, OS, Options );
548
556
OS << " \n " ;
549
557
550
558
std::vector<const FileCoverageSummary *> EmptyFiles;
@@ -563,7 +571,7 @@ void CoverageReport::renderFileReports(
563
571
render (*FCS, OS);
564
572
}
565
573
566
- renderDivider (FileReportColumns, OS);
574
+ renderDivider (FileReportColumns, OS, Options );
567
575
OS << " \n " ;
568
576
render (Totals, OS);
569
577
}
0 commit comments