diff options
author | reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-12-11 21:22:39 +0000 |
---|---|---|
committer | reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-12-11 21:22:39 +0000 |
commit | 398337b3a5d66a7db5d36a3b5182e4407e2292f7 (patch) | |
tree | ae4a3b04b22817fd6586faceaa9e866c2b8e3d9b /tests | |
parent | a0d183d89160e31962e99475abe8a77c30626a40 (diff) |
Revert "remvoe duplicate impl for SkImageInfo flattening"
Reason: breaks chrome_mac_tests which still have non-imageinfo constructors
This reverts commit a06b8cf60b39bda93e9ef1a73579007b2b930d29.
BUG=
Review URL: https://codereview.chromium.org/103033005
git-svn-id: http://skia.googlecode.com/svn/trunk@12631 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'tests')
-rw-r--r-- | tests/PictureTest.cpp | 35 | ||||
-rw-r--r-- | tests/PixelRefTest.cpp | 24 | ||||
-rw-r--r-- | tests/SerializationTest.cpp | 19 |
3 files changed, 46 insertions, 32 deletions
diff --git a/tests/PictureTest.cpp b/tests/PictureTest.cpp index 3c53dd3838..9ef4bb06bd 100644 --- a/tests/PictureTest.cpp +++ b/tests/PictureTest.cpp @@ -9,7 +9,6 @@ #include "SkCanvas.h" #include "SkColorPriv.h" #include "SkData.h" -#include "SkDecodingImageGenerator.h" #include "SkError.h" #include "SkPaint.h" #include "SkPicture.h" @@ -336,6 +335,32 @@ static void test_bad_bitmap() { } #endif +#include "SkData.h" +#include "SkImageRef_GlobalPool.h" +// Class to test SkPixelRef::onRefEncodedData, since there are currently no implementations in skia. +class SkDataImageRef : public SkImageRef_GlobalPool { + +public: + SkDataImageRef(SkMemoryStream* stream) + : SkImageRef_GlobalPool(stream, SkBitmap::kNo_Config) { + SkASSERT(stream != NULL); + fData = stream->copyToData(); + this->setImmutable(); + } + + ~SkDataImageRef() { + fData->unref(); + } + + virtual SkData* onRefEncodedData() SK_OVERRIDE { + fData->ref(); + return fData; + } + +private: + SkData* fData; +}; + #include "SkImageEncoder.h" static SkData* encode_bitmap_to_data(size_t* offset, const SkBitmap& bm) { @@ -377,10 +402,14 @@ static void test_bitmap_with_encoded_data(skiatest::Reporter* reporter) { return; } SkAutoDataUnref data(wStream.copyToData()); + SkMemoryStream memStream; + memStream.setData(data); + // Use the encoded bitmap as the data for an image ref. SkBitmap bm; - bool installSuccess = SkDecodingImageGenerator::Install(data, &bm); - REPORTER_ASSERT(reporter, installSuccess); + SkAutoTUnref<SkDataImageRef> imageRef(SkNEW_ARGS(SkDataImageRef, (&memStream))); + imageRef->getInfo(&bm); + bm.setPixelRef(imageRef); // Write both bitmaps to pictures, and ensure that the resulting data streams are the same. // Flattening original will follow the old path of performing an encode, while flattening bm diff --git a/tests/PixelRefTest.cpp b/tests/PixelRefTest.cpp index e0ffd7a601..470221c0fe 100644 --- a/tests/PixelRefTest.cpp +++ b/tests/PixelRefTest.cpp @@ -51,37 +51,35 @@ private: } // namespace DEF_TEST(PixelRef_GenIDChange, r) { - SkImageInfo info = { 10, 10, kPMColor_SkColorType, kPremul_SkAlphaType }; - - SkAutoTUnref<SkPixelRef> pixelRef(SkMallocPixelRef::NewAllocate(info, 0, NULL)); + SkMallocPixelRef pixelRef(NULL, 0, NULL); // We don't really care about the pixels here. // Register a listener. int count = 0; - pixelRef->addGenIDChangeListener(SkNEW_ARGS(TestListener, (&count))); + pixelRef.addGenIDChangeListener(SkNEW_ARGS(TestListener, (&count))); REPORTER_ASSERT(r, 0 == count); // No one has looked at our pixelRef's generation ID, so invalidating it doesn't make sense. // (An SkPixelRef tree falls in the forest but there's nobody around to hear it. Do we care?) - pixelRef->notifyPixelsChanged(); + pixelRef.notifyPixelsChanged(); REPORTER_ASSERT(r, 0 == count); // Force the generation ID to be calculated. - REPORTER_ASSERT(r, 0 != pixelRef->getGenerationID()); + REPORTER_ASSERT(r, 0 != pixelRef.getGenerationID()); // Our listener was dropped in the first call to notifyPixelsChanged(). This is a no-op. - pixelRef->notifyPixelsChanged(); + pixelRef.notifyPixelsChanged(); REPORTER_ASSERT(r, 0 == count); // Force the generation ID to be recalculated, then add a listener. - REPORTER_ASSERT(r, 0 != pixelRef->getGenerationID()); - pixelRef->addGenIDChangeListener(SkNEW_ARGS(TestListener, (&count))); - pixelRef->notifyPixelsChanged(); + REPORTER_ASSERT(r, 0 != pixelRef.getGenerationID()); + pixelRef.addGenIDChangeListener(SkNEW_ARGS(TestListener, (&count))); + pixelRef.notifyPixelsChanged(); REPORTER_ASSERT(r, 1 == count); // Quick check that NULL is safe. - REPORTER_ASSERT(r, 0 != pixelRef->getGenerationID()); - pixelRef->addGenIDChangeListener(NULL); - pixelRef->notifyPixelsChanged(); + REPORTER_ASSERT(r, 0 != pixelRef.getGenerationID()); + pixelRef.addGenIDChangeListener(NULL); + pixelRef.notifyPixelsChanged(); test_info(r); } diff --git a/tests/SerializationTest.cpp b/tests/SerializationTest.cpp index f1d0f900fd..7ae06d737e 100644 --- a/tests/SerializationTest.cpp +++ b/tests/SerializationTest.cpp @@ -148,7 +148,6 @@ static T* TestFlattenableSerialization(T* testObj, bool shouldSucceed, REPORTER_ASSERT(reporter, SkAlign4(bytesWritten) == bytesWritten); unsigned char dataWritten[1024]; - SkASSERT(bytesWritten <= sizeof(dataWritten)); writer.writeToMemory(dataWritten); // Make sure this fails when it should (test with smaller size, but still multiple of 4) @@ -308,22 +307,10 @@ static void Tests(skiatest::Reporter* reporter) { TestBitmapSerialization(validBitmap, invalidBitmap, true, reporter); // Create a bitmap with a pixel ref too small - SkImageInfo info; - info.fWidth = 256; - info.fHeight = 256; - info.fColorType = kPMColor_SkColorType; - info.fAlphaType = kPremul_SkAlphaType; - SkBitmap invalidBitmap2; - invalidBitmap2.setConfig(info); - - // Hack to force invalid, by making the pixelref smaller than its - // owning bitmap. - info.fWidth = 32; - info.fHeight = 1; - - invalidBitmap2.setPixelRef(SkMallocPixelRef::NewAllocate( - info, invalidBitmap2.rowBytes(), NULL))->unref(); + invalidBitmap2.setConfig(SkBitmap::kARGB_8888_Config, 256, 256); + invalidBitmap2.setPixelRef(SkNEW_ARGS(SkMallocPixelRef, + (NULL, 256, NULL)))->unref(); // The deserialization should detect the pixel ref being too small and fail TestBitmapSerialization(validBitmap, invalidBitmap2, false, reporter); |