about summary refs log tree commit diff
path: root/library/std/src
diff options
context:
space:
mode:
authorDan Gohman <dev@sunfishcode.online>2021-07-27 16:57:38 -0700
committerDan Gohman <dev@sunfishcode.online>2021-08-19 12:02:39 -0700
commit1f8a450cdd1b8324765f19c3edd8ca2242682fb8 (patch)
tree56376a1f8f179ec556ef6784481248f6ab154a66 /library/std/src
parent1c6bf04edba84ce57f33516138a6aac1a52a9fcd (diff)
downloadrust-1f8a450cdd1b8324765f19c3edd8ca2242682fb8.tar.gz
rust-1f8a450cdd1b8324765f19c3edd8ca2242682fb8.zip
Add a test to ensure that RawFd is the size we assume it is.
Diffstat (limited to 'library/std/src')
-rw-r--r--library/std/src/os/unix/io/fd.rs4
-rw-r--r--library/std/src/os/unix/io/fd/tests.rs11
-rw-r--r--library/std/src/os/wasi/io/fd.rs4
-rw-r--r--library/std/src/os/wasi/io/fd/tests.rs11
4 files changed, 30 insertions, 0 deletions
diff --git a/library/std/src/os/unix/io/fd.rs b/library/std/src/os/unix/io/fd.rs
index 5a8b30c77c0..6bb1fa15c17 100644
--- a/library/std/src/os/unix/io/fd.rs
+++ b/library/std/src/os/unix/io/fd.rs
@@ -2,6 +2,10 @@
 
 #![unstable(feature = "io_safety", issue = "87074")]
 
+// Tests for this module
+#[cfg(test)]
+mod tests;
+
 use super::raw::{AsRawFd, FromRawFd, IntoRawFd, RawFd};
 use crate::fmt;
 use crate::fs;
diff --git a/library/std/src/os/unix/io/fd/tests.rs b/library/std/src/os/unix/io/fd/tests.rs
new file mode 100644
index 00000000000..84d2a7a1a91
--- /dev/null
+++ b/library/std/src/os/unix/io/fd/tests.rs
@@ -0,0 +1,11 @@
+use crate::mem::size_of;
+use crate::os::unix::io::RawFd;
+
+#[test]
+fn test_raw_fd_layout() {
+    // `OwnedFd` and `BorrowedFd` use `rustc_layout_scalar_valid_range_start`
+    // and `rustc_layout_scalar_valid_range_end`, with values that depend on
+    // the bit width of `RawFd`. If this ever changes, those values will need
+    // to be updated.
+    assert_eq!(size_of::<RawFd>(), 4);
+}
diff --git a/library/std/src/os/wasi/io/fd.rs b/library/std/src/os/wasi/io/fd.rs
index 494903d941c..f9cacc841cd 100644
--- a/library/std/src/os/wasi/io/fd.rs
+++ b/library/std/src/os/wasi/io/fd.rs
@@ -2,6 +2,10 @@
 
 #![unstable(feature = "wasi_ext", issue = "71213")]
 
+// Tests for this module
+#[cfg(test)]
+mod tests;
+
 use super::raw::{AsRawFd, FromRawFd, IntoRawFd, RawFd};
 use crate::fmt;
 use crate::fs;
diff --git a/library/std/src/os/wasi/io/fd/tests.rs b/library/std/src/os/wasi/io/fd/tests.rs
new file mode 100644
index 00000000000..b276b7bafed
--- /dev/null
+++ b/library/std/src/os/wasi/io/fd/tests.rs
@@ -0,0 +1,11 @@
+use std::mem::size_of;
+use std::os::wasi::io::RawFd;
+
+#[test]
+fn test_raw_fd_layout() {
+    /// `OwnedFd` and `BorrowedFd` use `rustc_layout_scalar_valid_range_start`
+    /// and `rustc_layout_scalar_valid_range_end`, with values that depend on
+    /// the bit width of `RawFd`. If this ever changes, those values will need
+    /// to be updated.
+    assert_eq!(size_of::<RawFd>(), 4);
+}