net/addr/ip: Add In4Addr ToStr conversion

Change-Id: Id2f16834c02a2bc500aae45dc852113cee1eff87
Signed-off-by: William A. Kennington III <wak@google.com>
diff --git a/test/net/addr/ip.cpp b/test/net/addr/ip.cpp
index 625633e..0a2bc30 100644
--- a/test/net/addr/ip.cpp
+++ b/test/net/addr/ip.cpp
@@ -1,3 +1,5 @@
+#include <fmt/format.h>
+
 #include <stdplus/net/addr/ip.hpp>
 #include <stdplus/numeric/endian.hpp>
 
@@ -30,6 +32,15 @@
     EXPECT_EQ((In4Addr{192, 168, 1, 1}), fromStr<In4Addr>("192.168.001.1"));
 }
 
+TEST(ToStr, In4Addr)
+{
+    ToStrHandle<ToStr<In4Addr>> tsh;
+    EXPECT_EQ("255.255.255.255", tsh(in_addr{0xffffffff}));
+    EXPECT_EQ("1.15.3.4", tsh(In4Addr{1, 15, 3, 4}));
+    EXPECT_EQ("0.0.0.0", tsh(In4Addr{}));
+    EXPECT_EQ("a 1.15.3.4 b", fmt::format("a {} b", In4Addr{1, 15, 3, 4}));
+}
+
 TEST(EqualOperator, In6Addr)
 {
     EXPECT_EQ((In6Addr{0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xff}),