@@ -2031,6 +2031,10 @@ mod tests {
2031
2031
check ! ( "192.0.0.0" ) ;
2032
2032
check ! ( "192.0.0.255" ) ;
2033
2033
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" ) ;
2034
2038
2035
2039
check ! ( "::" , unspec) ;
2036
2040
check ! ( "::1" , loopback) ;
@@ -2076,6 +2080,7 @@ mod tests {
2076
2080
let documentation: u16 = 1 << 7 ;
2077
2081
let benchmarking: u16 = 1 << 8 ;
2078
2082
let ietf_protocol_assignment: u16 = 1 << 9 ;
2083
+ let reserved: u16 = 1 << 10 ;
2079
2084
2080
2085
if ( $mask & unspec) == unspec {
2081
2086
assert!( ip!( $s) . is_unspecified( ) ) ;
@@ -2136,6 +2141,12 @@ mod tests {
2136
2141
} else {
2137
2142
assert!( !ip!( $s) . is_ietf_protocol_assignment( ) ) ;
2138
2143
}
2144
+
2145
+ if ( $mask & reserved) == reserved {
2146
+ assert!( ip!( $s) . is_reserved( ) ) ;
2147
+ } else {
2148
+ assert!( !ip!( $s) . is_reserved( ) ) ;
2149
+ }
2139
2150
} }
2140
2151
}
2141
2152
@@ -2149,6 +2160,7 @@ mod tests {
2149
2160
let documentation: u16 = 1 << 7 ;
2150
2161
let benchmarking: u16 = 1 << 8 ;
2151
2162
let ietf_protocol_assignment: u16 = 1 << 9 ;
2163
+ let reserved: u16 = 1 << 10 ;
2152
2164
2153
2165
check ! ( "0.0.0.0" , unspec) ;
2154
2166
check ! ( "0.0.0.1" ) ;
@@ -2172,6 +2184,9 @@ mod tests {
2172
2184
check ! ( "192.0.0.0" , ietf_protocol_assignment) ;
2173
2185
check ! ( "192.0.0.255" , ietf_protocol_assignment) ;
2174
2186
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) ;
2175
2190
}
2176
2191
2177
2192
#[ test]
0 commit comments