add simple test for SkBitmap::getColor()
git-svn-id: http://skia.googlecode.com/svn/trunk@859 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/tests/BitmapGetColorTest.cpp b/tests/BitmapGetColorTest.cpp
new file mode 100644
index 0000000..81cf412
--- /dev/null
+++ b/tests/BitmapGetColorTest.cpp
@@ -0,0 +1,36 @@
+#include "Test.h"
+#include "SkBitmap.h"
+
+static void TestGetColor(skiatest::Reporter* reporter) {
+ static const struct Rec {
+ SkBitmap::Config fConfig;
+ SkColor fInColor;
+ SkColor fOutColor;
+ } gRec[] = {
+ // todo: add some tests that involve alpha, so we exercise the
+ // unpremultiply aspect of getColor()
+ { SkBitmap::kA8_Config, 0xFF000000, 0xFF000000 },
+ { SkBitmap::kA8_Config, 0, 0 },
+ { SkBitmap::kARGB_4444_Config, 0xFF224466, 0xFF224466 },
+ { SkBitmap::kARGB_4444_Config, 0, 0 },
+ { SkBitmap::kRGB_565_Config, 0xFF00FF00, 0xFF00FF00 },
+ { SkBitmap::kRGB_565_Config, 0xFFFF00FF, 0xFFFF00FF },
+ { SkBitmap::kARGB_8888_Config, 0xFFFFFFFF, 0xFFFFFFFF },
+ { SkBitmap::kARGB_8888_Config, 0, 0 },
+ { SkBitmap::kARGB_8888_Config, 0xFF224466, 0xFF224466 },
+ };
+
+ for (size_t i = 0; i < SK_ARRAY_COUNT(gRec); i++) {
+ SkBitmap bm;
+ uint32_t storage[1];
+ bm.setConfig(gRec[i].fConfig, 1, 1);
+ bm.setPixels(storage);
+ bm.eraseColor(gRec[i].fInColor);
+
+ SkColor c = bm.getColor(0, 0);
+ REPORTER_ASSERT(reporter, c == gRec[i].fOutColor);
+ }
+}
+
+#include "TestClassDef.h"
+DEFINE_TESTCLASS("GetColor", TestGetColorClass, TestGetColor)
diff --git a/tests/tests_files.mk b/tests/tests_files.mk
index 6dad0af..5280502 100644
--- a/tests/tests_files.mk
+++ b/tests/tests_files.mk
@@ -1,5 +1,6 @@
SOURCE := \
BitmapCopyTest.cpp \
+ BitmapGetColorTest.cpp \
BlitRowTest.cpp \
ClipCubicTest.cpp \
ClipStackTest.cpp \