diff options
author | Carl Lerche <me@carllerche.com> | 2015-02-21 22:42:10 -0800 |
---|---|---|
committer | Carl Lerche <me@carllerche.com> | 2015-02-21 22:42:10 -0800 |
commit | 6af51aa23225504022acdbcecc9f2e5d559522c4 (patch) | |
tree | 9db2cc0d7fe43a91db596429d0aea19f0ef6476d /test/sys/test_socket.rs | |
parent | 60ccee778b2adca488706c586bd61c5affa90de3 (diff) | |
download | nix-6af51aa23225504022acdbcecc9f2e5d559522c4.zip |
Fix uio and add SockAddr conversions
Diffstat (limited to 'test/sys/test_socket.rs')
-rw-r--r-- | test/sys/test_socket.rs | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/test/sys/test_socket.rs b/test/sys/test_socket.rs new file mode 100644 index 00000000..8451853f --- /dev/null +++ b/test/sys/test_socket.rs @@ -0,0 +1,29 @@ +use nix::sys::socket::{AsSockAddr, SockAddr}; +use std::{mem, net}; +use std::num::Int; +use std::path::Path; +use std::str::FromStr; + +#[test] +pub fn test_inetv4_addr_to_sock_addr() { + let std: net::SocketAddr = FromStr::from_str("127.0.0.1:3000").unwrap(); + + match std.as_sock_addr().unwrap() { + SockAddr::SockIpV4(addr) => { + assert_eq!(addr.sin_addr.s_addr, Int::from_be(2130706433)); + assert_eq!(addr.sin_port, 3000); + } + _ => panic!("nope"), + } +} + +#[test] +pub fn test_path_to_sock_addr() { + match Path::new("/foo/bar").as_sock_addr().unwrap() { + SockAddr::SockUnix(addr) => { + let expect: &'static [i8] = unsafe { mem::transmute(b"/foo/bar") }; + assert_eq!(&addr.sun_path[..8], expect); + } + _ => panic!("nope"), + } +} |