summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-cov/CoverageReport.cpp
diff options
context:
space:
mode:
authorVedant Kumar <vsk@apple.com>2015-10-21 16:03:32 +0000
committerVedant Kumar <vsk@apple.com>2015-10-21 16:03:32 +0000
commitaaead3309a45e3410404a4ae64543d9744c2308e (patch)
tree014b2eda83b6f5f4263bd0d9b6e436316ec56588 /llvm/tools/llvm-cov/CoverageReport.cpp
parentda9b90ce115f64210f9f428f7c3a8ae78a211a6c (diff)
downloadbcm5719-llvm-aaead3309a45e3410404a4ae64543d9744c2308e.tar.gz
bcm5719-llvm-aaead3309a45e3410404a4ae64543d9744c2308e.zip
[llvm-cov] Adjust column widths for function and file reports
Previously, we only expanded function and filename column widths when rendering file reports. This commit makes the change for function reports as well. llvm-svn: 250900
Diffstat (limited to 'llvm/tools/llvm-cov/CoverageReport.cpp')
-rw-r--r--llvm/tools/llvm-cov/CoverageReport.cpp22
1 files changed, 13 insertions, 9 deletions
diff --git a/llvm/tools/llvm-cov/CoverageReport.cpp b/llvm/tools/llvm-cov/CoverageReport.cpp
index 7cab7b6c55c..ed01a2e154f 100644
--- a/llvm/tools/llvm-cov/CoverageReport.cpp
+++ b/llvm/tools/llvm-cov/CoverageReport.cpp
@@ -91,6 +91,17 @@ static Column column(StringRef Str, unsigned Width, const T &Value) {
static size_t FileReportColumns[] = {25, 10, 8, 8, 10, 10};
static size_t FunctionReportColumns[] = {25, 10, 8, 8, 10, 8, 8};
+/// \brief Adjust column widths to fit long file paths and function names.
+static void adjustColumnWidths(coverage::CoverageMapping *CM) {
+ for (StringRef Filename : CM->getUniqueSourceFiles()) {
+ FileReportColumns[0] = std::max(FileReportColumns[0], Filename.size());
+ for (const auto &F : CM->getCoveredFunctions(Filename)) {
+ FunctionReportColumns[0] =
+ std::max(FunctionReportColumns[0], F.Name.size());
+ }
+ }
+}
+
/// \brief Prints a horizontal divider which spans across the given columns.
template <typename T, size_t N>
static void renderDivider(T (&Columns)[N], raw_ostream &OS) {
@@ -162,6 +173,7 @@ void CoverageReport::render(const FunctionCoverageSummary &Function,
void CoverageReport::renderFunctionReports(ArrayRef<std::string> Files,
raw_ostream &OS) {
+ adjustColumnWidths(Coverage.get());
bool isFirst = true;
for (StringRef Filename : Files) {
if (isFirst)
@@ -196,15 +208,7 @@ void CoverageReport::renderFunctionReports(ArrayRef<std::string> Files,
}
void CoverageReport::renderFileReports(raw_ostream &OS) {
- // Adjust column widths to accomodate long paths and names.
- for (StringRef Filename : Coverage->getUniqueSourceFiles()) {
- FileReportColumns[0] = std::max(FileReportColumns[0], Filename.size());
- for (const auto &F : Coverage->getCoveredFunctions(Filename)) {
- FunctionReportColumns[0] =
- std::max(FunctionReportColumns[0], F.Name.size());
- }
- }
-
+ adjustColumnWidths(Coverage.get());
OS << column("Filename", FileReportColumns[0])
<< column("Regions", FileReportColumns[1], Column::RightAlignment)
<< column("Miss", FileReportColumns[2], Column::RightAlignment)
OpenPOWER on IntegriCloud