skdiff: only write out diff images that are included in index.html

Not only are those files unnecessary, in some different-image-size cases, their contents are nondeterministic!
Review URL: https://codereview.appspot.com/6208073

git-svn-id: http://skia.googlecode.com/svn/trunk@3975 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/tools/skdiff_main.cpp b/tools/skdiff_main.cpp
index f038b2c..e7d30d2 100644
--- a/tools/skdiff_main.cpp
+++ b/tools/skdiff_main.cpp
@@ -401,6 +401,8 @@
 }
 
 // based on gm
+// Postcondition: when we exit this method, dr->fResult should have some value
+// other than kUnknown.
 static void compute_diff(DiffRecord* dr,
                          DiffMetricProc diffFunction,
                          const int colorThreshold) {
@@ -531,9 +533,12 @@
     drp->fDifferenceBitmap->allocPixels();
     drp->fWhiteBitmap->setConfig(SkBitmap::kARGB_8888_Config, w, h);
     drp->fWhiteBitmap->allocPixels();
-    compute_diff(drp, dmp, colorThreshold);
 
-    if (!outputDir.isEmpty()) {
+    SkASSERT(kUnknown == drp->fResult);
+    compute_diff(drp, dmp, colorThreshold);
+    SkASSERT(kUnknown != drp->fResult);
+
+    if ((kDifferentPixels == drp->fResult) && !outputDir.isEmpty()) {
         SkString differencePath (outputDir);
         differencePath.append(filename_to_diff_filename(filename));
         write_bitmap(differencePath, drp->fDifferenceBitmap);
@@ -541,7 +546,7 @@
         whitePath.append(filename_to_white_filename(filename));
         write_bitmap(whitePath, drp->fWhiteBitmap);
     }
-    
+
     release_bitmaps(drp);
 }
 
@@ -612,7 +617,7 @@
         qsort(comparisonFiles.begin(), comparisonFiles.count(),
               sizeof(SkString*), SkCastForQSort(compare_file_name_metrics));
     }
-    
+
     int i = 0;
     int j = 0;
 
@@ -1138,7 +1143,7 @@
             return 0;
         }
     }
-    
+
     if (numUnflaggedArguments == 2) {
         outputDir = comparisonDir;
     } else if (numUnflaggedArguments != 3) {
@@ -1198,7 +1203,7 @@
         qsort(differences.begin(), differences.count(),
               sizeof(DiffRecord*), sortProc);
     }
-    
+
     if (generateDiffs) {
         print_diff_page(summary.fNumMatches, colorThreshold, differences,
                         baseDir, comparisonDir, outputDir);
diff --git a/tools/tests/run.sh b/tools/tests/run.sh
index d88740f..6c2f549 100755
--- a/tools/tests/run.sh
+++ b/tools/tests/run.sh
@@ -19,6 +19,7 @@
 #
 SKDIFF_TESTDIR=tools/tests/skdiff
 SKDIFF_OUTPUT_DIR=$SKDIFF_TESTDIR/output-actual
+rm -rf $SKDIFF_OUTPUT_DIR
 mkdir -p $SKDIFF_OUTPUT_DIR
 $SKDIFF_BINARY $SKDIFF_TESTDIR/baseDir $SKDIFF_TESTDIR/comparisonDir \
   $SKDIFF_OUTPUT_DIR &>$SKDIFF_OUTPUT_DIR/stdout
diff --git a/tools/tests/skdiff/output-expected/different-bits-identical-pixels-diff.png b/tools/tests/skdiff/output-expected/different-bits-identical-pixels-diff.png
deleted file mode 100644
index 1700928..0000000
--- a/tools/tests/skdiff/output-expected/different-bits-identical-pixels-diff.png
+++ /dev/null
Binary files differ
diff --git a/tools/tests/skdiff/output-expected/different-bits-identical-pixels-white.png b/tools/tests/skdiff/output-expected/different-bits-identical-pixels-white.png
deleted file mode 100644
index 1700928..0000000
--- a/tools/tests/skdiff/output-expected/different-bits-identical-pixels-white.png
+++ /dev/null
Binary files differ
diff --git a/tools/tests/skdiff/output-expected/different-sizes-diff.png b/tools/tests/skdiff/output-expected/different-sizes-diff.png
deleted file mode 100644
index ecba803..0000000
--- a/tools/tests/skdiff/output-expected/different-sizes-diff.png
+++ /dev/null
Binary files differ
diff --git a/tools/tests/skdiff/output-expected/different-sizes-white.png b/tools/tests/skdiff/output-expected/different-sizes-white.png
deleted file mode 100644
index 1700928..0000000
--- a/tools/tests/skdiff/output-expected/different-sizes-white.png
+++ /dev/null
Binary files differ
diff --git a/tools/tests/skdiff/output-expected/identical-bits-diff.png b/tools/tests/skdiff/output-expected/identical-bits-diff.png
deleted file mode 100644
index 1700928..0000000
--- a/tools/tests/skdiff/output-expected/identical-bits-diff.png
+++ /dev/null
Binary files differ
diff --git a/tools/tests/skdiff/output-expected/identical-bits-white.png b/tools/tests/skdiff/output-expected/identical-bits-white.png
deleted file mode 100644
index 1700928..0000000
--- a/tools/tests/skdiff/output-expected/identical-bits-white.png
+++ /dev/null
Binary files differ