@@ -2050,6 +2050,10 @@ mod tests {
2050
2050
check ! ( "240.0.0.0" ) ;
2051
2051
check ! ( "251.54.1.76" ) ;
2052
2052
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" ) ;
2053
2057
2054
2058
check ! ( "::" , unspec) ;
2055
2059
check ! ( "::1" , loopback) ;
@@ -2096,6 +2100,7 @@ mod tests {
2096
2100
let benchmarking: u16 = 1 << 8 ;
2097
2101
let ietf_protocol_assignment: u16 = 1 << 9 ;
2098
2102
let reserved: u16 = 1 << 10 ;
2103
+ let shared: u16 = 1 << 11 ;
2099
2104
2100
2105
if ( $mask & unspec) == unspec {
2101
2106
assert!( ip!( $s) . is_unspecified( ) ) ;
@@ -2162,6 +2167,12 @@ mod tests {
2162
2167
} else {
2163
2168
assert!( !ip!( $s) . is_reserved( ) ) ;
2164
2169
}
2170
+
2171
+ if ( $mask & shared) == shared {
2172
+ assert!( ip!( $s) . is_shared( ) ) ;
2173
+ } else {
2174
+ assert!( !ip!( $s) . is_shared( ) ) ;
2175
+ }
2165
2176
} }
2166
2177
}
2167
2178
@@ -2176,6 +2187,7 @@ mod tests {
2176
2187
let benchmarking: u16 = 1 << 8 ;
2177
2188
let ietf_protocol_assignment: u16 = 1 << 9 ;
2178
2189
let reserved: u16 = 1 << 10 ;
2190
+ let shared: u16 = 1 << 11 ;
2179
2191
2180
2192
check ! ( "0.0.0.0" , unspec) ;
2181
2193
check ! ( "0.0.0.1" ) ;
@@ -2202,6 +2214,9 @@ mod tests {
2202
2214
check ! ( "240.0.0.0" , reserved) ;
2203
2215
check ! ( "251.54.1.76" , reserved) ;
2204
2216
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) ;
2205
2220
}
2206
2221
2207
2222
#[ test]
0 commit comments