"Anatoly Lyutin" vostok@etersoft.ru wrote:
thread = CreateThread( NULL, 0, create_messagebox_thread, &info, 0, &tid );while(info.hWndDlg == NULL)info.hWndDlg = FindWindowA(NULL,info.ch);
This is too hackish IMO, if dialog creation fails for some reason the test will hang.
PostMessageA(info.hWndDlg,WM_COMMAND,IDCANCEL,0);Sleep(nTimeOut);if(info.ret==-1)SendMessageA(info.hWndDlg,WM_COMMAND,Data[i].nExitMessage,(LPARAM)GetDlgItem( info.hWndDlg,Data[i].nExitMessage ));
Why don't you check whether 'info.ret==-1' is a legitimate response or not?
Sleep(nTimeOut);ok(info.ret == Data[i].nReact,"This dialogue has incorrect reaction on IDCANCEL!\n");CloseHandle( thread );}+}
And these Sleep() calls are potential races.