2007-08-06 Simon Josefsson <simon@josefsson.org>
[gnulib.git] / tests / test-printf-posix.h
index 04d3e55..2f56487 100644 (file)
@@ -37,23 +37,92 @@ test_function (int (*my_printf) (const char *, ...))
   /* Positive zero.  */
   my_printf ("%a %d\n", 0.0, 33, 44, 55);
 
-  /* Negative zero.  */
-  my_printf ("%a %d\n", -0.0, 33, 44, 55);
-
   /* Positive infinity.  */
   my_printf ("%a %d\n", 1.0 / 0.0, 33, 44, 55);
 
   /* Negative infinity.  */
   my_printf ("%a %d\n", -1.0 / 0.0, 33, 44, 55);
 
-  /* NaN.  */
-  my_printf ("%a %d\n", 0.0 / 0.0, 33, 44, 55);
-
   /* FLAG_ZERO with infinite number.  */
+  /* "0000000inf 33" is not a valid result; see
+     <http://lists.gnu.org/archive/html/bug-gnulib/2007-04/msg00107.html> */
   my_printf ("%010a %d\n", 1.0 / 0.0, 33, 44, 55);
 
-  /* FLAG_ZERO with NaN.  */
-  my_printf ("%010a %d\n", 0.0 / 0.0, 33, 44, 55);
+  /* Test the support of the %f format directive.  */
+
+  /* A positive number.  */
+  my_printf ("%f %d\n", 12.75, 33, 44, 55);
+
+  /* A larger positive number.  */
+  my_printf ("%f %d\n", 1234567.0, 33, 44, 55);
+
+  /* A negative number.  */
+  my_printf ("%f %d\n", -0.03125, 33, 44, 55);
+
+  /* Positive zero.  */
+  my_printf ("%f %d\n", 0.0, 33, 44, 55);
+
+  /* FLAG_ZERO.  */
+  my_printf ("%015f %d\n", 1234.0, 33, 44, 55);
+
+  /* Precision.  */
+  my_printf ("%.f %d\n", 1234.0, 33, 44, 55);
+
+  /* A positive number.  */
+  my_printf ("%Lf %d\n", 12.75L, 33, 44, 55);
+
+  /* A larger positive number.  */
+  my_printf ("%Lf %d\n", 1234567.0L, 33, 44, 55);
+
+  /* A negative number.  */
+  my_printf ("%Lf %d\n", -0.03125L, 33, 44, 55);
+
+  /* Positive zero.  */
+  my_printf ("%Lf %d\n", 0.0L, 33, 44, 55);
+
+  /* FLAG_ZERO.  */
+  my_printf ("%015Lf %d\n", 1234.0L, 33, 44, 55);
+
+  /* Precision.  */
+  my_printf ("%.Lf %d\n", 1234.0L, 33, 44, 55);
+
+  /* Test the support of the %F format directive.  */
+
+  /* A positive number.  */
+  my_printf ("%F %d\n", 12.75, 33, 44, 55);
+
+  /* A larger positive number.  */
+  my_printf ("%F %d\n", 1234567.0, 33, 44, 55);
+
+  /* A negative number.  */
+  my_printf ("%F %d\n", -0.03125, 33, 44, 55);
+
+  /* Positive zero.  */
+  my_printf ("%F %d\n", 0.0, 33, 44, 55);
+
+  /* FLAG_ZERO.  */
+  my_printf ("%015F %d\n", 1234.0, 33, 44, 55);
+
+  /* Precision.  */
+  my_printf ("%.F %d\n", 1234.0, 33, 44, 55);
+
+  /* A positive number.  */
+  my_printf ("%LF %d\n", 12.75L, 33, 44, 55);
+
+  /* A larger positive number.  */
+  my_printf ("%LF %d\n", 1234567.0L, 33, 44, 55);
+
+  /* A negative number.  */
+  my_printf ("%LF %d\n", -0.03125L, 33, 44, 55);
+
+  /* Positive zero.  */
+  my_printf ("%LF %d\n", 0.0L, 33, 44, 55);
+
+  /* FLAG_ZERO.  */
+  my_printf ("%015LF %d\n", 1234.0L, 33, 44, 55);
+
+  /* Precision.  */
+  my_printf ("%.LF %d\n", 1234.0L, 33, 44, 55);
 
   /* Test the support of the POSIX/XSI format strings with positions.  */