Am Donnerstag, 5. September 2013, 23:32:00 schrieben Sie:
Wolfgang Walter wine@stwm.de wrote:
With my patches 1/2 and 2/2 I get:
fixme:iphlpapi:NotifyAddrChange (Handle 0x10ee8e0, overlapped 0x10ee8ec): stub wine: configuration in '/home/walterw/.wine' has been updated. fixme:comm:set_queue_size insize 1024 outsize 1024 unimplemented stub comm.c:857: Test succeeded inside todo block: WaitCommEvent failed with a timeout comm.c:881: Test succeeded inside todo block: WaitCommEvent error 997 comm.c:883: Test succeeded inside todo block: WaitCommEvent: expected EV_TXEMPTY, got 0x4 comm.c:889: Test succeeded inside todo block: WaitCommEvent used 1141 ms for waiting err:comm:set_line_control ByteSize fixme:ntdll:server_ioctl_file Unsupported ioctl 1b000c (device=1b access=0 func=3 method=0) comm.c:2036: Tests skipped: interactive tests (set WINETEST_INTERACTIVE=1)
Successes inside of todo_wine blocks are treated as failres.
So you think I should remove the wine_todos already here?
No, the source of the failures is still there.
What do you mean with that? The tests indeed do succeed now and there is a reason they do: when you call WaitCommEvent() while the tx buffer is not empty yet the wine code will detect that EV_TXEMPTY correctly:
The tests must pass under Wine without any additional "fixes" as they do currently under Windows. If you add some code to the tests which suddenly makes them pass under Wine - that's not a fix, Wine implementation should be fixed instead.
You basically say that one may not fix a bug before fixing another one which is not related only because they are tested for in a special order and these tests influence each other though they are not really related.
Again:
In this case not wine behaves incorrectly but the test is simply wrong. It first tests if WaitCommEvent() returns ERROR_INVALID_PARAMETER if called with NULL without without ovl structure. Then it tests the EV_TXEMPTY handling. The latter test will always fail even if it works perfectly as long as wine does not return ERROR_INVALID_PARAMETER but instead does the write in the first test. This is because the second tests does not wait long enough for both writes to complete.
Regards,