@@ -2050,6 +2050,10 @@ mod tests {
20502050 check ! ( "240.0.0.0" ) ;
20512051 check ! ( "251.54.1.76" ) ;
20522052 check ! ( "254.255.255.255" ) ;
2053+ // make sure shared addresses are not global
2054+ check ! ( "100.64.0.0" ) ;
2055+ check ! ( "100.127.255.255" ) ;
2056+ check ! ( "100.100.100.0" ) ;
20532057
20542058 check ! ( "::" , unspec) ;
20552059 check ! ( "::1" , loopback) ;
@@ -2096,6 +2100,7 @@ mod tests {
20962100 let benchmarking: u16 = 1 << 8 ;
20972101 let ietf_protocol_assignment: u16 = 1 << 9 ;
20982102 let reserved: u16 = 1 << 10 ;
2103+ let shared: u16 = 1 << 11 ;
20992104
21002105 if ( $mask & unspec) == unspec {
21012106 assert!( ip!( $s) . is_unspecified( ) ) ;
@@ -2162,6 +2167,12 @@ mod tests {
21622167 } else {
21632168 assert!( !ip!( $s) . is_reserved( ) ) ;
21642169 }
2170+
2171+ if ( $mask & shared) == shared {
2172+ assert!( ip!( $s) . is_shared( ) ) ;
2173+ } else {
2174+ assert!( !ip!( $s) . is_shared( ) ) ;
2175+ }
21652176 } }
21662177 }
21672178
@@ -2176,6 +2187,7 @@ mod tests {
21762187 let benchmarking: u16 = 1 << 8 ;
21772188 let ietf_protocol_assignment: u16 = 1 << 9 ;
21782189 let reserved: u16 = 1 << 10 ;
2190+ let shared: u16 = 1 << 11 ;
21792191
21802192 check ! ( "0.0.0.0" , unspec) ;
21812193 check ! ( "0.0.0.1" ) ;
@@ -2202,6 +2214,9 @@ mod tests {
22022214 check ! ( "240.0.0.0" , reserved) ;
22032215 check ! ( "251.54.1.76" , reserved) ;
22042216 check ! ( "254.255.255.255" , reserved) ;
2217+ check ! ( "100.64.0.0" , shared) ;
2218+ check ! ( "100.127.255.255" , shared) ;
2219+ check ! ( "100.100.100.0" , shared) ;
22052220 }
22062221
22072222 #[ test]
0 commit comments