Rollup merge of #116989 - ChrisDenton:skip-unsupported, r=Mark-Simulacrum
Skip test if Unix sockets are unsupported Fixes https://github.com/rust-lang/rust/pull/116683#issuecomment-1772314187 The test will be skipped if `AF_UNIX` is not supported. In that case [`WSASocketW` returns `WSAEAFNOSUPPORT`](https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-wsasocketw#return-value). It will never skip the test when run in CI but maybe this is me being too defensive since the error code is narrowly scoped to just the af family parameter being unsupported? Also fixed a minor typo. r? `@Mark-Simulacrum`
This commit is contained in:
commit
4d80740c1d
1 changed files with 11 additions and 2 deletions
|
@ -1717,7 +1717,7 @@ fn windows_unix_socket_exists() {
|
|||
let tmp = tmpdir();
|
||||
let socket_path = tmp.join("socket");
|
||||
|
||||
// std doesn't current support Unix sockets on Windows so manually create one here.
|
||||
// std doesn't currently support Unix sockets on Windows so manually create one here.
|
||||
net::init();
|
||||
unsafe {
|
||||
let socket = c::WSASocketW(
|
||||
|
@ -1728,7 +1728,16 @@ fn windows_unix_socket_exists() {
|
|||
0,
|
||||
c::WSA_FLAG_OVERLAPPED | c::WSA_FLAG_NO_HANDLE_INHERIT,
|
||||
);
|
||||
assert_ne!(socket, c::INVALID_SOCKET);
|
||||
// AF_UNIX is not supported on earlier versions of Windows,
|
||||
// so skip this test if it's unsupported and we're not in CI.
|
||||
if socket == c::INVALID_SOCKET {
|
||||
let error = c::WSAGetLastError();
|
||||
if env::var_os("CI").is_none() && error == c::WSAEAFNOSUPPORT {
|
||||
return;
|
||||
} else {
|
||||
panic!("Creating AF_UNIX socket failed (OS error {error})");
|
||||
}
|
||||
}
|
||||
let mut addr = c::SOCKADDR_UN { sun_family: c::AF_UNIX, sun_path: mem::zeroed() };
|
||||
let bytes = socket_path.as_os_str().as_encoded_bytes();
|
||||
addr.sun_path[..bytes.len()].copy_from_slice(bytes);
|
||||
|
|
Loading…
Add table
Reference in a new issue