summaryrefslogtreecommitdiff
path: root/test/sys/test_socket.rs
diff options
context:
space:
mode:
authorCarl Lerche <me@carllerche.com>2015-02-21 22:42:10 -0800
committerCarl Lerche <me@carllerche.com>2015-02-21 22:42:10 -0800
commit6af51aa23225504022acdbcecc9f2e5d559522c4 (patch)
tree9db2cc0d7fe43a91db596429d0aea19f0ef6476d /test/sys/test_socket.rs
parent60ccee778b2adca488706c586bd61c5affa90de3 (diff)
downloadnix-6af51aa23225504022acdbcecc9f2e5d559522c4.zip
Fix uio and add SockAddr conversions
Diffstat (limited to 'test/sys/test_socket.rs')
-rw-r--r--test/sys/test_socket.rs29
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"),
+ }
+}