blob: 7d0cace610e8abfa745960c901aa6239338938b5 [file] [log] [blame]
William A. Kennington III9330c872023-01-04 15:41:53 -08001#include <stdplus/net/addr/ip.hpp>
2#include <stdplus/numeric/endian.hpp>
3
4#include <gtest/gtest.h>
5
6namespace stdplus
7{
8
9TEST(EqualOperator, In4Addr)
10{
11 EXPECT_EQ((In4Addr{255, 0, 255, 0}), (in_addr{hton(0xff00ff00)}));
12 EXPECT_EQ((in_addr{}), (In4Addr{}));
13 EXPECT_NE((In4Addr{1}), (In4Addr{in_addr{}}));
14 std::hash<In4Addr>{}(In4Addr{});
15}
16
17TEST(EqualOperator, In6Addr)
18{
19 EXPECT_EQ((In6Addr{0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xff}),
20 (in6_addr{0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xff}));
21 EXPECT_EQ((in6_addr{}), (In6Addr{}));
22 EXPECT_NE((In6Addr{1}), (In6Addr{in6_addr{}}));
23 std::hash<In6Addr>{}(In6Addr{});
24}
25
William A. Kennington IIIea3aeb72023-01-05 04:22:19 -080026TEST(EqualOperator, InAnyAddr)
27{
28 EXPECT_EQ(InAnyAddr(In6Addr{0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
29 0xff}),
30 (In6Addr{0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xff}));
31 EXPECT_NE(InAnyAddr(In6Addr{0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
32 0xff}),
33 (in_addr{}));
34 EXPECT_EQ((In6Addr{}), InAnyAddr(In6Addr{}));
35 EXPECT_NE((In4Addr{}), InAnyAddr(In6Addr{}));
36 EXPECT_EQ((In4Addr{}), InAnyAddr(In4Addr{}));
37 EXPECT_NE((In6Addr{}), InAnyAddr(In4Addr{}));
38 EXPECT_EQ(InAnyAddr(In6Addr{}), (in6_addr{}));
39 EXPECT_EQ(InAnyAddr(In4Addr{}), (in_addr{}));
40 EXPECT_NE(InAnyAddr(In6Addr{1}), InAnyAddr(In6Addr{}));
41 EXPECT_EQ(InAnyAddr(In6Addr{1}), InAnyAddr(In6Addr{1}));
42
43 std::hash<InAnyAddr>{}(In4Addr{});
44 std::hash<InAnyAddr>{}(In6Addr{});
45}
46
William A. Kennington III9330c872023-01-04 15:41:53 -080047} // namespace stdplus