Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(153)

Unified Diff: tools/skpdiff/SkDiffContext.cpp

Issue 457203003: Modify skpdiff to write diffs directly to provided directories (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: tools/skpdiff/SkDiffContext.cpp
diff --git a/tools/skpdiff/SkDiffContext.cpp b/tools/skpdiff/SkDiffContext.cpp
index ea44c90da1e2efe22077bbc42c6b1d73a1353d34..8e193419a05c1c614bfab24c5d69db5bd46cf5f2 100644
--- a/tools/skpdiff/SkDiffContext.cpp
+++ b/tools/skpdiff/SkDiffContext.cpp
@@ -18,6 +18,9 @@
#include "SkImageDiffer.h"
#include "skpdiff_util.h"
+#include <string>
+#include <algorithm>
+
SkDiffContext::SkDiffContext() {
fDiffers = NULL;
fDifferCount = 0;
@@ -48,6 +51,10 @@ void SkDiffContext::setWhiteDiffDir(const SkString& path) {
}
}
+void SkDiffContext::setLongNames(const bool useLongNames) {
+ longNames = useLongNames;
+}
+
void SkDiffContext::setDiffers(const SkTDArray<SkImageDiffer*>& differs) {
// Delete whatever the last array of differs was
if (NULL != fDiffers) {
@@ -79,6 +86,20 @@ static SkString get_common_prefix(const SkString& a, const SkString& b) {
}
}
+static SkString sanitize_name(const SkString& str) {
+ std::string result = std::string(str.c_str());
+ std::replace(result.begin(), result.end(), '.', '_');
+
+ return SkString(result.c_str());
+}
+
+static SkString get_combined_name(const SkString& a, const SkString& b) {
+ SkString result = a;
+ result.append("-vs-");
epoger 2014/08/11 19:33:28 Looking at _get_difference_locator() in imagediffd
stephana 2014/08/11 20:03:57 Yes, I just realized that it breaks the front-end
+ result.append(b);
+ return sanitize_name(result);
+}
stephana 2014/08/11 14:58:31 This uses the <string> and <algorithm> headers inc
epoger 2014/08/11 19:33:28 A fine question... in my experience, within the Sk
stephana 2014/08/11 20:03:57 Make sense, I'll consult with Mike about this. O
+
void SkDiffContext::addDiff(const char* baselinePath, const char* testPath) {
// Load the images at the paths
SkBitmap baselineBitmap;
@@ -100,7 +121,13 @@ void SkDiffContext::addDiff(const char* baselinePath, const char* testPath) {
// compute the common name
SkString baseName = SkOSPath::Basename(baselinePath);
SkString testName = SkOSPath::Basename(testPath);
- newRecord->fCommonName = get_common_prefix(baseName, testName);
+
+ if (longNames) {
+ newRecord->fCommonName = get_combined_name(baseName, testName);
+ } else {
+ newRecord->fCommonName = get_common_prefix(baseName, testName);
+ }
+ newRecord->fCommonName.append(".png");
newRecord->fBaselinePath = baselinePath;
newRecord->fTestPath = testPath;

Powered by Google App Engine
This is Rietveld 408576698