| Index: tests/MemsetTest.cpp
|
| diff --git a/tests/MemsetTest.cpp b/tests/MemsetTest.cpp
|
| index e1f844e05c5c92a25abcf67362b6e3edf318473f..fb5a337738802bba6cccac70b07aedafb8db0d77 100644
|
| --- a/tests/MemsetTest.cpp
|
| +++ b/tests/MemsetTest.cpp
|
| @@ -6,6 +6,7 @@
|
| */
|
|
|
| #include "SkChunkAlloc.h"
|
| +#include "SkRandom.h"
|
| #include "SkUtils.h"
|
| #include "Test.h"
|
|
|
| @@ -23,6 +24,14 @@ static void* simple_alloc(skiatest::Reporter* reporter, SkChunkAlloc* alloc, siz
|
| return ptr;
|
| }
|
|
|
| +static void check_alloc_alignment(skiatest::Reporter* reporter,
|
| + SkChunkAlloc* alloc, size_t size) {
|
| + const size_t kAlignment = 8;
|
| + void* ptr = alloc->allocThrow(size);
|
| + REPORTER_ASSERT(reporter, ptr != nullptr);
|
| + REPORTER_ASSERT(reporter, (size_t)ptr % kAlignment == 0);
|
| +}
|
| +
|
| static void test_chunkalloc(skiatest::Reporter* reporter) {
|
| static const size_t kMin = 1024;
|
| SkChunkAlloc alloc(kMin);
|
| @@ -76,6 +85,14 @@ static void test_chunkalloc(skiatest::Reporter* reporter) {
|
| REPORTER_ASSERT(reporter, freed == kMin);
|
| check_alloc(reporter, alloc, 2*kMin, size, 2);
|
| REPORTER_ASSERT(reporter, !alloc.contains(ptr));
|
| +
|
| + //------------------------------------------------------------------------
|
| + // test the alignment
|
| + alloc.reset();
|
| + SkRandom rand;
|
| + for (int i = 0; i < 1000; i++) {
|
| + check_alloc_alignment(reporter, &alloc, rand.nextU16());
|
| + }
|
| }
|
|
|
| ///////////////////////////////////////////////////////////////////////////////
|
|
|