netaddr/tests/eui48_test.v
ge ef87b21308
Some checks are pending
CI / build (push) Waiting to run
CI / deploy (push) Blocked by required conditions
init
2025-04-05 22:49:43 +03:00

41 lines
1.4 KiB
V

import netaddr
fn test_eui48_from_string() {
expected := netaddr.Eui48.from_octets([u8(0x0a), 0x96, 0x7a, 0x87, 0x4a, 0xe3]!)
assert netaddr.Eui48.from_string('0a-96-7a-87-4a-e3')! == expected
assert netaddr.Eui48.from_string('0a:96:7a:87:4a:e3')! == expected
assert netaddr.Eui48.from_string('0a96.7a87.4ae3')! == expected
assert netaddr.Eui48.from_string('0a967a874ae3')! == expected
assert netaddr.Eui48.from_string(u64(4123532145345345).hex()) or { netaddr.Eui48{} } == netaddr.Eui48{}
}
fn test_eui48_format() {
mac := netaddr.Eui48.from_octets([u8(0x0a), 0x96, 0x7a, 0x87, 0x4a, 0xe3]!)
assert mac.str() == '0a-96-7a-87-4a-e3'
assert mac.format(.canonical) == '0a-96-7a-87-4a-e3'
assert mac.format(.unix) == '0a:96:7a:87:4a:e3'
assert mac.format(.hextets) == '0a96.7a87.4ae3'
assert mac.format(.bare) == '0a967a874ae3'
assert netaddr.Eui48{}.format(.hextets) == '0000.0000.0000'
}
fn test_eui48_tests() {
mac := netaddr.Eui48.from_octets([u8(0x10), 0xff, 0xe0, 0x4b, 0xe6, 0xb8]!)
assert mac.is_universal()
assert mac.is_unicast()
}
fn test_eui48_ipv6_link_local() {
mac := netaddr.Eui48.from_octets([u8(0x10), 0xff, 0xe0, 0x4b, 0xe6, 0xb8]!)
assert mac.ipv6_link_local().str() == 'fe80::12ff:e0ff:fe4b:e6b8'
}
fn test_eui48_random() {
mac_a := netaddr.Eui48.random()
assert mac_a.is_local()
assert mac_a.is_unicast()
mac_b := netaddr.Eui48.random(oui: [u8(0x02), 0x00, 0x00]!)
assert mac_b.is_local()
assert mac_b.is_unicast()
}