Saulius Krasuckas saulius2@ar.fi.lt writes:
On 27 Aug 2004, Vincent BĂ©ron wrote:
Just redirecting it to glibc would be trivial, but the problem is that's not the Right Thing To Do (tm) as both don't have exactly the same behavior, and that some apps rely on the msvcrt behavior (ie, break when using glibc's).
This part if fine. Now please tell me: why printing result of msvcrt* tests should depend on the difference of this behaviour? I mean, why do we need msvcrt functions to print information about the behaviour of another msvcrt functions? I always used to thought this is extremely uncorrelated stuff:
1, testing function of the lib; 2, printing results of the test.
Are both thingies hardly tied? Forgive my ignorance, but I am afraid I won't be able to undrestand this just by digging in the Wine src. Thanks.
You are absolutely right, these two things should have nothing to do to each other. On my part it's simply that I've got no idea how to make that distinction. Wine's testing framework (test.h) uses fprintf() to do its output. It usually means glibc's fprintf(), but in the msvcrt* tests in means that of msvcrt, since those tests are linked with -lmsvcrt explicitly before the implicit -lc for the very purpose of the tests. So it's pure technicality at this end (at the other it's the matter of fixing msvcrt to take glibc redirection into account), which I didn't care enough to find a way to fix. It would be trivial if all the test used LoadLibrary() and GetProcAddress() to access the functions they test instead of linking them in, but it's not the case, especially not with such common and widely available functions as fprintf() for example.
Hope I got the explanation right and that it makes sense for you. We are humans, that's to say...
And finally a couple of winetest todos:
1. Implement the Stop button, like eg. first wait for the current test, then force termination. 2. Add an option the extract the tests and stop. 3. Ask for a Tag in the GUI (defaulting to the one given on the command line). 4. Add HTTP proxy support. 5. Remove mystrtok(), which isn't needed anymore.
Out of these 3. and 4. would be the most useful additions, but the show seems to be stopped on the server side, so I will work there first.