294259be0835565ec8d848446f6ce5a994fc2035
2 * PROJECT: ReactOS api tests
3 * LICENSE: GPLv2+ - See COPYING in the top level directory
4 * PURPOSE: Test for getaddrinfo
5 * PROGRAMMER: Thomas Faber <thomas.faber@reactos.org>
10 #define WIN32_NO_STATUS
12 #define COM_NO_WINDOWS_H
17 #include <ndk/umtypes.h>
19 START_TEST(getnameinfo
)
23 PCHAR NodeBuffer
, ServiceBuffer
;
24 CHAR TestBuf
[NI_MAXHOST
];
25 WCHAR TestBufW
[NI_MAXHOST
];
26 SOCKADDR_IN LocalAddr
;
28 /* not yet initialized */
30 Error
= getnameinfo(NULL
, 0, NULL
, 0, NULL
, 0, 0);
31 ok_dec(Error
, WSANOTINITIALISED
);
32 EndSeh(STATUS_SUCCESS
);
34 NodeBuffer
= InvalidPointer
;
35 ServiceBuffer
= InvalidPointer
;
36 Error
= getnameinfo(NULL
, 0, NodeBuffer
, 0, ServiceBuffer
, 0, 0);
37 ok_dec(Error
, WSANOTINITIALISED
);
38 ok_ptr(NodeBuffer
, InvalidPointer
);
39 ok_ptr(ServiceBuffer
, InvalidPointer
);
40 EndSeh(STATUS_SUCCESS
);
42 LocalAddr
.sin_family
= AF_INET
;
43 LocalAddr
.sin_port
= 80;
44 LocalAddr
.sin_addr
.S_un
.S_addr
= ntohl(INADDR_LOOPBACK
);
45 Error
= getnameinfo((PSOCKADDR
)&LocalAddr
, sizeof(LocalAddr
), TestBuf
, sizeof(TestBuf
), NULL
, 0, 0);
46 ok_dec(Error
, WSANOTINITIALISED
);
48 Error
= WSAStartup(MAKEWORD(2, 2), &WsaData
);
52 Error
= getnameinfo(NULL
, 0, NULL
, 0, NULL
, 0, 0);
53 ok_dec(Error
, WSAEFAULT
);
54 EndSeh(STATUS_SUCCESS
);
56 NodeBuffer
= InvalidPointer
;
57 ServiceBuffer
= InvalidPointer
;
58 Error
= getnameinfo(NULL
, 0, NodeBuffer
, 0, ServiceBuffer
, 0, 0);
59 ok_dec(Error
, WSAEFAULT
);
60 ok_ptr(NodeBuffer
, InvalidPointer
);
61 ok_ptr(ServiceBuffer
, InvalidPointer
);
62 EndSeh(STATUS_SUCCESS
);
64 /* initialize LocalAddress for tests */
65 Error
= getnameinfo((PSOCKADDR
)&LocalAddr
, sizeof(LocalAddr
), TestBuf
, sizeof(TestBuf
), NULL
, 0, 0);
67 ok_dec(WSAGetLastError(), 0);
69 /* test minimal size */
70 MinSize
= sizeof(LocalAddr
);
71 Error
= getnameinfo((PSOCKADDR
)&LocalAddr
, MinSize
, TestBuf
, sizeof(TestBuf
), NULL
, 0, 0);
73 ok_dec(WSAGetLastError(), 0);
75 Error
= GetNameInfoA((PSOCKADDR
)&LocalAddr
, MinSize
, TestBuf
, sizeof(TestBuf
), NULL
, 0, 0);
77 ok_dec(WSAGetLastError(), 0);
79 Error
= GetNameInfoW((PSOCKADDR
)&LocalAddr
, MinSize
, TestBufW
, sizeof(TestBufW
), NULL
, 0, 0);
81 ok_dec(WSAGetLastError(), 0);
84 Error
= getnameinfo((PSOCKADDR
)&LocalAddr
, MinSize
, TestBuf
, sizeof(TestBuf
), NULL
, 0, 0);
85 ok_dec(Error
, WSAEFAULT
);
87 Error
= GetNameInfoA((PSOCKADDR
)&LocalAddr
, MinSize
, TestBuf
, sizeof(TestBuf
), NULL
, 0, 0);
88 ok_dec(Error
, WSAEFAULT
);
90 Error
= GetNameInfoW((PSOCKADDR
)&LocalAddr
, MinSize
, TestBufW
, sizeof(TestBufW
), NULL
, 0, 0);
91 ok_dec(Error
, WSAEFAULT
);
96 /* not initialized anymore */
97 Error
= getnameinfo((PSOCKADDR
)&LocalAddr
, sizeof(LocalAddr
), NodeBuffer
, 0, ServiceBuffer
, 0, 0);
98 ok_dec(Error
, WSANOTINITIALISED
);