@@ -2031,6 +2031,10 @@ mod tests {
20312031 check ! ( "192.0.0.0" ) ;
20322032 check ! ( "192.0.0.255" ) ;
20332033 check ! ( "192.0.0.100" ) ;
2034+ // make sure reserved addresses are not global
2035+ check ! ( "240.0.0.0" ) ;
2036+ check ! ( "251.54.1.76" ) ;
2037+ check ! ( "254.255.255.255" ) ;
20342038
20352039 check ! ( "::" , unspec) ;
20362040 check ! ( "::1" , loopback) ;
@@ -2076,6 +2080,7 @@ mod tests {
20762080 let documentation: u16 = 1 << 7 ;
20772081 let benchmarking: u16 = 1 << 8 ;
20782082 let ietf_protocol_assignment: u16 = 1 << 9 ;
2083+ let reserved: u16 = 1 << 10 ;
20792084
20802085 if ( $mask & unspec) == unspec {
20812086 assert!( ip!( $s) . is_unspecified( ) ) ;
@@ -2136,6 +2141,12 @@ mod tests {
21362141 } else {
21372142 assert!( !ip!( $s) . is_ietf_protocol_assignment( ) ) ;
21382143 }
2144+
2145+ if ( $mask & reserved) == reserved {
2146+ assert!( ip!( $s) . is_reserved( ) ) ;
2147+ } else {
2148+ assert!( !ip!( $s) . is_reserved( ) ) ;
2149+ }
21392150 } }
21402151 }
21412152
@@ -2149,6 +2160,7 @@ mod tests {
21492160 let documentation: u16 = 1 << 7 ;
21502161 let benchmarking: u16 = 1 << 8 ;
21512162 let ietf_protocol_assignment: u16 = 1 << 9 ;
2163+ let reserved: u16 = 1 << 10 ;
21522164
21532165 check ! ( "0.0.0.0" , unspec) ;
21542166 check ! ( "0.0.0.1" ) ;
@@ -2172,6 +2184,9 @@ mod tests {
21722184 check ! ( "192.0.0.0" , ietf_protocol_assignment) ;
21732185 check ! ( "192.0.0.255" , ietf_protocol_assignment) ;
21742186 check ! ( "192.0.0.100" , ietf_protocol_assignment) ;
2187+ check ! ( "240.0.0.0" , reserved) ;
2188+ check ! ( "251.54.1.76" , reserved) ;
2189+ check ! ( "254.255.255.255" , reserved) ;
21752190 }
21762191
21772192 #[ test]
0 commit comments