changeset 8486:2d233a65bb55

Split test-isnanl.c into test-isnanl-nolibm.c and test-isnanl.h.
author Bruno Haible <bruno@clisp.org>
date Thu, 22 Mar 2007 02:02:42 +0000
parents 0d224005c64a
children 4c66d0d5e296
files tests/test-isnanl-nolibm.c tests/test-isnanl.c tests/test-isnanl.h
diffstat 3 files changed, 97 insertions(+), 77 deletions(-) [+]
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/tests/test-isnanl-nolibm.c
@@ -0,0 +1,36 @@
+/* Test of isnanl() substitute.
+   Copyright (C) 2007 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007.  */
+
+#include <config.h>
+
+#if HAVE_LONG_DOUBLE
+
+#include "isnanl-nolibm.h"
+
+#include "test-isnanl.h"
+
+#else
+
+int
+main ()
+{
+  return 0;
+}
+
+#endif
deleted file mode 100644
--- a/tests/test-isnanl.c
+++ /dev/null
@@ -1,77 +0,0 @@
-/* Test of isnanl() substitute.
-   Copyright (C) 2007 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/* Written by Bruno Haible <bruno@clisp.org>, 2007.  */
-
-#include <config.h>
-
-#if HAVE_LONG_DOUBLE
-
-#include "isnanl.h"
-
-#include <limits.h>
-#include <stdlib.h>
-
-#define ASSERT(expr) if (!(expr)) abort ();
-
-int
-main ()
-{
-  /* Finite values.  */
-  ASSERT (!isnanl (3.141L));
-  ASSERT (!isnanl (3.141e30L));
-  ASSERT (!isnanl (3.141e-30L));
-  ASSERT (!isnanl (-2.718L));
-  ASSERT (!isnanl (-2.718e30L));
-  ASSERT (!isnanl (-2.718e-30L));
-  /* Infinite values.  */
-  ASSERT (!isnanl (1.0L / 0.0L));
-  ASSERT (!isnanl (-1.0L / 0.0L));
-  /* Quiet NaN.  */
-  ASSERT (isnanl (0.0L / 0.0L));
-#if defined LDBL_EXPBIT0_WORD && defined LDBL_EXPBIT0_BIT
-  /* Signalling NaN.  */
-  {
-    #define NWORDS \
-      ((sizeof (long double) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
-    typedef union { long double value; unsigned int word[NWORDS]; }
-            memory_long_double;
-    memory_long_double m;
-    m.value = 0.0L / 0.0L;
-# if LDBL_EXPBIT0_BIT > 0
-    m.word[LDBL_EXPBIT0_WORD] ^= (unsigned int) 1 << (LDBL_EXPBIT0_BIT - 1);
-# else
-    m.word[LDBL_EXPBIT0_WORD + (LDBL_EXPBIT0_WORD < NWORDS / 2 ? 1 : - 1)]
-      ^= (unsigned int) 1 << (sizeof (unsigned int) * CHAR_BIT - 1);
-# endif
-    m.word[LDBL_EXPBIT0_WORD + (LDBL_EXPBIT0_WORD < NWORDS / 2 ? 1 : - 1)]
-      |= (unsigned int) 1 << LDBL_EXPBIT0_BIT;
-    ASSERT (isnanl (m.value));
-  }
-#endif
-  return 0;
-}
-
-#else
-
-int
-main ()
-{
-  return 0;
-}
-
-#endif
new file mode 100644
--- /dev/null
+++ b/tests/test-isnanl.h
@@ -0,0 +1,61 @@
+/* Test of isnanl() substitute.
+   Copyright (C) 2007 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007.  */
+
+#include <limits.h>
+#include <stdlib.h>
+
+#define ASSERT(expr) if (!(expr)) abort ();
+
+int
+main ()
+{
+  /* Finite values.  */
+  ASSERT (!isnanl (3.141L));
+  ASSERT (!isnanl (3.141e30L));
+  ASSERT (!isnanl (3.141e-30L));
+  ASSERT (!isnanl (-2.718L));
+  ASSERT (!isnanl (-2.718e30L));
+  ASSERT (!isnanl (-2.718e-30L));
+  /* Infinite values.  */
+  ASSERT (!isnanl (1.0L / 0.0L));
+  ASSERT (!isnanl (-1.0L / 0.0L));
+  /* Quiet NaN.  */
+  ASSERT (isnanl (0.0L / 0.0L));
+#if defined LDBL_EXPBIT0_WORD && defined LDBL_EXPBIT0_BIT
+  /* Signalling NaN.  */
+  {
+    #define NWORDS \
+      ((sizeof (long double) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
+    typedef union { long double value; unsigned int word[NWORDS]; }
+            memory_long_double;
+    memory_long_double m;
+    m.value = 0.0L / 0.0L;
+# if LDBL_EXPBIT0_BIT > 0
+    m.word[LDBL_EXPBIT0_WORD] ^= (unsigned int) 1 << (LDBL_EXPBIT0_BIT - 1);
+# else
+    m.word[LDBL_EXPBIT0_WORD + (LDBL_EXPBIT0_WORD < NWORDS / 2 ? 1 : - 1)]
+      ^= (unsigned int) 1 << (sizeof (unsigned int) * CHAR_BIT - 1);
+# endif
+    m.word[LDBL_EXPBIT0_WORD + (LDBL_EXPBIT0_WORD < NWORDS / 2 ? 1 : - 1)]
+      |= (unsigned int) 1 << LDBL_EXPBIT0_BIT;
+    ASSERT (isnanl (m.value));
+  }
+#endif
+  return 0;
+}