| Index: tests/ImageIsOpaqueTest.cpp
|
| diff --git a/tests/ImageIsOpaqueTest.cpp b/tests/ImageIsOpaqueTest.cpp
|
| index 0660885a54529cdc2d7ed99993846794f9cd0761..4389a3d892669614e703bc27edaa5a7cd5436be9 100644
|
| --- a/tests/ImageIsOpaqueTest.cpp
|
| +++ b/tests/ImageIsOpaqueTest.cpp
|
| @@ -6,6 +6,7 @@
|
| */
|
|
|
| #include "SkTypes.h"
|
| +#include "Resources.h"
|
| #include "Test.h"
|
|
|
| #if SK_SUPPORT_GPU
|
| @@ -17,13 +18,15 @@
|
| #include "SkWriteBuffer.h"
|
|
|
| static void test_flatten(skiatest::Reporter* reporter, const SkImageInfo& info) {
|
| - // just need a safe amount of storage, but ensure that it is 4-byte aligned.
|
| - int32_t storage[(sizeof(SkImageInfo)*2) / sizeof(int32_t)];
|
| - SkBinaryWriteBuffer wb(storage, sizeof(storage));
|
| + // Need a safe amount of 4-byte aligned storage. Note that one of the test ICC profiles
|
| + // is ~7500 bytes.
|
| + const size_t storageBytes = 8000;
|
| + SkAutoTMalloc<uint32_t> storage(storageBytes / sizeof(uint32_t));
|
| + SkBinaryWriteBuffer wb(storage.get(), storageBytes);
|
| info.flatten(wb);
|
| - SkASSERT(wb.bytesWritten() < sizeof(storage));
|
| + SkASSERT(wb.bytesWritten() < storageBytes);
|
|
|
| - SkReadBuffer rb(storage, wb.bytesWritten());
|
| + SkReadBuffer rb(storage.get(), wb.bytesWritten());
|
|
|
| // pick a noisy byte pattern, so we ensure that unflatten sets all of our fields
|
| SkImageInfo info2 = SkImageInfo::Make(0xB8, 0xB8, (SkColorType) 0xB8, (SkAlphaType) 0xB8);
|
| @@ -35,10 +38,24 @@ static void test_flatten(skiatest::Reporter* reporter, const SkImageInfo& info)
|
| }
|
|
|
| DEF_TEST(ImageInfo_flattening, reporter) {
|
| + sk_sp<SkData> data =
|
| + SkData::MakeFromFileName(GetResourcePath("icc_profiles/HP_ZR30w.icc").c_str());
|
| + sk_sp<SkColorSpace> space0 = SkColorSpace::NewICC(data->data(), data->size());
|
| + data = SkData::MakeFromFileName( GetResourcePath("icc_profiles/HP_Z32x.icc").c_str());
|
| + sk_sp<SkColorSpace> space1 = SkColorSpace::NewICC(data->data(), data->size());
|
| + data = SkData::MakeFromFileName(GetResourcePath("icc_profiles/upperLeft.icc").c_str());
|
| + sk_sp<SkColorSpace> space2 = SkColorSpace::NewICC(data->data(), data->size());
|
| + data = SkData::MakeFromFileName(GetResourcePath("icc_profiles/upperRight.icc").c_str());
|
| + sk_sp<SkColorSpace> space3 = SkColorSpace::NewICC(data->data(), data->size());
|
| +
|
| sk_sp<SkColorSpace> spaces[] = {
|
| nullptr,
|
| SkColorSpace::NewNamed(SkColorSpace::kSRGB_Named),
|
| SkColorSpace::NewNamed(SkColorSpace::kAdobeRGB_Named),
|
| + space0,
|
| + space1,
|
| + space2,
|
| + space3,
|
| };
|
|
|
| for (int ct = 0; ct <= kLastEnum_SkColorType; ++ct) {
|
|
|