Extra tests for printf of NaN and Inf.

Change-Id: I61fc655d9777a03aabf38f6ebd047fe275386f05
diff --git a/tests/stdio_test.cpp b/tests/stdio_test.cpp
index cc1fd85..0aa1d15 100644
--- a/tests/stdio_test.cpp
+++ b/tests/stdio_test.cpp
@@ -18,6 +18,7 @@
 
 #include <errno.h>
 #include <limits.h>
+#include <math.h>
 #include <stdio.h>
 #include <sys/types.h>
 #include <sys/stat.h>
@@ -302,6 +303,24 @@
   EXPECT_STREQ("print_me_twice print_me_twice", buf);
 }
 
+TEST(stdio, snprintf_f_special) {
+  char buf[BUFSIZ];
+  snprintf(buf, sizeof(buf), "%f", nanf(""));
+  EXPECT_STREQ("NaN", buf);
+
+  snprintf(buf, sizeof(buf), "%f", HUGE_VALF);
+  EXPECT_STREQ("Inf", buf);
+}
+
+TEST(stdio, snprintf_g_special) {
+  char buf[BUFSIZ];
+  snprintf(buf, sizeof(buf), "%g", nan(""));
+  EXPECT_STREQ("NaN", buf);
+
+  snprintf(buf, sizeof(buf), "%g", HUGE_VAL);
+  EXPECT_STREQ("Inf", buf);
+}
+
 TEST(stdio, snprintf_d_INT_MAX) {
   char buf[BUFSIZ];
   snprintf(buf, sizeof(buf), "%d", INT_MAX);