mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-21 12:30:06 +00:00
stdio-common: Add a few double formatting tests [BZ #27245]
Checked on x86_64-linux-gnu. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
This commit is contained in:
parent
a4efbf4475
commit
5d5d71b898
@ -1,3 +1,4 @@
|
|||||||
|
#include <math.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
/* Tests taken from Cygnus C library. */
|
/* Tests taken from Cygnus C library. */
|
||||||
@ -4009,6 +4010,10 @@ sprint_double_type sprint_doubles[] =
|
|||||||
{__LINE__, 11.25, "11.2", "%.1f"},
|
{__LINE__, 11.25, "11.2", "%.1f"},
|
||||||
{__LINE__, 1.75, "1.8", "%.1f"},
|
{__LINE__, 1.75, "1.8", "%.1f"},
|
||||||
{__LINE__, 11.75, "11.8", "%.1f"},
|
{__LINE__, 11.75, "11.8", "%.1f"},
|
||||||
|
{__LINE__, -1.25, "-1.2", "%.1f"},
|
||||||
|
{__LINE__, -11.25, "-11.2", "%.1f"},
|
||||||
|
{__LINE__, -1.75, "-1.8", "%.1f"},
|
||||||
|
{__LINE__, -11.75, "-11.8", "%.1f"},
|
||||||
{__LINE__, 16, "0x1.0p+4", "%.1a"},
|
{__LINE__, 16, "0x1.0p+4", "%.1a"},
|
||||||
{__LINE__, 16, "0x1.00000000000000000000p+4", "%.20a"},
|
{__LINE__, 16, "0x1.00000000000000000000p+4", "%.20a"},
|
||||||
{__LINE__, 4444.88888888, "4445", "%2.F"},
|
{__LINE__, 4444.88888888, "4445", "%2.F"},
|
||||||
@ -4039,6 +4044,29 @@ sprint_double_type sprint_doubles[] =
|
|||||||
{__LINE__, 912.98, "913", "%.4g"},
|
{__LINE__, 912.98, "913", "%.4g"},
|
||||||
{__LINE__, 50.999999, "51", "%.5g"},
|
{__LINE__, 50.999999, "51", "%.5g"},
|
||||||
|
|
||||||
|
{__LINE__, 0.0, "0000.00000", "%010.5f"},
|
||||||
|
{__LINE__, 0.0, " 000.00000", "% 010.5f"},
|
||||||
|
{__LINE__, -0.0, "-000.00000", "% 010.5f"},
|
||||||
|
|
||||||
|
{__LINE__, NAN, "nan", "%f"},
|
||||||
|
{__LINE__, NAN, "+nan", "%+f"},
|
||||||
|
{__LINE__, NAN, " nan", "%010.2f"},
|
||||||
|
{__LINE__, NAN, " +nan", "%+010.2f"},
|
||||||
|
{__LINE__, -NAN, "-nan", "%f"},
|
||||||
|
{__LINE__, -NAN, "-nan", "%+f"},
|
||||||
|
{__LINE__, -NAN, " -nan", "%010.2f"},
|
||||||
|
{__LINE__, -NAN, " -nan", "%+010.2f"},
|
||||||
|
{__LINE__, NAN, "NAN", "%F"},
|
||||||
|
{__LINE__, INFINITY, "inf", "%f"},
|
||||||
|
{__LINE__, INFINITY, "+inf", "%+f"},
|
||||||
|
{__LINE__, INFINITY, " inf", "%010.2f"},
|
||||||
|
{__LINE__, INFINITY, " +inf", "%+010.2f"},
|
||||||
|
{__LINE__, -INFINITY, "-inf", "%f"},
|
||||||
|
{__LINE__, -INFINITY, "-inf", "%+f"},
|
||||||
|
{__LINE__, -INFINITY, " -inf", "%010.2f"},
|
||||||
|
{__LINE__, -INFINITY, " -inf", "%+010.2f"},
|
||||||
|
{__LINE__, INFINITY, "INF", "%F"},
|
||||||
|
|
||||||
{0 }
|
{0 }
|
||||||
|
|
||||||
};
|
};
|
||||||
@ -4090,7 +4118,7 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
sprintf (buffer, "%.999g", dptr->value);
|
sprintf (buffer, "%.999g", dptr->value);
|
||||||
sscanf (buffer, "%lg", &d);
|
sscanf (buffer, "%lg", &d);
|
||||||
if (dptr->value != d)
|
if (dptr->value != d && !isnan(d))
|
||||||
{
|
{
|
||||||
errcount++;
|
errcount++;
|
||||||
printf ("Error in line %d. String is \"%s\", value is %g.\n",
|
printf ("Error in line %d. String is \"%s\", value is %g.\n",
|
||||||
|
Loading…
Reference in New Issue
Block a user