35 EXPECT_EQ(MacAddress::fromHBO(expectedHBO), addr);
37 EXPECT_EQ(MacAddress::fromHBO(expectedHBO | 0xa5a5000000000000), addr);
42 EXPECT_EQ(MacAddress::fromNBO(expectedNBO), addr);
44 EXPECT_EQ(MacAddress::fromNBO(nboWithPad), addr);
48 memcpy(expectedBytes, &expectedNBO, 8);
49 for (
int n = 0; n < 6; ++n) {
55 testMAC(
"12:34:56:78:9a:bc", 0x123456789abc);
56 testMAC(
"00-11-22-33-44-55", 0x1122334455);
57 testMAC(
"abcdef123456", 0xabcdef123456);
58 testMAC(
"1:2:3:4:5:6", 0x010203040506);
60 testMAC(
"0:0:5e:0:1:1", 0x00005e000101);
78 auto mac = MacAddress::fromBinary(bin);
89 EXPECT_THROW(MacAddress::fromBinary(empty), std::invalid_argument);
91 EXPECT_THROW(MacAddress::fromBinary(tooShort), std::invalid_argument);
92 StringPiece tooLong(
"\x11\x22\x33\x44\x55\x66\x77", 7);
93 EXPECT_THROW(MacAddress::fromBinary(tooLong), std::invalid_argument);
98 "12:34:56:78:9a:bc", MacAddress::fromHBO(0x123456789abc).
toString());
109 EXPECT_TRUE(MacAddress::fromNBO(0xffffffffffffffffU).isBroadcast());
136 MacAddress::createMulticast(
IPAddressV6(
"ff02:dead:beef::1:3")));
139 MacAddress::createMulticast(
IPAddressV6(
"ff02::abcd:1234:5678")));
142 void testCmp(
const char* str1,
const char* str2) {
165 testCmp(
"00:00:00:00:00:00",
"00:00:00:00:00:01");
166 testCmp(
"00:00:00:00:00:01",
"00:00:00:00:00:02");
167 testCmp(
"01:00:00:00:00:00",
"02:00:00:00:00:00");
168 testCmp(
"00:00:00:00:00:01",
"00:00:00:00:01:00");
173 std::hash<MacAddress>()(
MacAddress(
"00:11:22:33:44:55")),
174 std::hash<MacAddress>()(
MacAddress(
"00-11-22-33-44-55")));
176 std::hash<MacAddress>()(
MacAddress(
"00:11:22:33:44:55")),
177 std::hash<MacAddress>()(
MacAddress(
"00:11:22:33:44:56")));
size_t parse(const char *buf, size_t len)
folly::StringPiece toString(StateEnum state)
#define EXPECT_THROW(statement, expected_exception)
void testCmp(const char *str1, const char *str2)
std::string sformat(StringPiece fmt, Args &&...args)
#define EXPECT_EQ(val1, val2)
void testMAC(const std::string &str, uint64_t expectedHBO)
#define SCOPED_TRACE(message)
constexpr std::decay< T >::type copy(T &&value) noexcept(noexcept(typename std::decay< T >::type(std::forward< T >(value))))
const uint8_t * bytes() const
constexpr auto empty(C const &c) -> decltype(c.empty())
void testFromBinary(const char *str, uint64_t expectedHBO)
#define EXPECT_TRUE(condition)
#define EXPECT_NE(val1, val2)
#define EXPECT_FALSE(condition)
Range< const char * > StringPiece
ThreadPoolListHook * addr