Patch checking robot coming
Francois Gouget
fgouget at free.fr
Mon Aug 4 03:55:46 CDT 2008
On Sat, 2 Aug 2008, Zachary Goldberg wrote:
[...]
> Its really ironic that you post this today as just yesterday I was
> contemplating the same thing, and not only doing a compile check but
> also a run of the test suite
One problem is that you need an X server, preferably on real hardware to
please the DirectX chaps. That may be tricky for the chroot, but maybe
not.
Another problem with running the test suite is that all it's going to
tell you is that it failed. As I understand it, even on Alexandre's
machine it fails intermittently.
One way it could work would be to only have the robot complain about new
failures. This is tricky, see below, but feasible. Let's just take a
test failure as an example:
visual.c:506: Test failed: Present failed: Got color 0x00ffffff, expected 0x00ff0000.
The problem here is that if someone adds ten lines near the beginning of
visual.c, this may turn into:
visual.c:516: Test failed: Present failed: Got color 0x00ffffff, expected 0x00ff0000.
Or if the colors are random (probably not the case here but happens for
other tests), then the next time you may get the following message:
visual.c:506: Test failed: Present failed: Got color 0x001e89df, expected 0x00ff0000.
So how is a bot to know all these are the same error?
With git-blame, that's how. Just use the filename and line number as
imput to git-blame:
$ git-blame -p -L506,506 dlls/d3d8/tests/visual.c | head -n 1
078523f73e7b708dab06e888c24a1595bb5a63d8 495 506 1
What this means is that this line was first introduced in commit
078523f7 and was line number 495 at the time. Now, if you commit a
patch adding 10 lines and then ask about line 516 you will get the exact
same result. So a unique identifier for this line is:
078523f73e7b708dab06e888c24a1595bb5a63d8:dlls/d3d8/tests/visual.c:495
So all the bot has to do is to run git-blame on each failure line to get
its unique id, then check the unique id against the list of
known/allowed (intermittent) failures, and only fail the patch if the
failure is not in the list.
Now what I'd like is to have something like that for the Windows test
results...
> and valgrind.
There you have to take into account that for the past week we've had an
average of 56 patch submissions per day. So if you want the bot to keep
up it means it must spend less than 25 minutes on each patch. But if you
want to have a little bit of room for growth it limiting it to 15
minutes per patch (96 patches/day) would be better...
My understanding is that Valgrinding alone takes much more than 25
minutes already.
--
Francois Gouget <fgouget at free.fr> http://fgouget.free.fr/
Hiroshima '45 - Czernobyl '86 - Windows '95
More information about the wine-devel
mailing list