diff options
author | Vedant Kumar <vsk@apple.com> | 2015-10-21 16:03:32 +0000 |
---|---|---|
committer | Vedant Kumar <vsk@apple.com> | 2015-10-21 16:03:32 +0000 |
commit | aaead3309a45e3410404a4ae64543d9744c2308e (patch) | |
tree | 014b2eda83b6f5f4263bd0d9b6e436316ec56588 /llvm/tools/llvm-cov/CoverageReport.cpp | |
parent | da9b90ce115f64210f9f428f7c3a8ae78a211a6c (diff) | |
download | bcm5719-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.cpp | 22 |
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) |