about summary refs log tree commit diff
path: root/library/std/src/os/net/linux_ext/tests.rs
diff options
context:
space:
mode:
authorDavid Carlier <devnexen@gmail.com>2024-01-05 21:22:42 +0000
committerDavid Carlier <devnexen@gmail.com>2024-02-21 20:59:15 +0000
commit85bf4439e614f2971523e380b69bb3be4c995894 (patch)
treefb334fd9cd79fc481ceaa16bc1eef632a7692b1b /library/std/src/os/net/linux_ext/tests.rs
parentf8131a48a46ac3bc8a3d0fe0477055b132cffdc3 (diff)
downloadrust-85bf4439e614f2971523e380b69bb3be4c995894.tar.gz
rust-85bf4439e614f2971523e380b69bb3be4c995894.zip
os::net: expanding TcpStreamExt for Linux with `tcp_deferaccept`.
allows for socket to process only when there is data to process,
the option sets a number of seconds until the data is ready.
Diffstat (limited to 'library/std/src/os/net/linux_ext/tests.rs')
-rw-r--r--library/std/src/os/net/linux_ext/tests.rs26
1 files changed, 26 insertions, 0 deletions
diff --git a/library/std/src/os/net/linux_ext/tests.rs b/library/std/src/os/net/linux_ext/tests.rs
index 2db4deed036..f8dbbfc18e2 100644
--- a/library/std/src/os/net/linux_ext/tests.rs
+++ b/library/std/src/os/net/linux_ext/tests.rs
@@ -26,3 +26,29 @@ fn quickack() {
     t!(stream.set_quickack(false));
     assert_eq!(false, t!(stream.quickack()));
 }
+
+#[test]
+#[cfg(target_os = "linux")]
+fn deferaccept() {
+    use crate::{
+        net::{test::next_test_ip4, TcpListener, TcpStream},
+        os::net::linux_ext::tcp::TcpStreamExt,
+    };
+
+    macro_rules! t {
+        ($e:expr) => {
+            match $e {
+                Ok(t) => t,
+                Err(e) => panic!("received error for `{}`: {}", stringify!($e), e),
+            }
+        };
+    }
+
+    let addr = next_test_ip4();
+    let _listener = t!(TcpListener::bind(&addr));
+    let stream = t!(TcpStream::connect(&("localhost", addr.port())));
+    stream.set_deferaccept(1).expect("set_deferaccept failed");
+    assert_eq!(stream.deferaccept().unwrap(), 1);
+    stream.set_deferaccept(0).expect("set_deferaccept failed");
+    assert_eq!(stream.deferaccept().unwrap(), 0);
+}