Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(241)

Unified Diff: tests/SerializationTest.cpp

Issue 596333002: Fix SkXfermode deserialization. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/core/SkXfermode.cpp ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/SerializationTest.cpp
diff --git a/tests/SerializationTest.cpp b/tests/SerializationTest.cpp
index b6ee978869c1b7fda10f471ba2c63e70b4b3dad6..0eaf178540565717993eede2181644b101dbd0bc 100644
--- a/tests/SerializationTest.cpp
+++ b/tests/SerializationTest.cpp
@@ -261,6 +261,48 @@ static void TestBitmapSerialization(const SkBitmap& validBitmap,
}
}
+static void TestXfermodeSerialization(skiatest::Reporter* reporter) {
reed1 2014/09/24 15:58:46 Ensuring that this list matches the enum in SkXfer
Stephen White 2014/09/24 16:38:39 Good idea. Done.
+ const SkXfermode::Mode gModes[] = {
+ SkXfermode::kClear_Mode,
+ SkXfermode::kSrc_Mode,
+ SkXfermode::kDst_Mode,
+ // Don't test SrcOver_Mode, since this (correctly) deserializes as NULL
+// SkXfermode::kSrcOver_Mode,
+ SkXfermode::kDstOver_Mode,
+ SkXfermode::kSrcIn_Mode,
+ SkXfermode::kDstIn_Mode,
+ SkXfermode::kSrcOut_Mode,
+ SkXfermode::kDstOut_Mode,
+ SkXfermode::kSrcATop_Mode,
+ SkXfermode::kDstATop_Mode,
+ SkXfermode::kXor_Mode,
+
+ SkXfermode::kPlus_Mode,
+ SkXfermode::kModulate_Mode,
+ SkXfermode::kScreen_Mode,
+ SkXfermode::kOverlay_Mode,
+ SkXfermode::kDarken_Mode,
+ SkXfermode::kLighten_Mode,
+ SkXfermode::kColorDodge_Mode,
+ SkXfermode::kColorBurn_Mode,
+ SkXfermode::kHardLight_Mode,
+ SkXfermode::kSoftLight_Mode,
+ SkXfermode::kDifference_Mode,
+ SkXfermode::kExclusion_Mode,
+ SkXfermode::kMultiply_Mode,
+ SkXfermode::kHue_Mode,
+ SkXfermode::kSaturation_Mode,
+ SkXfermode::kColor_Mode,
+ SkXfermode::kLuminosity_Mode,
+ };
+
+ for (size_t i = 0; i < SK_ARRAY_COUNT(gModes); i++) {
+ SkAutoTUnref<SkXfermode> mode(SkXfermode::Create(gModes[i]));
+ REPORTER_ASSERT(reporter, mode.get());
+ TestFlattenableSerialization<SkXfermode>(mode.get(), true, reporter);
+ }
+}
+
static SkBitmap draw_picture(SkPicture& picture) {
SkBitmap bitmap;
bitmap.allocN32Pixels(SkScalarCeilToInt(picture.cullRect().width()),
@@ -406,6 +448,11 @@ DEF_TEST(Serialization, reporter) {
TestObjectSerialization(&region, reporter);
}
+ // Test xfermode serialization
+ {
+ TestXfermodeSerialization(reporter);
+ }
+
// Test string serialization
{
SkString string("string");
« no previous file with comments | « src/core/SkXfermode.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698