Initial code on a X regression and/or validation tool

pcpa at mandriva.com.br pcpa at mandriva.com.br
Fri Nov 2 16:57:06 PDT 2007


Quoting Michel Dänzer <michel at tungstengraphics.com>:

>
> On Fri, 2007-11-02 at 02:13 -0200, pcpa at mandriva.com.br wrote:
>>   One of my goals is also to try to develop an easy tool to create 
>> regression
>> testing tools (one of the reasons is that any WindowMaker user 
>> probably knows
>> how broken is Xorg 1.3.0 and newer with WindowMaker,
>
> Is there a bug report for this? I only remember reading about trouble
> with WindowMaker in http://bugs.debian.org/443936 , but that's now
> looking like a WindowMaker or application issue.

  How to replicate the bug:
1. Have serveral virtual desktops, with several windows on them
2. Swith from virtual desktops with Alt+1, Alt+2, etc
At every desktop switch, chances are high that windows will have corrupted
contents.
Also, doesn't always need to switch desktops, when clicking on the root
window, when "poping down" whatever was behind the WindowMaker menus will
be retored at "random" positions, or over "random" windows.
I believe this may be some problem with shadowfb, or order of events 
and window
mapping/unmapping.
  Also, easy to reproduce, is to use xmag and click on the window title, it
will generate a X Error. Cliking on other area doesn't trigger, the problem,
and usually correctly renders the titlebar if a portion of it is in the
GetImage rect.

  I did not open any bug reports because it doesn't crash the server, and
if nobody reported it, then probably it is a WindowMaker problem.

  I opened the bug report https://bugs.freedesktop.org/show_bug.cgi?id=12414
for a bug when double clicking the title bar of one specific Kde application
(but I suspect the problem may happen with others), but for this
one I made a "hackish" patch to know if  fb/fbpixmap.c:fbCreatePixmapBpp()
is being called from fb/fb24_32.c:fb24_32ReformatTile() or from
fb/fbpixmap.c:fbCreatePixmap(). If called from fb24_32ReformatTile(), it
will wrap the call to the Screen->CreatePixmap() function, so that all
layers "know" about the pixmap.
  Currently, using the Kde window manager, also there is another server
crash, that I believe is related to the above. But I did not check under
several drivers, so far I know it only crashes with proprietary nvidia
driver, after playing a Kde game, when the "high scores" window pops up,
the server crashes (it must be the one that comes up with a textfield
to enter the user name to record the score).

>> but I believe several other applications don't work correctly, this 
>> is running
>> with a vesa driver i.e. no accel, but same/similar problems happens 
>> with other
>> drivers).
  This is probably a problem with the Xor gc op. This one is a bit hard to
describe, and is one of the cases I believe some way to have a small 
regression
that can reproduce the problem would be useful.
Run xorgcfg
Go to the keyboard configuration dialog
In XkbOptions: with the button mouse pressed, move over "Third level choosers"
Unless you have a really large display, the popup will be half visible 
on screen
Still with the mouse pressed, move mouse to extreme left of screen
This causes the Popup menu window to move to became entirely visible, but it
will cause corruption in the menus. This is probably some "SaveUnder" behavior
change when the window is moved, i.e. not properly updating the saved 
contents.

  I believe this is somewhat related to the WindowMaker crashes, maybe some
uncommon usage of gc options associated with moving/unmapping/mapping windows.

> Again, pointers to bug reports would be appreciated.
>
>
> --
> Earthling Michel Dänzer           |          http://tungstengraphics.com
> Libre software enthusiast         |          Debian, X and DRI developer

  Anyway, about listing all the symbols that need to be wrapped just to
load the module and run the setup proc, I believe it may be a good idea,
if only symbols that really need to be exported were available, instead of
having the module have full access to everything. Or at least make sure
that if the server is configure without some option, there will be a
noFoobarExtension or similar variable acessible by the module, so that
at least it should not crash or fail to load due to some unresolved symbol.

Paulo






More information about the xorg mailing list