Skip to content

Commit d3f9979

Browse files
chore: add some unit tests for net (#1942)
Signed-off-by: Lan <[email protected]>
1 parent 31d623c commit d3f9979

File tree

1 file changed

+123
-0
lines changed

1 file changed

+123
-0
lines changed

kclvm/runtime/src/net/mod.rs

Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2052,4 +2052,127 @@ mod test_net {
20522052
}
20532053
std::panic::set_hook(prev_hook);
20542054
}
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+
}
20552178
}

0 commit comments

Comments
 (0)