PrettyPatch.rb complains about missing checksum for new pixel results
authorojan@chromium.org <ojan@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 13 Jul 2012 18:11:35 +0000 (18:11 +0000)
committerojan@chromium.org <ojan@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 13 Jul 2012 18:11:35 +0000 (18:11 +0000)
https://bugs.webkit.org/show_bug.cgi?id=88368

Reviewed by Tony Chang.

When adding or removing a file, we incorrectly iterpreted not having an image
as not having a checksum.

* PrettyPatch/PrettyPatch.rb:
* PrettyPatch/PrettyPatch_test.rb:
I tried to fix the TempFile issue in these tests, but after a couple hours
of banging my head against this, I have no idea what's breaking.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@122607 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Websites/bugs.webkit.org/ChangeLog
Websites/bugs.webkit.org/PrettyPatch/PrettyPatch.rb
Websites/bugs.webkit.org/PrettyPatch/PrettyPatch_test.rb

index db56a93..af611ba 100644 (file)
@@ -1,3 +1,18 @@
+2012-07-13  Ojan Vafai  <ojan@chromium.org>
+
+        PrettyPatch.rb complains about missing checksum for new pixel results
+        https://bugs.webkit.org/show_bug.cgi?id=88368
+
+        Reviewed by Tony Chang.
+
+        When adding or removing a file, we incorrectly iterpreted not having an image
+        as not having a checksum.
+
+        * PrettyPatch/PrettyPatch.rb:
+        * PrettyPatch/PrettyPatch_test.rb:
+        I tried to fix the TempFile issue in these tests, but after a couple hours
+        of banging my head against this, I have no idea what's breaking.
+
 2012-07-11  Alice Cheng  <alice_cheng@apple.com>
 
         Deleting content at the top of prettypatch emails destroys HTML formatting
index 60cd762..360c2b2 100644 (file)
@@ -564,7 +564,6 @@ EOF
                     filepaths = from_filepath, to_filepath
 
                     binary_contents = filepaths.collect { |filepath| File.exists?(filepath) ? File.read(filepath) : nil }
-
                     @image_urls = binary_contents.collect { |content| (content and not content.empty?) ? "data:image/png;base64," + [content].pack("m") : nil }
                     @image_checksums = binary_contents.collect { |content| FileDiff.read_checksum_from_png(content) }
                 rescue
@@ -586,7 +585,7 @@ EOF
             image_checksum = ""
             if @image_checksum
                 image_checksum = @image_checksum
-            elsif @filename.include? "-expected.png"
+            elsif @filename.include? "-expected.png" and @image_url
                 image_checksum = IMAGE_CHECKSUM_ERROR
             end
 
@@ -611,7 +610,7 @@ EOF
 
                         if image_checksum
                             str += image_checksum
-                        elsif @filename.include? "-expected.png"
+                        elsif @filename.include? "-expected.png" and image_url
                             str += IMAGE_CHECKSUM_ERROR
                         end
 
index 97d1fda..0d5f943 100755 (executable)
@@ -70,11 +70,18 @@ class PrettyPatch_test < Test::Unit::TestCase
     def test_images_without_checksum
         pretty = check_one_patch(144064, ["Images without checksums", 10, 5, 4, 8])
         matches = pretty.match("INVALID: Image lacks a checksum.")
-        assert(matches, "Should have invalid checksums")
-        # FIXME: This should only have 4 invalid images, but git apply needs an actual copy of the before binary
-        # in order to apply diffs correctly. The end result is that all images in the patch are empty and thus
-        # thought to have no checksum, instead of the 4 images that actually don't have a checksum.
-        assert_equal(10, pretty.scan(/INVALID\: Image lacks a checksum\./).size)
+        # FIXME: This should match, but there's a bug when running the tests where the image data
+        # doesn't get properly written out to the temp files, so there is no image and we don't print
+        # the warning that the image is missing its checksum.
+        assert(!matches, "Should have invalid checksums")
+        # FIXME: This should only have 4 invalid images, but due to the above tempfile issue, there are 0.
+        assert_equal(0, pretty.scan(/INVALID\: Image lacks a checksum\./).size)
+    end
+
+    def test_new_image
+        pretty = check_one_patch(145881, ["New image", 19, 36, 19, 56])
+        matches = pretty.match("INVALID: Image lacks a checksum.")
+        assert(!matches, "Should not have invalid checksums")
     end
 
     def test_images_correctly_without_checksum_git