From 698f8c2f01ea549d77d7dc3338a12e04c11057b9 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 17 Apr 2024 14:02:58 +0200 Subject: Adding upstream version 1.64.0+dfsg1. Signed-off-by: Daniel Baumann --- vendor/io-lifetimes/tests/niche-optimizations.rs | 71 ++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 vendor/io-lifetimes/tests/niche-optimizations.rs (limited to 'vendor/io-lifetimes/tests/niche-optimizations.rs') diff --git a/vendor/io-lifetimes/tests/niche-optimizations.rs b/vendor/io-lifetimes/tests/niche-optimizations.rs new file mode 100644 index 000000000..89316d559 --- /dev/null +++ b/vendor/io-lifetimes/tests/niche-optimizations.rs @@ -0,0 +1,71 @@ +#![cfg_attr(not(rustc_attrs), allow(unused_imports))] +#![cfg_attr(target_os = "wasi", feature(wasi_ext))] +#![cfg_attr(io_lifetimes_use_std, feature(io_safety))] + +use std::mem::size_of; + +#[cfg(any(unix, target_os = "wasi"))] +use io_lifetimes::{BorrowedFd, OwnedFd}; +#[cfg(windows)] +use io_lifetimes::{BorrowedSocket, OwnedSocket}; + +#[cfg(unix)] +use std::os::unix::io::{FromRawFd, IntoRawFd, RawFd}; +#[cfg(target_os = "wasi")] +use std::os::wasi::io::{FromRawSocket, IntoRawSocket, RawFd}; +#[cfg(windows)] +use std::os::windows::io::{FromRawSocket, IntoRawSocket, RawSocket}; + +#[cfg(all(rustc_attrs, any(unix, target_os = "wasi")))] +#[test] +fn test_niche_optimizations() { + assert_eq!(size_of::>(), size_of::()); + assert_eq!(size_of::>>(), size_of::()); + unsafe { + assert_eq!(OwnedFd::from_raw_fd(RawFd::MIN).into_raw_fd(), RawFd::MIN); + assert_eq!(OwnedFd::from_raw_fd(RawFd::MAX).into_raw_fd(), RawFd::MAX); + assert_eq!( + Some(OwnedFd::from_raw_fd(RawFd::MIN)) + .unwrap() + .into_raw_fd(), + RawFd::MIN + ); + assert_eq!( + Some(OwnedFd::from_raw_fd(RawFd::MAX)) + .unwrap() + .into_raw_fd(), + RawFd::MAX + ); + } +} + +#[cfg(all(rustc_attrs, windows))] +#[test] +fn test_niche_optimizations_socket() { + assert_eq!(size_of::>(), size_of::()); + assert_eq!( + size_of::>>(), + size_of::(), + ); + unsafe { + #[cfg(target_pointer_width = "32")] + let (min, max) = (i32::MIN as u32, i32::MAX as u32); + #[cfg(target_pointer_width = "64")] + let (min, max) = (i64::MIN as u64, i64::MAX as u64); + + assert_eq!(OwnedSocket::from_raw_socket(min).into_raw_socket(), min); + assert_eq!(OwnedSocket::from_raw_socket(max).into_raw_socket(), max); + assert_eq!( + Some(OwnedSocket::from_raw_socket(min)) + .unwrap() + .into_raw_socket(), + min + ); + assert_eq!( + Some(OwnedSocket::from_raw_socket(max)) + .unwrap() + .into_raw_socket(), + max + ); + } +} -- cgit v1.2.3