William A. Kennington III | b25086a | 2023-01-09 18:53:29 -0800 | [diff] [blame] | 1 | #include <stdplus/net/addr/ether.hpp> |
| 2 | |
| 3 | #include <gtest/gtest.h> |
| 4 | |
| 5 | namespace stdplus |
| 6 | { |
| 7 | |
| 8 | TEST(EqualOperator, EtherAddr) |
| 9 | { |
| 10 | EXPECT_EQ((EtherAddr{1}), (ether_addr{1})); |
| 11 | EXPECT_EQ((EtherAddr{}), (EtherAddr{})); |
| 12 | EXPECT_NE((EtherAddr{1}), (EtherAddr{ether_addr{}})); |
| 13 | std::hash<EtherAddr>{}(EtherAddr{}); |
| 14 | } |
| 15 | |
William A. Kennington III | 84c7aa2 | 2023-06-14 13:26:47 -0700 | [diff] [blame^] | 16 | TEST(FromStr, EtherAddr) |
| 17 | { |
| 18 | EXPECT_THROW(fromStr<EtherAddr>("0x:00:00:00:00:00"), |
| 19 | std::invalid_argument); |
| 20 | EXPECT_THROW(fromStr<EtherAddr>("00:00:00:00:00"), std::invalid_argument); |
| 21 | EXPECT_THROW(fromStr<EtherAddr>("00:00:00:00:00:"), std::invalid_argument); |
| 22 | EXPECT_THROW(fromStr<EtherAddr>("00:00:00:00::00"), std::invalid_argument); |
| 23 | EXPECT_THROW(fromStr<EtherAddr>(":00:00:00:00:00"), std::invalid_argument); |
| 24 | EXPECT_THROW(fromStr<EtherAddr>("00::00:00:00:00"), std::invalid_argument); |
| 25 | EXPECT_THROW(fromStr<EtherAddr>(":::::"), std::invalid_argument); |
| 26 | EXPECT_THROW(fromStr<EtherAddr>("00:0:0:0:0"), std::invalid_argument); |
| 27 | EXPECT_THROW(fromStr<EtherAddr>("00:00:00:00:00:00:00"), |
| 28 | std::invalid_argument); |
| 29 | EXPECT_THROW(fromStr<EtherAddr>(""), std::invalid_argument); |
| 30 | EXPECT_THROW(fromStr<EtherAddr>("123456789XYZ"), std::invalid_argument); |
| 31 | EXPECT_THROW(fromStr<EtherAddr>("123456789AB"), std::overflow_error); |
| 32 | EXPECT_THROW(fromStr<EtherAddr>("123456789ABCD"), std::overflow_error); |
| 33 | |
| 34 | EXPECT_EQ((EtherAddr{}), fromStr<EtherAddr>("00:00:00:00:00:00")); |
| 35 | EXPECT_EQ((EtherAddr{0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa}), |
| 36 | fromStr<EtherAddr>("FF:EE:DD:cc:bb:aa")); |
| 37 | EXPECT_EQ((EtherAddr{0x00, 0x01, 0x02, 0x03, 0x04, 0x05}), |
| 38 | fromStr<EtherAddr>("0:1:2:3:4:5")); |
| 39 | EXPECT_EQ((EtherAddr{0x01, 0x23, 0x45, 0x67, 0x89, 0xab}), |
| 40 | fromStr<EtherAddr>("0123456789AB")); |
| 41 | EXPECT_EQ((EtherAddr{0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa}), |
| 42 | fromStr<EtherAddr>("FFEEDDccbbaa")); |
| 43 | } |
| 44 | |
William A. Kennington III | b25086a | 2023-01-09 18:53:29 -0800 | [diff] [blame] | 45 | } // namespace stdplus |