net/addr/subnet: Add ToStr conversion
Change-Id: Id06045fd638fa53eb5725eadd63cace148fc53f3
Signed-off-by: William A. Kennington III <wak@google.com>
diff --git a/test/net/addr/subnet.cpp b/test/net/addr/subnet.cpp
index 561507c..5024928 100644
--- a/test/net/addr/subnet.cpp
+++ b/test/net/addr/subnet.cpp
@@ -51,6 +51,15 @@
EXPECT_TRUE(Subnet4(addr4Full, 0).contains(In4Addr{}));
}
+TEST(Subnet4, ToStr)
+{
+ ToStrHandle<ToStr<Subnet4>> tsh;
+ EXPECT_EQ("0.0.0.0/16", tsh(Subnet4({}, 16)));
+ EXPECT_EQ("255.0.255.255/28", tsh(Subnet4(In4Addr{255, 0, 255, 255}, 28)));
+ EXPECT_EQ("a 1.2.3.4/32 b",
+ fmt::format("a {} b", Subnet4(In4Addr{1, 2, 3, 4}, 32)));
+}
+
TEST(Subnet6, Basic)
{
EXPECT_NO_THROW(Subnet6(in6_addr{0xff}, 128));
@@ -102,6 +111,15 @@
EXPECT_TRUE(Subnet6(addr6Full, 0).contains(In6Addr{}));
}
+TEST(Subnet6, ToStr)
+{
+ ToStrHandle<ToStr<Subnet6>> tsh;
+ EXPECT_EQ("::/0", tsh(Subnet6({}, 0)));
+ EXPECT_EQ("ff00::/128", tsh(Subnet6(In6Addr{0xff}, 128)));
+ EXPECT_EQ("a 102:304::/32 b",
+ fmt::format("a {} b", Subnet6(In6Addr{1, 2, 3, 4}, 32)));
+}
+
TEST(SubnetAny, Basic)
{
EXPECT_NO_THROW(SubnetAny(in_addr{0xffffffff}, 32));
@@ -157,4 +175,15 @@
EXPECT_FALSE(SubnetAny(addr4Full, 32).contains(InAnyAddr{In4Addr{}}));
}
+TEST(SubnetAny, ToStr)
+{
+ ToStrHandle<ToStr<SubnetAny>> tsh;
+ EXPECT_EQ("0.0.0.0/16", tsh(SubnetAny(In4Addr{}, 16)));
+ EXPECT_EQ("ff00::/128", tsh(SubnetAny(In6Addr{0xff}, 128)));
+ EXPECT_EQ("a 102:304::/32 b",
+ fmt::format("a {} b", SubnetAny(In6Addr{1, 2, 3, 4}, 32)));
+ EXPECT_EQ("a 1.2.3.4/32 b",
+ fmt::format("a {} b", SubnetAny(In4Addr{1, 2, 3, 4}, 32)));
+}
+
} // namespace stdplus