| ... | @@ -63,3 +63,28 @@ test "removeDotDirs" { | ... | @@ -63,3 +63,28 @@ test "removeDotDirs" { |
| 63 | try testRemoveDotDirs("a\\b\\..\\", "a\\"); | 63 | try testRemoveDotDirs("a\\b\\..\\", "a\\"); |
| 64 | try testRemoveDotDirs("a\\b\\..\\c", "a\\c"); | 64 | try testRemoveDotDirs("a\\b\\..\\c", "a\\c"); |
| 65 | } | 65 | } |
| | 66 | |
| | 67 | test "loadWinsockExtensionFunction" { |
| | 68 | _ = try windows.WSAStartup(2, 2); |
| | 69 | defer windows.WSACleanup() catch unreachable; |
| | 70 | |
| | 71 | const LPFN_CONNECTEX = *const fn ( |
| | 72 | Socket: windows.ws2_32.SOCKET, |
| | 73 | SockAddr: *const windows.ws2_32.sockaddr, |
| | 74 | SockLen: std.os.socklen_t, |
| | 75 | SendBuf: ?*const anyopaque, |
| | 76 | SendBufLen: windows.DWORD, |
| | 77 | BytesSent: *windows.DWORD, |
| | 78 | Overlapped: *windows.OVERLAPPED, |
| | 79 | ) callconv(windows.WINAPI) windows.BOOL; |
| | 80 | |
| | 81 | _ = windows.loadWinsockExtensionFunction( |
| | 82 | LPFN_CONNECTEX, |
| | 83 | try std.os.socket(std.os.AF.INET, std.os.SOCK.DGRAM, 0), |
| | 84 | windows.ws2_32.WSAID_CONNECTEX, |
| | 85 | ) catch |err| switch (err) { |
| | 86 | error.OperationNotSupported => unreachable, |
| | 87 | error.ShortRead => unreachable, |
| | 88 | else => |e| return e, |
| | 89 | }; |
| | 90 | } |