2004-10-24 Casper S. Hornstrup <chorns@users.sourceforge.net>
[reactos.git] / reactos / lib / ws2_32 / tests / tests / WinsockEvent.c
1 #include <windows.h>
2 #include <winsock2.h>
3 #include "regtests.h"
4
5 #define TestHandle (HANDLE) 1
6
7 static BOOL CloseHandleSuccessCalled = FALSE;
8
9 static BOOL STDCALL
10 MockCloseHandleSuccess(HANDLE hObject)
11 {
12 CloseHandleSuccessCalled = TRUE;
13 _AssertEqualValue(TestHandle, hObject);
14 return TRUE;
15 }
16
17 static HOOK HooksSuccess[] =
18 {
19 {"CloseHandle", MockCloseHandleSuccess},
20 {NULL, NULL}
21 };
22
23 static void
24 TestWSACloseEventSuccess()
25 {
26 BOOL result;
27
28 _SetHooks(HooksSuccess);
29 result = WSACloseEvent(TestHandle);
30 _AssertTrue(result);
31 _AssertEqualValue(NO_ERROR, WSAGetLastError());
32 _AssertTrue(CloseHandleSuccessCalled);
33 _UnsetAllHooks();
34 }
35
36
37 static BOOL CloseHandleFailureCalled = FALSE;
38
39 static BOOL STDCALL
40 MockCloseHandleFailure(HANDLE hObject)
41 {
42 CloseHandleFailureCalled = TRUE;
43 return FALSE;
44 }
45
46 static HOOK HooksFailure[] =
47 {
48 {"CloseHandle", MockCloseHandleFailure},
49 {NULL, NULL}
50 };
51
52 static void
53 TestWSACloseEventFailure()
54 {
55 BOOL result;
56
57 _SetHooks(HooksFailure);
58 result = WSACloseEvent(TestHandle);
59 _AssertFalse(result);
60 _AssertEqualValue(WSA_INVALID_HANDLE, WSAGetLastError());
61 _AssertTrue(CloseHandleFailureCalled);
62 _UnsetAllHooks();
63 }
64
65
66 static void
67 TestWSACloseEvent()
68 {
69 TestWSACloseEventSuccess();
70 TestWSACloseEventFailure();
71 }
72
73 static void
74 RunTest()
75 {
76 WSADATA WSAData;
77
78 WSAStartup(MAKEWORD(2, 0), &WSAData);
79 TestWSACloseEvent();
80 WSACleanup();
81 }
82
83 _Dispatcher(WinsockeventTest, "Winsock 2 event")