Index: tests/SwizzlerTest.cpp |
diff --git a/tests/SwizzlerTest.cpp b/tests/SwizzlerTest.cpp |
index e1626d52f114d761c8ac3331d8d40205f8f955a7..1fe93587d83cc862c8f1d538c843801c047c57c0 100644 |
--- a/tests/SwizzlerTest.cpp |
+++ b/tests/SwizzlerTest.cpp |
@@ -5,6 +5,7 @@ |
* found in the LICENSE file. |
*/ |
+#include "SkSwizzle.h" |
#include "SkSwizzler.h" |
#include "Test.h" |
#include "SkOpts.h" |
@@ -157,3 +158,27 @@ DEF_TEST(SwizzleOpts, r) { |
SkOpts::RGBA_to_bgrA(&dst, &src, 1); |
REPORTER_ASSERT(r, dst == 0xFA04ADCA); |
} |
+ |
+DEF_TEST(PublicSwizzleOpts, r) { |
+ uint32_t dst, src; |
+ |
+ // forall c, c*255 == c, c*0 == 0 |
+ for (int c = 0; c <= 255; c++) { |
mtklein
2016/03/23 17:35:13
We making these public too?
tomhudson
2016/03/23 17:38:48
My bad.
Done.
|
+ src = (255<<24) | c; |
+ SkOpts::RGBA_to_rgbA(&dst, &src, 1); |
+ REPORTER_ASSERT(r, dst == src); |
+ SkOpts::RGBA_to_bgrA(&dst, &src, 1); |
+ REPORTER_ASSERT(r, dst == (uint32_t)((255<<24) | (c<<16))); |
+ |
+ src = (0<<24) | c; |
+ SkOpts::RGBA_to_rgbA(&dst, &src, 1); |
+ REPORTER_ASSERT(r, dst == 0); |
+ SkOpts::RGBA_to_bgrA(&dst, &src, 1); |
+ REPORTER_ASSERT(r, dst == 0); |
+ } |
+ |
+ // check a totally arbitrary color |
+ src = 0xFACEB004; |
+ SkSwapRB(&dst, &src, 1); |
+ REPORTER_ASSERT(r, dst == 0xFA04B0CE); |
+} |