I figured out now. As described in wine sources, PostQuitMessage() sets a flag in the thread's message queue that signals it to generate a WM_QUIT message when there are no other pending sent or posted messages in the queue. The tests with skipped testcases are those which use WM_TIMER messages - test_timer_message() and my test. In DIALOG_DoDialogBox() there is clearly defined that on receiving WM_QUIT message the window is destroyed. So timer messages just do not reach queue.
I thought about solution again and now I think that it would be better to remove at all lines about WM_DESTROY handling, such as we don't handle this message. And let it be handled by default. That code does nothing except posting WM_QUIT messages leading to test skipping. (test passed on WineBot) What do you think? 28.05.2012, 10:32, "Dmitry Timoshkov" <[email protected]>: > sir-lexa <[email protected]> wrote: > >> case WM_DESTROY: >> - PostQuitMessage(0); >> + /* PostQuitMessage(0); It lets some tests to be skipped */ >> return TRUE; > > This is not acceptable, there is much more behind the scene. You need > to figure out the real reason of skipping the tests. > > -- > Dmitry.
