[PATCH] kernel32/tests: Make sure the child process is done running its tests before terminating it.

Jacek Caban jacek at codeweavers.com
Mon Jan 22 14:19:29 CST 2018


On 01/22/2018 08:01 PM, Alexandre Julliard wrote:
> Zebediah Figura <z.figura12 at gmail.com> writes:
>
>> Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
>> ---
>>  dlls/kernel32/tests/pipe.c | 8 ++++++++
>>  1 file changed, 8 insertions(+)
>>
>> diff --git a/dlls/kernel32/tests/pipe.c b/dlls/kernel32/tests/pipe.c
>> index 922eed9..1708c28 100644
>> --- a/dlls/kernel32/tests/pipe.c
>> +++ b/dlls/kernel32/tests/pipe.c
>> @@ -2962,10 +2962,15 @@ static void child_process_write_pipe(HANDLE pipe)
>>  {
>>      OVERLAPPED overlapped;
>>      char buf[10000];
>> +    HANDLE event;
>>  
>>      memset(buf, 'x', sizeof(buf));
>>      overlapped_write_async(pipe, buf, sizeof(buf), &overlapped);
>>  
>> +    event = OpenEventA(EVENT_MODIFY_STATE, FALSE, "wine_test_pipe_event");
>> +    SetEvent(event);
>> +    CloseHandle(event);
>> +
> It would be more robust to pass the event to the child instead of using
> a global name. Also as long as we are synchronizing them, having the
> parent signal the child to exit would be cleaner than using
> TerminateProcess.


TerminateProcess here was intentional because it triggered a more
interesting code path in server, but sure, it can be changed.


The problem with this test is a todo_wine like in output. I was thinking
about fixing the problem in kernel32 shown by the test and removing
todo_wine.


Thanks,

Jacek




More information about the wine-devel mailing list