diff options
| author | Milan Landaverde <milanlandaverde@gmail.com> | 2021-05-21 14:47:17 -0400 |
|---|---|---|
| committer | Milan <milanlandaverde@gmail.com> | 2021-10-10 14:01:09 -0400 |
| commit | 92d680589c1e7c9a21a7e31ce98b7a7f09bcc65f (patch) | |
| tree | aa8dea22b613ee609bf3e647d297628f228c72aa /library/std/src | |
| parent | d68a8d987069227c7aab32b088e163195af142e4 (diff) | |
| download | rust-92d680589c1e7c9a21a7e31ce98b7a7f09bcc65f.tar.gz rust-92d680589c1e7c9a21a7e31ce98b7a7f09bcc65f.zip | |
cross-platform doctests
Diffstat (limited to 'library/std/src')
| -rw-r--r-- | library/std/src/os/unix/net/addr.rs | 2 | ||||
| -rw-r--r-- | library/std/src/os/unix/net/datagram.rs | 20 | ||||
| -rw-r--r-- | library/std/src/os/unix/net/listener.rs | 8 | ||||
| -rw-r--r-- | library/std/src/os/unix/net/stream.rs | 8 | ||||
| -rw-r--r-- | library/std/src/os/unix/net/tests.rs | 24 |
5 files changed, 49 insertions, 13 deletions
diff --git a/library/std/src/os/unix/net/addr.rs b/library/std/src/os/unix/net/addr.rs index a414b6eff43..fd8d1d7acf8 100644 --- a/library/std/src/os/unix/net/addr.rs +++ b/library/std/src/os/unix/net/addr.rs @@ -214,6 +214,7 @@ impl SocketAddr { /// Ok(()) /// } /// ``` + #[doc(cfg(any(target_os = "android", target_os = "linux")))] #[cfg(any(doc, target_os = "android", target_os = "linux",))] #[unstable(feature = "unix_socket_abstract", issue = "85410")] pub fn as_abstract_namespace(&self) -> Option<&[u8]> { @@ -271,6 +272,7 @@ impl SocketAddr { /// Ok(()) /// } /// ``` + #[doc(cfg(any(target_os = "android", target_os = "linux")))] #[cfg(any(doc, target_os = "android", target_os = "linux",))] #[unstable(feature = "unix_socket_abstract", issue = "85410")] pub fn from_abstract_namespace(namespace: &[u8]) -> io::Result<SocketAddr> { diff --git a/library/std/src/os/unix/net/datagram.rs b/library/std/src/os/unix/net/datagram.rs index c4625b90e78..87be4d3f57a 100644 --- a/library/std/src/os/unix/net/datagram.rs +++ b/library/std/src/os/unix/net/datagram.rs @@ -118,11 +118,13 @@ impl UnixDatagram { /// /// ```no_run /// #![feature(unix_socket_abstract)] - /// use std::os::unix::net::{UnixDatagram, SocketAddr}; + /// use std::os::unix::net::{UnixDatagram}; /// /// fn main() -> std::io::Result<()> { - /// let addr = SocketAddr::from_abstract_namespace(b"hidden")?; // Linux only - /// let sock = match UnixDatagram::bind_addr(&addr) { + /// let sock1 = UnixDatagram::bind("path/to/socket")?; + /// let addr = sock1.local_addr()?; + /// + /// let sock2 = match UnixDatagram::bind_addr(&addr) { /// Ok(sock) => sock, /// Err(err) => { /// println!("Couldn't bind: {:?}", err); @@ -231,10 +233,12 @@ impl UnixDatagram { /// /// ```no_run /// #![feature(unix_socket_abstract)] - /// use std::os::unix::net::{UnixDatagram, SocketAddr}; + /// use std::os::unix::net::{UnixDatagram}; /// /// fn main() -> std::io::Result<()> { - /// let addr = SocketAddr::from_abstract_namespace(b"hidden")?; // Linux only + /// let bound = UnixDatagram::bind("/path/to/socket")?; + /// let addr = bound.local_addr()?; + /// /// let sock = UnixDatagram::unbound()?; /// match sock.connect_addr(&addr) { /// Ok(sock) => sock, @@ -549,10 +553,12 @@ impl UnixDatagram { /// /// ```no_run /// #![feature(unix_socket_abstract)] - /// use std::os::unix::net::{UnixDatagram, SocketAddr}; + /// use std::os::unix::net::{UnixDatagram}; /// /// fn main() -> std::io::Result<()> { - /// let addr = SocketAddr::from_abstract_namespace(b"hidden")?; + /// let bound = UnixDatagram::bind("/path/to/socket")?; + /// let addr = bound.local_addr()?; + /// /// let sock = UnixDatagram::unbound()?; /// sock.send_to_addr(b"bacon egg and cheese", &addr).expect("send_to_addr function failed"); /// Ok(()) diff --git a/library/std/src/os/unix/net/listener.rs b/library/std/src/os/unix/net/listener.rs index 5e88f9acb87..7fba7543ec2 100644 --- a/library/std/src/os/unix/net/listener.rs +++ b/library/std/src/os/unix/net/listener.rs @@ -89,11 +89,13 @@ impl UnixListener { /// /// ```no_run /// #![feature(unix_socket_abstract)] - /// use std::os::unix::net::{UnixListener, SocketAddr}; + /// use std::os::unix::net::{UnixListener}; /// /// fn main() -> std::io::Result<()> { - /// let addr = SocketAddr::from_abstract_namespace(b"namespace")?; // Linux only - /// let listener = match UnixListener::bind_addr(&addr) { + /// let listener1 = UnixListener::bind("path/to/socket")?; + /// let addr = listener1.local_addr()?; + /// + /// let listener2 = match UnixListener::bind_addr(&addr) { /// Ok(sock) => sock, /// Err(err) => { /// println!("Couldn't bind: {:?}", err); diff --git a/library/std/src/os/unix/net/stream.rs b/library/std/src/os/unix/net/stream.rs index 765a040a246..e3eef7c7614 100644 --- a/library/std/src/os/unix/net/stream.rs +++ b/library/std/src/os/unix/net/stream.rs @@ -114,11 +114,13 @@ impl UnixStream { /// /// ```no_run /// #![feature(unix_socket_abstract)] - /// use std::os::unix::net::{UnixStream, SocketAddr}; + /// use std::os::unix::net::{UnixListener, UnixStream}; /// /// fn main() -> std::io::Result<()> { - /// let addr = SocketAddr::from_abstract_namespace(b"hidden")?; // Linux only - /// match UnixStream::connect_addr(&addr) { + /// let listener = UnixListener::bind("/path/to/the/socket")?; + /// let addr = listener.local_addr()?; + /// + /// let sock = match UnixStream::connect_addr(&addr) { /// Ok(sock) => sock, /// Err(e) => { /// println!("Couldn't connect: {:?}", e); diff --git a/library/std/src/os/unix/net/tests.rs b/library/std/src/os/unix/net/tests.rs index b13ce0e252a..7ad4a02611e 100644 --- a/library/std/src/os/unix/net/tests.rs +++ b/library/std/src/os/unix/net/tests.rs @@ -304,6 +304,30 @@ fn test_unnamed_unix_datagram() { } #[test] +fn test_unix_datagram_connect_to_recv_addr() { + let dir = tmpdir(); + let path1 = dir.path().join("sock1"); + let path2 = dir.path().join("sock2"); + + let sock1 = or_panic!(UnixDatagram::bind(&path1)); + let sock2 = or_panic!(UnixDatagram::bind(&path2)); + + let msg = b"hello world"; + let sock1_addr = or_panic!(sock1.local_addr()); + or_panic!(sock2.send_to_addr(msg, &sock1_addr)); + let mut buf = [0; 11]; + let (_, addr) = or_panic!(sock1.recv_from(&mut buf)); + + let new_msg = b"hello back"; + let mut new_buf = [0; 10]; + or_panic!(sock2.connect_addr(&addr)); + or_panic!(sock2.send(new_msg)); // set by connect_addr + let usize = or_panic!(sock2.recv(&mut new_buf)); + assert_eq!(usize, 10); + assert_eq!(new_msg, &new_buf[..]); +} + +#[test] fn test_connect_unix_datagram() { let dir = tmpdir(); let path1 = dir.path().join("sock1"); |
