add test for SkChecksum



git-svn-id: http://skia.googlecode.com/svn/trunk@4462 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/tests/SortTest.cpp b/tests/SortTest.cpp
index 4a5631d..2ca8f2f 100644
--- a/tests/SortTest.cpp
+++ b/tests/SortTest.cpp
@@ -7,8 +7,34 @@
  */
 #include "Test.h"
 #include "SkRandom.h"
+#include "SkChecksum.h"
 #include "SkTSort.h"
 
+// assert that as we change values (from 0 to non-zero) in our buffer, we
+// get a different value
+static void test_checksum(skiatest::Reporter* reporter, size_t size) {
+    SkAutoMalloc storage(size);
+    uint32_t*    ptr = (uint32_t*)storage.get();
+    char*        cptr = (char*)ptr;
+
+    sk_bzero(ptr, size);
+    uint32_t prev = 0;
+    for (size_t i = 0; i < size; ++i) {
+        cptr[i] = 0x5B; // just need some non-zero value here
+        uint32_t curr = SkChecksum::Compute(ptr, size);
+        REPORTER_ASSERT(reporter, prev != curr);
+        prev = curr;
+    }
+}
+
+static void test_checksum(skiatest::Reporter* reporter) {
+    REPORTER_ASSERT(reporter, SkChecksum::Compute(NULL, 0) == 0);
+
+    for (size_t size = 4; size <= 1000; size += 4) {
+        test_checksum(reporter, size);
+    }
+}
+
 extern "C" {
     static int compare_int(const void* a, const void* b) {
         return *(const int*)a - *(const int*)b;
@@ -47,6 +73,8 @@
     if (false) { // avoid bit rot, suppress warning
         compare_int(array, array);
     }
+    
+    test_checksum(reporter);
 }
 
 // need tests for SkStrSearch