std::net: tests for Ipv4addr::is_reserved()

Also add tests to IpAddr for make sure these addresses are not global
or multicast.
This commit is contained in:
Corentin Henry
2019-04-22 16:14:28 +02:00
parent a2bead8761
commit 66627777b5
+15
View File
@@ -2031,6 +2031,10 @@ macro_rules! check {
check!("192.0.0.0");
check!("192.0.0.255");
check!("192.0.0.100");
// make sure reserved addresses are not global
check!("240.0.0.0");
check!("251.54.1.76");
check!("254.255.255.255");
check!("::", unspec);
check!("::1", loopback);
@@ -2076,6 +2080,7 @@ macro_rules! check {
let documentation: u16 = 1 << 7;
let benchmarking: u16 = 1 << 8;
let ietf_protocol_assignment: u16 = 1 << 9;
let reserved: u16 = 1 << 10;
if ($mask & unspec) == unspec {
assert!(ip!($s).is_unspecified());
@@ -2136,6 +2141,12 @@ macro_rules! check {
} else {
assert!(!ip!($s).is_ietf_protocol_assignment());
}
if ($mask & reserved) == reserved {
assert!(ip!($s).is_reserved());
} else {
assert!(!ip!($s).is_reserved());
}
}}
}
@@ -2149,6 +2160,7 @@ macro_rules! check {
let documentation: u16 = 1 << 7;
let benchmarking: u16 = 1 << 8;
let ietf_protocol_assignment: u16 = 1 << 9;
let reserved: u16 = 1 << 10;
check!("0.0.0.0", unspec);
check!("0.0.0.1");
@@ -2172,6 +2184,9 @@ macro_rules! check {
check!("192.0.0.0", ietf_protocol_assignment);
check!("192.0.0.255", ietf_protocol_assignment);
check!("192.0.0.100", ietf_protocol_assignment);
check!("240.0.0.0", reserved);
check!("251.54.1.76", reserved);
check!("254.255.255.255", reserved);
}
#[test]