Chromium Code Reviews| Index: experimental/skpdiff/SkDiffContext.cpp |
| =================================================================== |
| --- experimental/skpdiff/SkDiffContext.cpp (revision 10196) |
| +++ experimental/skpdiff/SkDiffContext.cpp (working copy) |
| @@ -6,6 +6,7 @@ |
| */ |
| #include "SkBitmap.h" |
| +#include "SkCommandLineFlags.h" |
| #include "SkImageDecoder.h" |
| #include "SkOSFile.h" |
| #include "SkStream.h" |
| @@ -14,6 +15,8 @@ |
| #include "SkImageDiffer.h" |
| #include "skpdiff_util.h" |
| +DECLARE_string(csv); |
| + |
| SkDiffContext::SkDiffContext() { |
| fRecords = NULL; |
| fDiffers = NULL; |
| @@ -68,6 +71,28 @@ |
| newRecord->fNext = fRecords; |
| fRecords = newRecord; |
| + FILE* csvFile = NULL; |
|
Zach Reizner
2013/07/19 18:35:08
Output of CSV should be done in a similar manner a
edisonn
2013/07/19 20:27:23
Done.
|
| + if (!FLAGS_csv.isEmpty()) { |
| + csvFile = fopen(FLAGS_csv[0], "a"); |
| + SkASSERT(csvFile); |
| + if (ftell(csvFile) == 0) { |
| + fprintf(csvFile, "%s", "skp"); |
| + for (int differIndex = 0; differIndex < fDifferCount; differIndex++) { |
| + SkImageDiffer* differ = fDiffers[differIndex]; |
| + fprintf(csvFile, ", %s", differ->getName()); |
| + } |
| + fprintf(csvFile, "\n"); |
| + } |
| + } |
| + |
| + if (csvFile) { |
| + const char* filename = baselinePath + strlen(baselinePath) - 1; |
| + while (filename > baselinePath && *(filename - 1) != '/') { |
| + filename--; |
| + } |
| + fprintf(csvFile, "%s", filename); |
| + } |
| + |
| // Perform each diff |
| for (int differIndex = 0; differIndex < fDifferCount; differIndex++) { |
| SkImageDiffer* differ = fDiffers[differIndex]; |
| @@ -80,6 +105,10 @@ |
| diffData.fDiffName = differ->getName(); |
| diffData.fResult = differ->getResult(diffID); |
| + if (csvFile) { |
| + fprintf(csvFile, ", %f", diffData.fResult); |
| + } |
| + |
| int poiCount = differ->getPointsOfInterestCount(diffID); |
| SkIPoint* poi = differ->getPointsOfInterest(diffID); |
| diffData.fPointsOfInterest.append(poiCount, poi); |
| @@ -87,8 +116,17 @@ |
| // Because we are doing everything synchronously for now, we are done with the diff |
| // after reading it. |
| differ->deleteDiff(diffID); |
| + } else { |
| + if (csvFile) { |
| + fprintf(csvFile, ", -1"); |
| + } |
| } |
| } |
| + |
| + if (csvFile) { |
| + fprintf(csvFile, "\n"); |
| + fclose(csvFile); |
| + } |
| } |