mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-08 22:30:07 +00:00
69 lines
1.3 KiB
C
69 lines
1.3 KiB
C
#include <math.h>
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
|
|
static int
|
|
do_test (void)
|
|
{
|
|
static const char str[] = "NaN(blabla)something";
|
|
char *endp;
|
|
int result = 0;
|
|
|
|
double d = strtod (str, &endp);
|
|
if (!isnan (d))
|
|
{
|
|
puts ("strtod did not return NAN");
|
|
result = 1;
|
|
}
|
|
if (issignaling (d))
|
|
{
|
|
puts ("strtod returned a sNAN");
|
|
result = 1;
|
|
}
|
|
if (strcmp (endp, "something") != 0)
|
|
{
|
|
puts ("strtod set incorrect end pointer");
|
|
result = 1;
|
|
}
|
|
|
|
float f = strtof (str, &endp);
|
|
if (!isnanf (f))
|
|
{
|
|
puts ("strtof did not return NAN");
|
|
result = 1;
|
|
}
|
|
if (issignaling (f))
|
|
{
|
|
puts ("strtof returned a sNAN");
|
|
result = 1;
|
|
}
|
|
if (strcmp (endp, "something") != 0)
|
|
{
|
|
puts ("strtof set incorrect end pointer");
|
|
result = 1;
|
|
}
|
|
|
|
long double ld = strtold (str, &endp);
|
|
if (!isnan (ld))
|
|
{
|
|
puts ("strtold did not return NAN");
|
|
result = 1;
|
|
}
|
|
if (issignaling (ld))
|
|
{
|
|
puts ("strtold returned a sNAN");
|
|
result = 1;
|
|
}
|
|
if (strcmp (endp, "something") != 0)
|
|
{
|
|
puts ("strtold set incorrect end pointer");
|
|
result = 1;
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
#define TEST_FUNCTION do_test ()
|
|
#include "../test-skeleton.c"
|