about summary refs log tree commit diff
diff options
context:
space:
mode:
authorIvan Nejgebauer <inejge@gmail.com>2016-07-08 13:48:46 +0200
committerIvan Nejgebauer <inejge@gmail.com>2016-07-08 13:48:46 +0200
commit66bf1092a58fb50279d263ba9e831435ace8e844 (patch)
treeda7e4a699a2dde3bb09747697d89611cbc682778
parent0314d179aa07905cc3bd4ec3206be28ff11696f9 (diff)
downloadrust-66bf1092a58fb50279d263ba9e831435ace8e844.tar.gz
rust-66bf1092a58fb50279d263ba9e831435ace8e844.zip
Add test for std::net::lookup_host() duplicates
-rw-r--r--src/libstd/sys/common/net.rs19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/libstd/sys/common/net.rs b/src/libstd/sys/common/net.rs
index 26925b12f93..8b7af17f92b 100644
--- a/src/libstd/sys/common/net.rs
+++ b/src/libstd/sys/common/net.rs
@@ -601,3 +601,22 @@ impl fmt::Debug for UdpSocket {
             .finish()
     }
 }
+
+#[cfg(test)]
+mod tests {
+    use prelude::v1::*;
+
+    use super::*;
+    use collections::HashMap;
+
+    #[test]
+    fn no_lookup_host_duplicates() {
+        let mut addrs = HashMap::new();
+        let lh = match lookup_host("localhost") {
+            Ok(lh) => lh,
+            Err(e) => panic!("couldn't resolve `localhost': {}", e)
+        };
+        let _na = lh.map(|sa| *addrs.entry(sa).or_insert(0) += 1).count();
+        assert!(addrs.values().filter(|&&v| v > 1).count() == 0);
+    }
+}