are all the warnings fixed for that code? Maybe that'd give a clue? setup.py -warnings
Have you tried a different video driver? Maybe that'd change things. On Wed, Feb 27, 2008 at 7:07 AM, Lenard Lindstrom <[EMAIL PROTECTED]> wrote: > Brian Fisher wrote: > > It seems to me once the failure is reliably repeatable it should be > > fairly straightforward to debug, right? > > > > > I wish. :-) > > > > ...but I'm a bit confused, looking at the test that is failing, I'm > > not sure how that could be considered a repeatable test... > > > > > The fails are not 100%, but nearly so. And it differs between Pythons > 2.4 and 2.5. > > > > with 8 bpp, don't you have to set a palette? the SDL docs > > SDL_CreateRGBSurface say: "If depth is 8 bits an empty palette is > > allocated for the surface" - and set_at is calling SDL_MapRGBA which > > will map the (255, 255, 255) tuple to the closest index in the > > palette. Also, the "in" operator on PixelArray objects always works on > > palette indices for 8 bit (if given a color tuple it will call > > SDL_MapRGBA to map it to a palette index as well). So isn't the exact > > behavior dependent on the values of an "empty palette"? > > > > > It could be using a default device palette on Windows. Using > get_palette, I compared the palettes of the test surface for both a pass > and fail. They were identical. > > > > So given that the palette is undefined, why shouldn't (255,255,255) > > map to index 255 (0x000000ff)? And why shouldn't 0x000000ff exist as a > > member of the array in that case? likewise why shouldn't (0,0,0) map > > to index 255? > > > > So Lenard, when the test fails what does sf.map_rgb((255,255,255)) > > return? does it return 255? how about sf.map_rgb((0,0,0))? > > > For both pass and fail I get (0,0,0) --> 0, (255,255,255) --> 127. But > sf.unmap_rgb(0x000000ff) is (255,255,255), the same as sf.get_at((8,8)). > So the test should always fail. The question now becomes, why does it pass? > > To check if screen depth has anything to do with this I set my display > to 32 bit and rebooted. The test failed for Python 2.4 and passed for > 2.5. But True Color on my system has no alpha channel. Maybe alpha > affects the test on XP. > > This behavior is consistent with accessing a memory location whose value > is undefined. Just adding a "print 'x'," at the start of test_contains > was enough to make the fails nearly 100% for Python 2.4. I will keep > looking. > > -- > > > Lenard Lindstrom > <[EMAIL PROTECTED]> > >