Iterators: reproducer for overflow on high end of iteration

This commit is contained in:
Michal 'vorner' Vaner
2019-12-07 19:53:56 +01:00
parent 6cbb011597
commit dbf366cfdf
2 changed files with 26 additions and 0 deletions

View File

@ -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]);
}
} }

View File

@ -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());
}
} }