Jeremy Huddleston | 10 Jun 2012 22:41

REGRESSION: ppc/ppc64: glyph test failed! (checksum=3723EC00, expected A2B67F99)

http://tinderbox.x.org/builds/2012-06-10-0003/logs/pixman/#check

It looks like something in c2230fe..367b78f has caused ppc and ppc64 pixman to fail make check. 
Unfortunately, I don't have the cycles to bisect the issue at this point.

--Jeremy
Søren Sandmann | 11 Jun 2012 10:48
Picon
Picon

Re: REGRESSION: ppc/ppc64: glyph test failed! (checksum=3723EC00, expected A2B67F99)

Jeremy Huddleston <jeremyhu <at> freedesktop.org> writes:

> http://tinderbox.x.org/builds/2012-06-10-0003/logs/pixman/#check
>
> It looks like something in c2230fe..367b78f has caused ppc and ppc64
> pixman to fail make check.  Unfortunately, I don't have the cycles to
> bisect the issue at this point.

The glyph test is new in that series; most likely the test is just
broken on big endian. Unfortunately, I don't have a big-endian system to
test on at the moment.

Søren
_______________________________________________
Pixman mailing list
Pixman <at> lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pixman
Søren Sandmann | 11 Jun 2012 13:13
Picon
Picon

Re: REGRESSION: ppc/ppc64: glyph test failed! (checksum=3723E\

It turns out that this was caused by initializing the destination
buffer in glyph test using random uint32_t values rather than random
uint8_t values. Patch follows.

Soren
Søren Sandmann | 11 Jun 2012 13:13
Picon
Picon

[PATCH] test: Make glyph test pass on big endian

From: Søren Sandmann Pedersen <ssp <at> redhat.com>

The destination buffer was initialized with 32 bit data, so it started
out different on big-endian vs. little endian. Fix that by
initializing the buffer with random bytes instead.
---
 test/glyph-test.c |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/test/glyph-test.c b/test/glyph-test.c
index 9ff2a2b..0fb6641 100644
--- a/test/glyph-test.c
+++ b/test/glyph-test.c
 <at>  <at>  -150,9 +150,13  <at>  <at>  create_image (int max_size, const pixman_format_code_t *formats, uint32_t flags)
     }
     else
     {
+	uint8_t *d8;
+
 	data = malloc (stride * height);
-	for (i = 0; i < height * stride / 4; ++i)
-	    data[i] = lcg_rand_u32();
+
+	d8 = (uint8_t *)data;
+	for (i = 0; i < height * stride; ++i)
+	    d8[i] = lcg_rand_n (256);

 	destroy = destroy_malloced;
     }
 <at>  <at>  -326,6 +330,6  <at>  <at>  int
(Continue reading)


Gmane