From 15c14691a71daa29c86cce40ac0b4a14acf8f2fc Mon Sep 17 00:00:00 2001 From: =?utf8?q?S=C3=B8ren=20Sandmann=20Pedersen?= Date: Sat, 26 Sep 2009 13:12:14 -0400 Subject: [PATCH] Fix fetch-test for big-endian systems. Data narrower than 32bpp should be stored in the correct endian. Reported by Andrea Canciani. --- test/fetch-test.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/test/fetch-test.c b/test/fetch-test.c index c41f1a6..6306a4c 100644 --- a/test/fetch-test.c +++ b/test/fetch-test.c @@ -2,6 +2,7 @@ #include #include #include "pixman.h" +#include #define SIZE 1024 @@ -34,8 +35,13 @@ testcase_t testcases[] = { .format = PIXMAN_g1, .width = 8, .height = 2, .stride = 4, +#ifdef WORDS_BIGENDIAN + .src = { 0xaa000000, + 0x55000000 }, +#else .src = { 0x00000055, 0x000000aa }, +#endif .dst = { 0x00ffffff, 0x00000000, 0x00ffffff, 0x00000000, 0x00ffffff, 0x00000000, 0x00ffffff, 0x00000000, 0x00000000, 0x00ffffff, 0x00000000, 0x00ffffff, 0x00000000, 0x00ffffff, 0x00000000, 0x00ffffff }, .indexed = &mono_pallete, @@ -51,14 +57,24 @@ testcase_t testcases[] = { 0x00898989, 0x00ababab, 0x00cdcdcd, 0x00efefef, }, }, #endif + /* FIXME: make this work on big endian */ { .format = PIXMAN_yv12, .width = 8, .height = 2, .stride = 8, +#ifdef WORDS_BIGENDIAN + .src = { 0x00ff00ff, 0x00ff00ff, + 0xff00ff00, 0xff00ff00, + 0x80ff8000, + 0x800080ff + }, +#else .src = { 0xff00ff00, 0xff00ff00, 0x00ff00ff, 0x00ff00ff, 0x0080ff80, - 0xff800080}, + 0xff800080 + }, +#endif .dst = { 0xff000000, 0xffffffff, 0xffb80000, 0xffffe113, 0xff000000, 0xffffffff, 0xff0023ee, 0xff4affff, -- 2.7.4