diff options
author | Ben Avison <bavison@riscosopen.org> | 2015-05-29 16:20:43 +0100 |
---|---|---|
committer | Pekka Paalanen <pekka.paalanen@collabora.co.uk> | 2015-06-01 13:11:15 +0300 |
commit | 62a772f2ea9ec14b0240c0cc62e174ffa98ee2cc (patch) | |
tree | a9d1f71c969b533421b92b4c96fd3f0199b421af | |
parent | 82f9b4faaf1aa63ec26b0dfd227f1a8e5e139ae2 (diff) |
test: Fix solid-test for big-endian targets
When generating test data, we need to make sure the interpretation of
the data is the same regardless of endianess. That is, the pixel value
for each channel is the same on both little and big-endians.
This fixes a test failure on ppc64 (big-endian).
Tested-by: Fernando Seiti Furusato <ferseiti@linux.vnet.ibm.com> (ppc64le, ppc64, powerpc)
Tested-by: Ben Avison <bavison@riscosopen.org> (armv6l, armv7l, i686)
[Pekka: added commit message]
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Tested-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> (x86_64)
-rw-r--r-- | test/solid-test.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/test/solid-test.c b/test/solid-test.c index 7be5466..c6ea397 100644 --- a/test/solid-test.c +++ b/test/solid-test.c @@ -237,7 +237,7 @@ create_solid_image (const pixman_format_code_t *allowed_formats, pixman_image_unref (dummy_img); /* Now set the bitmap contents to a random value */ - *buffer = prng_rand (); + prng_randmemset (buffer, 4, 0); image_endian_swap (img); if (used_fmt) @@ -251,7 +251,10 @@ create_solid_image (const pixman_format_code_t *allowed_formats, pixman_color_t color; pixman_image_t *img; - prng_randmemset (&color, sizeof color, 0); + color.alpha = prng_rand_n (UINT16_MAX + 1); + color.red = prng_rand_n (UINT16_MAX + 1); + color.green = prng_rand_n (UINT16_MAX + 1); + color.blue = prng_rand_n (UINT16_MAX + 1); img = pixman_image_create_solid_fill (&color); if (used_fmt) @@ -345,6 +348,6 @@ main (int argc, const char *argv[]) } return fuzzer_test_main ("solid", 500000, - 0x1B6DFF8D, + 0xC30FD380, test_solid, argc, argv); } |