From e60b9106ba4405fc499ac9f66ae7379327f0ff86 Mon Sep 17 00:00:00 2001 From: "mike@reedtribe.org" Date: Mon, 9 Jul 2012 01:53:07 +0000 Subject: add test for SkChecksum git-svn-id: http://skia.googlecode.com/svn/trunk@4462 2bbb7eff-a529-9590-31e7-b0007b416f81 --- tests/SortTest.cpp | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'tests/SortTest.cpp') diff --git a/tests/SortTest.cpp b/tests/SortTest.cpp index 4a5631daef..2ca8f2f614 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 @@ static void TestSort(skiatest::Reporter* reporter) { if (false) { // avoid bit rot, suppress warning compare_int(array, array); } + + test_checksum(reporter); } // need tests for SkStrSearch -- cgit v1.2.3