Hi,
I'm new to the wine development and interested in some bug hunting to gain better compatibility on windows. Just for starts I looked a little bit onto test.winehq.org and there especially why wininet:http was passing on some windows systems and on some failing with "http.c:1837: Test failed: got 12150 expected ERROR_IO_PENDING". 12150 is defined in include/winhttp.h as ERROR_WINHTTP_HEADER_NOT_FOUND.
The occurence is dependent on the version of the wininet.dll. If it is 6.xxx the test fails. If the dll is 7.xxx the test passes.
The relevant test case "static void test_HttpSendRequestW(int port)" checked in 3 days ago from Hans Leidekker as commit 667e48286e25c56bca98a135db62d723b74ef89e looks for the HTTP header "UA-CPU: x86". But this string is only supported from IE 7 up. It makes sense that this test has to fail on machines with no IE 7+ installed.
But how to tackle such things in a test case? Take care of different windows versions is used in various test cases. Can the IE version be found out with a similar mechanism? Or should a test case just ignore such nuances from internet explorer?
Thanks in advance Thomas
2009/1/20 Thomas Heckel thomas.heckel@gmx.net:
Hi,
I'm new to the wine development and interested in some bug hunting to gain better compatibility on windows. Just for starts I looked a little bit onto test.winehq.org and there especially why wininet:http was passing on some windows systems and on some failing with "http.c:1837: Test failed: got 12150 expected ERROR_IO_PENDING". 12150 is defined in include/winhttp.h as ERROR_WINHTTP_HEADER_NOT_FOUND.
The occurence is dependent on the version of the wininet.dll. If it is 6.xxx the test fails. If the dll is 7.xxx the test passes.
The relevant test case "static void test_HttpSendRequestW(int port)" checked in 3 days ago from Hans Leidekker as commit 667e48286e25c56bca98a135db62d723b74ef89e looks for the HTTP header "UA-CPU: x86". But this string is only supported from IE 7 up. It makes sense that this test has to fail on machines with no IE 7+ installed.
But how to tackle such things in a test case? Take care of different windows versions is used in various test cases. Can the IE version be found out with a similar mechanism? Or should a test case just ignore such nuances from internet explorer?
In this case (as the test is not requiring that specific header), you can choose a different header that satisfies the requirement of the test that works with the different versions of IE.
Alternatively, if this behaviour is on >= IE7, you could check for the ERROR_WINHTTP_HEADER_NOT_FOUND return and issue a wine_skip (there are examples of this in other tests).
- Reece
On Tuesday 20 January 2009 01:53:27 Thomas Heckel wrote:
The relevant test case "static void test_HttpSendRequestW(int port)" checked in 3 days ago from Hans Leidekker as commit 667e48286e25c56bca98a135db62d723b74ef89e looks for the HTTP header "UA-CPU: x86". But this string is only supported from IE 7 up. It makes sense that this test has to fail on machines with no IE 7+ installed.
But how to tackle such things in a test case? Take care of different windows versions is used in various test cases. Can the IE version be found out with a similar mechanism? Or should a test case just ignore such nuances from internet explorer?
Just try different headers until you find one that works for both IE6 and IE7.
-Hans