[llvm] r264336 - [sancov] adding leading zeros to coverage pct.
Mike Aizatsky via llvm-commits
llvm-commits at lists.llvm.org
Thu Mar 24 13:41:19 PDT 2016
Author: aizatsky
Date: Thu Mar 24 15:41:18 2016
New Revision: 264336
URL: http://llvm.org/viewvc/llvm-project?rev=264336&view=rev
Log:
[sancov] adding leading zeros to coverage pct.
Summary:
Using leading zeroes allows you to search for "000%" to find non-covered
items.
Differential Revision: http://reviews.llvm.org/D18420
Modified:
llvm/trunk/tools/sancov/sancov.cc
Modified: llvm/trunk/tools/sancov/sancov.cc
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/sancov/sancov.cc?rev=264336&r1=264335&r2=264336&view=diff
==============================================================================
--- llvm/trunk/tools/sancov/sancov.cc (original)
+++ llvm/trunk/tools/sancov/sancov.cc Thu Mar 24 15:41:18 2016
@@ -46,6 +46,7 @@
#include "llvm/Support/ToolOutputFile.h"
#include "llvm/Support/raw_ostream.h"
+#include <algorithm>
#include <set>
#include <stdio.h>
#include <string>
@@ -490,6 +491,19 @@ static std::string escapeHtml(const std:
return Result;
}
+// Adds leading zeroes wrapped in 'lz' style.
+// Leading zeroes help locate 000% coverage.
+static std::string formatHtmlPct(size_t Pct) {
+ Pct = std::max(std::size_t{0}, std::min(std::size_t{100}, Pct));
+
+ std::string Num = std::to_string(Pct);
+ std::string Zeroes(3 - Num.size(), '0');
+ if (!Zeroes.empty())
+ Zeroes = "<span class='lz'>" + Zeroes + "</span>";
+
+ return Zeroes + Num;
+}
+
static std::string anchorName(std::string Anchor) {
llvm::MD5 Hasher;
llvm::MD5::MD5Result Hash;
@@ -885,7 +899,7 @@ public:
OS << "<tr><td><a href=\"#" << anchorName(FileName) << "\">"
<< stripPathPrefix(FileName) << "</a></td>"
- << "<td>" << CovPct << "%</td>"
+ << "<td>" << formatHtmlPct(CovPct) << "%</td>"
<< "<td>" << FC.first << " (" << FC.second << ")"
<< "</tr>\n";
}
@@ -923,7 +937,8 @@ public:
std::string FunctionName = P.first.FunctionName;
OS << "<div class='fn' style='order: " << P.second << "'>";
- OS << "<span class='pct'>" << P.second << "%</span> ";
+ OS << "<span class='pct'>" << formatHtmlPct(P.second)
+ << "%</span> ";
OS << "<span class='name'><a href=\"#"
<< anchorName(FileName + "::" + FunctionName) << "\">";
OS << escapeHtml(FunctionName) << "</a></span>";
@@ -1108,6 +1123,7 @@ public:
OS << ".fn { display: flex; flex-flow: row nowrap; }\n";
OS << ".pct { width: 3em; text-align: right; margin-right: 1em; }\n";
OS << ".name { flex: 2; }\n";
+ OS << ".lz { color: lightgray; }\n";
OS << "</style>\n";
OS << "<title>" << Title << "</title>\n";
OS << "</head>\n";
More information about the llvm-commits
mailing list