Chromium Code Reviews| Index: tests/ImageIsOpaqueTest.cpp |
| diff --git a/tests/ImageIsOpaqueTest.cpp b/tests/ImageIsOpaqueTest.cpp |
| index 3fe5b3db0c725808ef8858433ac83d390d071f95..2294c4170235a9f8f713014714697b60364d2aea 100644 |
| --- a/tests/ImageIsOpaqueTest.cpp |
| +++ b/tests/ImageIsOpaqueTest.cpp |
| @@ -6,13 +6,47 @@ |
| */ |
| #include "SkTypes.h" |
| +#include "Test.h" |
| + |
| #if SK_SUPPORT_GPU |
| #include "GrContextFactory.h" |
| #endif |
| #include "SkImage.h" |
| #include "SkSurface.h" |
| +#include "SkReadBuffer.h" |
| +#include "SkWriteBuffer.h" |
| -#include "Test.h" |
| +static void test_flatten(skiatest::Reporter* reporter, const SkImageInfo& info) { |
| + // just need a safe amount of storage |
| + char storage[sizeof(SkImageInfo)*2]; |
| + SkWriteBuffer wb(storage, sizeof(storage)); |
| + info.flatten(wb); |
| + SkASSERT(wb.bytesWritten() < sizeof(storage)); |
| + |
| + SkReadBuffer rb(storage, wb.bytesWritten()); |
| + SkImageInfo info2; |
| + |
|
robertphillips
2014/11/10 13:45:59
set -> sets ?
reed1
2014/11/10 16:48:30
Done.
|
| + // pick a noisy byte pattern, so we ensure that unflatten set all of our fields |
| + memset(&info2, 0xB8, sizeof(info2)); |
| + |
| + info2.unflatten(rb); |
| + REPORTER_ASSERT(reporter, rb.offset() == wb.bytesWritten()); |
| + REPORTER_ASSERT(reporter, info == info2); |
| +} |
| + |
| +DEF_TEST(ImageInfo_flattening, reporter) { |
|
robertphillips
2014/11/10 13:45:59
kLastEnum_SkColorType ?
reed1
2014/11/10 16:48:30
eeek, the bane of copy/paste
|
| + for (int ct = 0; ct <= kLastEnum_SkColorProfileType; ++ct) { |
|
robertphillips
2014/11/10 13:45:59
kLastEnum_SkAlphaType ?
reed1
2014/11/10 16:48:30
Done.
|
| + for (int at = 0; at <= kLastEnum_SkColorProfileType; ++at) { |
| + for (int pt = 0; pt <= kLastEnum_SkColorProfileType; ++pt) { |
| + SkImageInfo info = SkImageInfo::Make(100, 200, |
| + static_cast<SkColorType>(ct), |
| + static_cast<SkAlphaType>(at), |
| + static_cast<SkColorProfileType>(pt)); |
| + test_flatten(reporter, info); |
| + } |
| + } |
| + } |
| +} |
| static void check_isopaque(skiatest::Reporter* reporter, SkSurface* surface, bool expectedOpaque) { |
| SkAutoTUnref<SkImage> image(surface->newImageSnapshot()); |