mutter build test failure on ppc64el
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mutter |
Fix Released
|
Unknown
|
|||
mutter (Ubuntu) |
Fix Released
|
Low
|
Daniel van Vugt |
Bug Description
I re-enabled build tests on ppc64el with https:/
The tests were disabled earlier in the noble cycle with the rush to get noble done. They are only failing because of the following test which is not failing in Debian now. (There are 2 other tests that failed in the most recent run but did pass for me in earlier PPA testing.)
I do know that Ubuntu's ppc64el is unusual because it uses -O3 by default which triggers bugs some times.
Build log excerpt
=================
34/185 mutter:
ERROR:.
assertion failed (pixel_data[1] == rgba16_green): (61132 == 61133)
not ok /offscreen/
ERROR:
assertion failed (pixel_data[1] == rgba16_green): (61132 == 61133)
Bail out!
description: | updated |
Changed in mutter: | |
status: | Unknown → New |
Changed in mutter (Ubuntu): | |
assignee: | nobody → Daniel van Vugt (vanvugt) |
status: | Triaged → In Progress |
Changed in mutter: | |
status: | New → Fix Released |
Looks like the test case is unreasonably fragile. I would expect architecture- specific rounding differences here.
const uint16_t rgba16_red = 515;
const uint16_t rgba16_green = 61133;
const uint16_t rgba16_blue = 2;
const uint16_t rgba16_alpha = 1111;
float red;
float green;
float blue;
float alpha;
int i;
red = (rgba16_red / (float) ((1 << 16) - 1));
green = (rgba16_green / (float) ((1 << 16) - 1));
blue = (rgba16_blue / (float) ((1 << 16) - 1));
alpha = (rgba16_alpha / (float) ((1 << 16) - 1));
...
g_assert_cmpint (pixel_data[1], ==, rgba16_green);
The failures should be consistent, but may not be if there have been changes in the compiler, build flags, or host system. That last one caught us out recently with another failure...