Blame stdlib/tst-strtod6.c

Packit Service 82fcde
#include <math.h>
Packit Service 82fcde
#include <stdio.h>
Packit Service 82fcde
#include <stdlib.h>
Packit Service 82fcde
#include <string.h>
Packit Service 82fcde
Packit Service 82fcde
#include "tst-strtod.h"
Packit Service 82fcde
Packit Service 82fcde
#define TEST_STRTOD(FSUF, FTYPE, FTOSTR, LSUF, CSUF)	  \
Packit Service 82fcde
static int						  \
Packit Service 82fcde
test_strto ## FSUF (const char str[])			  \
Packit Service 82fcde
{							  \
Packit Service 82fcde
  char *endp;						  \
Packit Service 82fcde
  int result = 0;					  \
Packit Service 82fcde
  puts (str);						  \
Packit Service 82fcde
  FTYPE d = strto ## FSUF (str, &endp);			  \
Packit Service 82fcde
  if (!isnan (d))					  \
Packit Service 82fcde
    {							  \
Packit Service 82fcde
      puts ("strto" #FSUF " did not return NAN");	  \
Packit Service 82fcde
      result = 1;					  \
Packit Service 82fcde
    }							  \
Packit Service 82fcde
  if (issignaling (d))					  \
Packit Service 82fcde
    {							  \
Packit Service 82fcde
      puts ("strto" #FSUF " returned a sNAN");		  \
Packit Service 82fcde
      result = 1;					  \
Packit Service 82fcde
    }							  \
Packit Service 82fcde
  if (strcmp (endp, "something") != 0)			  \
Packit Service 82fcde
    {							  \
Packit Service 82fcde
      puts ("strto" #FSUF " set incorrect end pointer");  \
Packit Service 82fcde
      result = 1;					  \
Packit Service 82fcde
    }							  \
Packit Service 82fcde
  return result;					  \
Packit Service 82fcde
}
Packit Service 82fcde
Packit Service 82fcde
GEN_TEST_STRTOD_FOREACH (TEST_STRTOD);
Packit Service 82fcde
Packit Service 82fcde
static int
Packit Service 82fcde
do_test (void)
Packit Service 82fcde
{
Packit Service 82fcde
  int result = 0;
Packit Service 82fcde
Packit Service 82fcde
  result |= STRTOD_TEST_FOREACH (test_strto, "NaN(blabla)something");
Packit Service 82fcde
  result |= STRTOD_TEST_FOREACH (test_strto, "NaN(1234)something");
Packit Service 82fcde
  /* UINT32_MAX.  */
Packit Service 82fcde
  result |= STRTOD_TEST_FOREACH (test_strto, "NaN(4294967295)something");
Packit Service 82fcde
  /* UINT64_MAX.  */
Packit Service 82fcde
  result |= STRTOD_TEST_FOREACH (test_strto,
Packit Service 82fcde
				 "NaN(18446744073709551615)something");
Packit Service 82fcde
  /* The case of zero is special in that "something" has to be done to make the
Packit Service 82fcde
     mantissa different from zero, which would mean infinity instead of
Packit Service 82fcde
     NaN.  */
Packit Service 82fcde
  result |= STRTOD_TEST_FOREACH (test_strto, "NaN(0)something");
Packit Service 82fcde
Packit Service 82fcde
  return result;
Packit Service 82fcde
}
Packit Service 82fcde
Packit Service 82fcde
#define TEST_FUNCTION do_test ()
Packit Service 82fcde
#include "../test-skeleton.c"