From cc24cceb1affe8e13cf2c93eb07d7820a2f122e5 Mon Sep 17 00:00:00 2001 From: sharks Date: Tue, 27 Mar 2018 21:48:29 -0500 Subject: [PATCH] add test cases --- src/ipv4.rs | 9 +++++++++ src/ipv6.rs | 9 +++++++++ src/lib.rs | 5 +++++ 3 files changed, 23 insertions(+) diff --git a/src/ipv4.rs b/src/ipv4.rs index 4ca54ad..f585e07 100644 --- a/src/ipv4.rs +++ b/src/ipv4.rs @@ -57,6 +57,8 @@ impl Ipv4Network { /// use std::net::Ipv4Addr; /// use ipnetwork::Ipv4Network; /// + /// let net: Ipv4Network = "127.0.0.0".parse().unwrap(); + /// assert_eq!(net.mask(), Ipv4Addr::new(255, 255, 255, 255)); /// let net: Ipv4Network = "127.0.0.0/16".parse().unwrap(); /// assert_eq!(net.mask(), Ipv4Addr::new(255, 255, 0, 0)); /// ``` @@ -280,6 +282,13 @@ mod test { assert_eq!(cidr.prefix(), 32); } + #[test] + fn parse_v4_noprefix() { + let cidr: Ipv4Network = "127.0.0.0".parse().unwrap(); + assert_eq!(cidr.ip(), Ipv4Addr::new(127, 0, 0, 0)); + assert_eq!(cidr.prefix(), 32); + } + #[test] fn parse_v4_fail_addr() { let cidr: Option = "10.a.b/8".parse().ok(); diff --git a/src/ipv6.rs b/src/ipv6.rs index c0819c9..6825652 100644 --- a/src/ipv6.rs +++ b/src/ipv6.rs @@ -106,6 +106,8 @@ impl Ipv6Network { /// use std::net::Ipv6Addr; /// use ipnetwork::Ipv6Network; /// + /// let net: Ipv6Network = "ff01::0".parse().unwrap(); + /// assert_eq!(net.mask(), Ipv6Addr::new(0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff)); /// let net: Ipv6Network = "ff01::0/32".parse().unwrap(); /// assert_eq!(net.mask(), Ipv6Addr::new(0xffff, 0xffff, 0, 0, 0, 0, 0, 0)); /// ``` @@ -281,6 +283,13 @@ mod test { assert_eq!(cidr.prefix(), 64); } + #[test] + fn parse_v6_noprefix() { + let cidr: Ipv6Network = "::1".parse().unwrap(); + assert_eq!(cidr.ip(), Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1)); + assert_eq!(cidr.prefix(), 128); + } + #[test] fn parse_v6_fail_addr() { let cidr: Option = "2001::1::/8".parse().ok(); diff --git a/src/lib.rs b/src/lib.rs index f68a644..21f99df 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -64,6 +64,8 @@ impl IpNetwork { /// /// assert_eq!(IpNetwork::V4("10.9.0.1".parse().unwrap()).prefix(), 32u8); /// assert_eq!(IpNetwork::V4("10.9.0.32/16".parse().unwrap()).prefix(), 16u8); + /// + /// assert_eq!(IpNetwork::V6("ff01::0".parse().unwrap()).prefix(), 128u8); /// assert_eq!(IpNetwork::V6("ff01::0/32".parse().unwrap()).prefix(), 32u8); /// ``` pub fn prefix(&self) -> u8 { @@ -85,6 +87,9 @@ impl IpNetwork { /// assert_eq!(v4_net.mask(), Ipv4Addr::new(255, 255, 255, 255)); /// let v4_net: IpNetwork = "10.9.0.32/16".parse().unwrap(); /// assert_eq!(v4_net.mask(), Ipv4Addr::new(255, 255, 0, 0)); + /// + /// let v6_net: IpNetwork = "ff01::0".parse().unwrap(); + /// assert_eq!(v6_net.mask(), Ipv6Addr::new(0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff)); /// let v6_net: IpNetwork = "ff01::0/32".parse().unwrap(); /// assert_eq!(v6_net.mask(), Ipv6Addr::new(0xffff, 0xffff, 0, 0, 0, 0, 0, 0)); ///```