aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests
diff options
context:
space:
mode:
authorGravatar robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-12-13 15:24:37 +0000
committerGravatar robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-12-13 15:24:37 +0000
commit0daa1adb03b4b1fc11d854cb7754416ac05a31e8 (patch)
tree65250ae1cb608dbebfa25e96c3c31335379ccd3a /tests
parent3c5f29a8a5f8113a831f132f1bb3d839d9fb285a (diff)
Reverting r12665 & r12666 (Remove duplicate impl for SkImageInfo flattening) due to Chromium/Blink compilation errors
Diffstat (limited to 'tests')
-rw-r--r--tests/PictureTest.cpp35
-rw-r--r--tests/PixelRefTest.cpp24
-rw-r--r--tests/SerializationTest.cpp19
3 files changed, 46 insertions, 32 deletions
diff --git a/tests/PictureTest.cpp b/tests/PictureTest.cpp
index 447ce4eb4d..49717972d4 100644
--- a/tests/PictureTest.cpp
+++ b/tests/PictureTest.cpp
@@ -11,7 +11,6 @@
#include "SkCanvas.h"
#include "SkColorPriv.h"
#include "SkData.h"
-#include "SkDecodingImageGenerator.h"
#include "SkError.h"
#include "SkPaint.h"
#include "SkPicture.h"
@@ -338,6 +337,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) {
@@ -379,10 +404,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 448c18f4b1..bb05432427 100644
--- a/tests/SerializationTest.cpp
+++ b/tests/SerializationTest.cpp
@@ -149,7 +149,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)
@@ -309,22 +308,10 @@ DEF_TEST(Serialization, 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);