diff options
author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2021-03-23 02:46:43 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-23 02:46:43 +0000 |
commit | 5e491c81dcced811ed6ddce7872e255a62a61606 (patch) | |
tree | 7e3555f202568f60257794601941d4d5dddaded3 /test/sys/test_socket.rs | |
parent | fde9ebc6060ba7d5f0f49bafe82f332003ea9605 (diff) | |
parent | 5d17a60aa0cf74eda0716628c37201a89f24d025 (diff) | |
download | nix-5e491c81dcced811ed6ddce7872e255a62a61606.zip |
Merge #1407
1407: Fix test_vsock failure on VMADDR_CID_LOCAL testing and re-enable it r=asomers a=stefano-garzarella
Starting from Linux 5.6, `VMADDR_CID_LOCAL` is supported to do local communication (loopback device).
Before Linux 5.6 it was called `VMADDR_CID_RESERVED` and was not supported, so we could expect an `EADDRNOTAVAIL`, but now this address is supported and handled by the 'vsock_loopback' kernel module loaded automatically if no other vsock transports are loaded.
Issue #1310
Issue #1403
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
Co-authored-by: Stefano Garzarella <sgarzare@redhat.com>
Diffstat (limited to 'test/sys/test_socket.rs')
-rw-r--r-- | test/sys/test_socket.rs | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/test/sys/test_socket.rs b/test/sys/test_socket.rs index 873fac67..2b89a453 100644 --- a/test/sys/test_socket.rs +++ b/test/sys/test_socket.rs @@ -1491,7 +1491,6 @@ pub fn test_recv_ipv6pktinfo() { } #[cfg(any(target_os = "android", target_os = "linux"))] -#[cfg_attr(not(target_arch = "x86_64"), ignore)] #[test] pub fn test_vsock() { use libc; @@ -1508,17 +1507,11 @@ pub fn test_vsock() { SockFlag::empty(), None) .expect("socket failed"); - // VMADDR_CID_HYPERVISOR and VMADDR_CID_LOCAL are reserved, so we expect - // an EADDRNOTAVAIL error. + // VMADDR_CID_HYPERVISOR is reserved, so we expect an EADDRNOTAVAIL error. let sockaddr = SockAddr::new_vsock(libc::VMADDR_CID_HYPERVISOR, port); assert_eq!(bind(s1, &sockaddr).err(), Some(Error::Sys(Errno::EADDRNOTAVAIL))); - let sockaddr = SockAddr::new_vsock(libc::VMADDR_CID_LOCAL, port); - assert_eq!(bind(s1, &sockaddr).err(), - Some(Error::Sys(Errno::EADDRNOTAVAIL))); - - let sockaddr = SockAddr::new_vsock(libc::VMADDR_CID_ANY, port); assert_eq!(bind(s1, &sockaddr), Ok(())); listen(s1, 10).expect("listen failed"); |