Would something like this be useful to include in Wine?
If that's deemed interesting I can clean it up and submit it. I'm
posting it here early in case it's useful for WineConf.
It's a tool which you can use with git bisect to find the patch that
causes a regression in a conformance test. It's used like this:
git bisect start <bad> <good>
git bisect run ./tools/testbisect dlls/gdi32/tests bitmap
Come back a bit later and you have the bad patch.
It can also be used with flaky tests by specifying the number of times
to run a test. So if a test fails in 30% of the time you could only
consider that it works if it succeeds 10 times in a row. You can even
grep for a specific error if the test has other errors you don't care
about.
Finally you can also use it without git just to figure out if a test
is flaky or not. For instance:
$ ./tools/testbisect dlls/random/tests flaky 100 100
Failed 42 time(s) in 100 run(s)
-> definitely flaky
--
Francois Gouget <fgouget(a)free.fr> http://fgouget.free.fr/
Indifference will certainly be the downfall of mankind, but who cares?
What's motivating this change? Are you quite sure you know how
ReadConsole behaves?
I bet one could write a test for this that used SendInput to
send keystrokes to be read by ReadConsole, and
verify the end of line and end of buffer behavior...
+ * We can't use the native f* functions because of the filename
syntax differences
+ * between DOS and Unix.
That doesn't belong in a function comment; it's
an implementation detail that belongs, at most,
inside the function.
On one of my boxes, if I run winmm/midi.ok in a loop, it will
eventually deadlock/crash
( http://bugs.winehq.org/show_bug.cgi?id=28388 ):
err:ntdll:RtlpWaitForCriticalSection section 0x110060 "heap.c: main
process heap section" wait timed out in thread 0022, blocked by 001f,
retrying (60 sec)
wine: Critical section 00110060 wait failed at address 0x7bc3484a
(thread 0022), starting debugger...
err:ntdll:RtlpWaitForCriticalSection section 0x110060 "heap.c: main
process heap section" wait timed out in thread 0022, blocked by 001f,
retrying (60 sec)
Sadly, no backtrace follows ( http://bugs.winehq.org/show_bug.cgi?id=28265 ).
Since I'm not around when it finally happens, I haven't tried btall yet.
I suppose I should write a shell script to watch for that error
message in the log,
and run btall then... any better ideas?
(I did try giving winedbg a private heap, didn't seem to prevent the deadlock.)