mirror of
https://github.com/achanda/ipnetwork.git
synced 2025-06-16 08:48:51 +00:00
Iterators: reproducer for overflow on high end of iteration
This commit is contained in:
15
src/ipv4.rs
15
src/ipv4.rs
@ -614,4 +614,19 @@ mod test {
|
|||||||
assert_eq!(skynet.overlaps(other2), false);
|
assert_eq!(skynet.overlaps(other2), false);
|
||||||
assert_eq!(other2.overlaps(other3), true);
|
assert_eq!(other2.overlaps(other3), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn edges() {
|
||||||
|
let low: Ipv4Network = "0.0.0.0/24".parse().unwrap();
|
||||||
|
let low_addrs: Vec<Ipv4Addr> = low.iter().collect();
|
||||||
|
assert_eq!(256, low_addrs.len());
|
||||||
|
assert_eq!("0.0.0.0".parse::<Ipv4Addr>().unwrap(), low_addrs[0]);
|
||||||
|
assert_eq!("0.0.0.255".parse::<Ipv4Addr>().unwrap(), low_addrs[255]);
|
||||||
|
|
||||||
|
let high: Ipv4Network = "255.255.255.0/24".parse().unwrap();
|
||||||
|
let high_addrs: Vec<Ipv4Addr> = high.iter().collect();
|
||||||
|
assert_eq!(256, high_addrs.len());
|
||||||
|
assert_eq!("255.255.255.0".parse::<Ipv4Addr>().unwrap(), high_addrs[0]);
|
||||||
|
assert_eq!("255.255.255.255".parse::<Ipv4Addr>().unwrap(), high_addrs[255]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
11
src/ipv6.rs
11
src/ipv6.rs
@ -589,4 +589,15 @@ mod test {
|
|||||||
|
|
||||||
assert_eq!(other2.overlaps(other), true);
|
assert_eq!(other2.overlaps(other), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn edges() {
|
||||||
|
let low: Ipv6Network = "::0/120".parse().unwrap();
|
||||||
|
let low_addrs: Vec<Ipv6Addr> = low.iter().collect();
|
||||||
|
assert_eq!(256, low_addrs.len());
|
||||||
|
|
||||||
|
let high: Ipv6Network = "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ff00/120".parse().unwrap();
|
||||||
|
let high_addrs: Vec<Ipv6Addr> = high.iter().collect();
|
||||||
|
assert_eq!(256, high_addrs.len());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user