@@ -2052,4 +2052,127 @@ mod test_net {
2052
2052
}
2053
2053
std:: panic:: set_hook ( prev_hook) ;
2054
2054
}
2055
+
2056
+ #[ test]
2057
+ #[ allow( non_snake_case) ]
2058
+ fn test_is_interface_local_multicast_IP ( ) {
2059
+ let cases = [ ( "ff11::1" , true ) , ( "224.0.0.0" , false ) ] ;
2060
+ let mut ctx = Context :: default ( ) ;
2061
+ for ( ip, expect) in cases. iter ( ) {
2062
+ unsafe {
2063
+ let actual = & * kclvm_net_is_interface_local_multicast_IP (
2064
+ & mut ctx,
2065
+ & ValueRef :: dict ( None ) ,
2066
+ & ValueRef :: dict ( Some ( & [ ( "ip" , & ValueRef :: str ( ip) ) ] ) ) ,
2067
+ ) ;
2068
+ assert_eq ! ( * expect, actual. as_bool( ) , "ip: {} " , ip) ;
2069
+ }
2070
+ }
2071
+ }
2072
+
2073
+ #[ test]
2074
+ #[ allow( non_snake_case) ]
2075
+ fn test_is_link_local_multicast_IP ( ) {
2076
+ let cases = [ ( "ff12::1" , true ) ] ;
2077
+ let mut ctx = Context :: default ( ) ;
2078
+ for ( ip, expect) in cases. iter ( ) {
2079
+ unsafe {
2080
+ let actual = & * kclvm_net_is_link_local_multicast_IP (
2081
+ & mut ctx,
2082
+ & ValueRef :: dict ( None ) ,
2083
+ & ValueRef :: dict ( Some ( & [ ( "ip" , & ValueRef :: str ( ip) ) ] ) ) ,
2084
+ ) ;
2085
+ assert_eq ! ( * expect, actual. as_bool( ) , "ip: {} " , ip) ;
2086
+ }
2087
+ }
2088
+ }
2089
+
2090
+ #[ test]
2091
+ #[ allow( non_snake_case) ]
2092
+ fn test_is_global_unicast_IP ( ) {
2093
+ let cases = [
2094
+ ( "2607:f8b0:4005:802::200e" , true ) ,
2095
+ ( "64:ff9b::800:1" , true ) ,
2096
+ ( "220.181.108.89" , true ) ,
2097
+ ] ;
2098
+ let mut ctx = Context :: default ( ) ;
2099
+ for ( ip, expect) in cases. iter ( ) {
2100
+ unsafe {
2101
+ let actual = & * kclvm_net_is_global_unicast_IP (
2102
+ & mut ctx,
2103
+ & ValueRef :: dict ( None ) ,
2104
+ & ValueRef :: dict ( Some ( & [ ( "ip" , & ValueRef :: str ( ip) ) ] ) ) ,
2105
+ ) ;
2106
+ assert_eq ! ( * expect, actual. as_bool( ) , "ip: {} " , ip) ;
2107
+ }
2108
+ }
2109
+ }
2110
+
2111
+ #[ test]
2112
+ #[ allow( non_snake_case) ]
2113
+ fn test_is_multicast_IP ( ) {
2114
+ let cases = [ ( "239.255.255.255" , true ) ] ;
2115
+ let mut ctx = Context :: default ( ) ;
2116
+ for ( ip, expect) in cases. iter ( ) {
2117
+ unsafe {
2118
+ let actual = & * kclvm_net_is_multicast_IP (
2119
+ & mut ctx,
2120
+ & ValueRef :: dict ( None ) ,
2121
+ & ValueRef :: dict ( Some ( & [ ( "ip" , & ValueRef :: str ( ip) ) ] ) ) ,
2122
+ ) ;
2123
+ assert_eq ! ( * expect, actual. as_bool( ) , "ip: {} " , ip) ;
2124
+ }
2125
+ }
2126
+ }
2127
+
2128
+ #[ test]
2129
+ #[ allow( non_snake_case) ]
2130
+ fn test_is_loopback_IP ( ) {
2131
+ let cases = [ ( "127.0.0.1" , true ) ] ;
2132
+ let mut ctx = Context :: default ( ) ;
2133
+ for ( ip, expect) in cases. iter ( ) {
2134
+ unsafe {
2135
+ let actual = & * kclvm_net_is_loopback_IP (
2136
+ & mut ctx,
2137
+ & ValueRef :: dict ( None ) ,
2138
+ & ValueRef :: dict ( Some ( & [ ( "ip" , & ValueRef :: str ( ip) ) ] ) ) ,
2139
+ ) ;
2140
+ assert_eq ! ( * expect, actual. as_bool( ) , "ip: {} " , ip) ;
2141
+ }
2142
+ }
2143
+ }
2144
+
2145
+ #[ test]
2146
+ #[ allow( non_snake_case) ]
2147
+ fn test_is_link_local_unicast_IP ( ) {
2148
+ let cases = [ ( "fe80::2012:1" , true ) ] ;
2149
+ let mut ctx = Context :: default ( ) ;
2150
+ for ( ip, expect) in cases. iter ( ) {
2151
+ unsafe {
2152
+ let actual = & * kclvm_net_is_link_local_unicast_IP (
2153
+ & mut ctx,
2154
+ & ValueRef :: dict ( None ) ,
2155
+ & ValueRef :: dict ( Some ( & [ ( "ip" , & ValueRef :: str ( ip) ) ] ) ) ,
2156
+ ) ;
2157
+ assert_eq ! ( * expect, actual. as_bool( ) , "ip: {} " , ip) ;
2158
+ }
2159
+ }
2160
+ }
2161
+
2162
+ #[ test]
2163
+ #[ allow( non_snake_case) ]
2164
+ fn test_is_unspecified_IP ( ) {
2165
+ let cases = [ ( "0.0.0.0" , true ) ] ;
2166
+ let mut ctx = Context :: default ( ) ;
2167
+ for ( ip, expect) in cases. iter ( ) {
2168
+ unsafe {
2169
+ let actual = & * kclvm_net_is_unspecified_IP (
2170
+ & mut ctx,
2171
+ & ValueRef :: dict ( None ) ,
2172
+ & ValueRef :: dict ( Some ( & [ ( "ip" , & ValueRef :: str ( ip) ) ] ) ) ,
2173
+ ) ;
2174
+ assert_eq ! ( * expect, actual. as_bool( ) , "ip: {}" , ip) ;
2175
+ }
2176
+ }
2177
+ }
2055
2178
}
0 commit comments