Add another fma test.
[platform/upstream/glibc.git] / math / bug-nextafter.c
index 1d21841..d48bca2 100644 (file)
@@ -3,6 +3,13 @@
 #include <float.h>
 #include <stdlib.h>
 #include <stdio.h>
+#include <math-tests.h>
+
+#if !defined(FE_OVERFLOW) && !defined(FE_UNDERFLOW)
+/* If there's no support for the exceptions this test is checking,
+   then just return success and allow the test to be compiled.  */
+# define fetestexcept(e) 1
+#endif
 
 float zero = 0.0;
 float inf = INFINITY;
@@ -20,7 +27,7 @@ main (void)
       puts ("nextafterf+ failed");
       ++result;
     }
-  if (fetestexcept (FE_OVERFLOW) == 0)
+  if (EXCEPTION_TESTS (float) && fetestexcept (FE_OVERFLOW) == 0)
     {
       puts ("nextafterf+ did not overflow");
       ++result;
@@ -31,7 +38,7 @@ main (void)
       puts ("nextafterf- failed");
       ++result;
     }
-  if (fetestexcept (FE_OVERFLOW) == 0)
+  if (EXCEPTION_TESTS (float) && fetestexcept (FE_OVERFLOW) == 0)
     {
       puts ("nextafterf- did not overflow");
       ++result;
@@ -46,7 +53,7 @@ main (void)
       puts ("nextafterf+ failed");
       ++result;
     }
-  if (fetestexcept (FE_UNDERFLOW) == 0)
+  if (EXCEPTION_TESTS (float) && fetestexcept (FE_UNDERFLOW) == 0)
     {
       puts ("nextafterf+ did not underflow");
       ++result;
@@ -59,7 +66,7 @@ main (void)
       puts ("nextafterf- failed");
       ++result;
     }
-  if (fetestexcept (FE_UNDERFLOW) == 0)
+  if (EXCEPTION_TESTS (float) && fetestexcept (FE_UNDERFLOW) == 0)
     {
       puts ("nextafterf- did not underflow");
       ++result;
@@ -72,7 +79,7 @@ main (void)
       puts ("nextafterf+ failed");
       ++result;
     }
-  if (fetestexcept (FE_UNDERFLOW) == 0)
+  if (EXCEPTION_TESTS (float) && fetestexcept (FE_UNDERFLOW) == 0)
     {
       puts ("nextafterf+ did not underflow");
       ++result;
@@ -83,7 +90,7 @@ main (void)
       puts ("nextafterf+ failed");
       ++result;
     }
-  if (fetestexcept (FE_UNDERFLOW) == 0)
+  if (EXCEPTION_TESTS (float) && fetestexcept (FE_UNDERFLOW) == 0)
     {
       puts ("nextafterf+ did not underflow");
       ++result;
@@ -95,7 +102,7 @@ main (void)
       puts ("nextafterf- failed");
       ++result;
     }
-  if (fetestexcept (FE_UNDERFLOW) == 0)
+  if (EXCEPTION_TESTS (float) && fetestexcept (FE_UNDERFLOW) == 0)
     {
       puts ("nextafterf- did not underflow");
       ++result;
@@ -106,7 +113,7 @@ main (void)
       puts ("nextafterf- failed");
       ++result;
     }
-  if (fetestexcept (FE_UNDERFLOW) == 0)
+  if (EXCEPTION_TESTS (float) && fetestexcept (FE_UNDERFLOW) == 0)
     {
       puts ("nextafterf- did not underflow");
       ++result;
@@ -120,7 +127,7 @@ main (void)
       puts ("nextafter+ failed");
       ++result;
     }
-  if (fetestexcept (FE_OVERFLOW) == 0)
+  if (EXCEPTION_TESTS (double) && fetestexcept (FE_OVERFLOW) == 0)
     {
       puts ("nextafter+ did not overflow");
       ++result;
@@ -131,7 +138,7 @@ main (void)
       puts ("nextafter failed");
       ++result;
     }
-  if (fetestexcept (FE_OVERFLOW) == 0)
+  if (EXCEPTION_TESTS (double) && fetestexcept (FE_OVERFLOW) == 0)
     {
       puts ("nextafter- did not overflow");
       ++result;
@@ -146,7 +153,7 @@ main (void)
       puts ("nextafter+ failed");
       ++result;
     }
-  if (fetestexcept (FE_UNDERFLOW) == 0)
+  if (EXCEPTION_TESTS (double) && fetestexcept (FE_UNDERFLOW) == 0)
     {
       puts ("nextafter+ did not underflow");
       ++result;
@@ -159,7 +166,7 @@ main (void)
       puts ("nextafter- failed");
       ++result;
     }
-  if (fetestexcept (FE_UNDERFLOW) == 0)
+  if (EXCEPTION_TESTS (double) && fetestexcept (FE_UNDERFLOW) == 0)
     {
       puts ("nextafter- did not underflow");
       ++result;
@@ -172,7 +179,7 @@ main (void)
       puts ("nextafter+ failed");
       ++result;
     }
-  if (fetestexcept (FE_UNDERFLOW) == 0)
+  if (EXCEPTION_TESTS (double) && fetestexcept (FE_UNDERFLOW) == 0)
     {
       puts ("nextafter+ did not underflow");
       ++result;
@@ -183,7 +190,7 @@ main (void)
       puts ("nextafter+ failed");
       ++result;
     }
-  if (fetestexcept (FE_UNDERFLOW) == 0)
+  if (EXCEPTION_TESTS (double) && fetestexcept (FE_UNDERFLOW) == 0)
     {
       puts ("nextafter+ did not underflow");
       ++result;
@@ -195,7 +202,7 @@ main (void)
       puts ("nextafter- failed");
       ++result;
     }
-  if (fetestexcept (FE_UNDERFLOW) == 0)
+  if (EXCEPTION_TESTS (double) && fetestexcept (FE_UNDERFLOW) == 0)
     {
       puts ("nextafter- did not underflow");
       ++result;
@@ -206,7 +213,7 @@ main (void)
       puts ("nextafter- failed");
       ++result;
     }
-  if (fetestexcept (FE_UNDERFLOW) == 0)
+  if (EXCEPTION_TESTS (double) && fetestexcept (FE_UNDERFLOW) == 0)
     {
       puts ("nextafter- did not underflow");
       ++result;
@@ -221,7 +228,7 @@ main (void)
       puts ("nextafterl+ failed");
       ++result;
     }
-  if (fetestexcept (FE_OVERFLOW) == 0)
+  if (EXCEPTION_TESTS (long double) && fetestexcept (FE_OVERFLOW) == 0)
     {
       puts ("nextafterl+ did not overflow");
       ++result;
@@ -232,7 +239,7 @@ main (void)
       puts ("nextafterl failed");
       ++result;
     }
-  if (fetestexcept (FE_OVERFLOW) == 0)
+  if (EXCEPTION_TESTS (long double) && fetestexcept (FE_OVERFLOW) == 0)
     {
       puts ("nextafterl- did not overflow");
       ++result;
@@ -247,7 +254,7 @@ main (void)
       puts ("nextafterl+ failed");
       ++result;
     }
-  if (fetestexcept (FE_UNDERFLOW) == 0)
+  if (EXCEPTION_TESTS (long double) && fetestexcept (FE_UNDERFLOW) == 0)
     {
       puts ("nextafterl+ did not underflow");
       ++result;
@@ -260,7 +267,7 @@ main (void)
       puts ("nextafterl- failed");
       ++result;
     }
-  if (fetestexcept (FE_UNDERFLOW) == 0)
+  if (EXCEPTION_TESTS (long double) && fetestexcept (FE_UNDERFLOW) == 0)
     {
       puts ("nextafterl- did not underflow");
       ++result;
@@ -273,7 +280,7 @@ main (void)
       puts ("nextafterl+ failed");
       ++result;
     }
-  if (fetestexcept (FE_UNDERFLOW) == 0)
+  if (EXCEPTION_TESTS (long double) && fetestexcept (FE_UNDERFLOW) == 0)
     {
       puts ("nextafterl+ did not underflow");
       ++result;
@@ -284,7 +291,7 @@ main (void)
       puts ("nextafterl+ failed");
       ++result;
     }
-  if (fetestexcept (FE_UNDERFLOW) == 0)
+  if (EXCEPTION_TESTS (long double) && fetestexcept (FE_UNDERFLOW) == 0)
     {
       puts ("nextafterl+ did not underflow");
       ++result;
@@ -296,7 +303,7 @@ main (void)
       puts ("nextafterl- failed");
       ++result;
     }
-  if (fetestexcept (FE_UNDERFLOW) == 0)
+  if (EXCEPTION_TESTS (long double) && fetestexcept (FE_UNDERFLOW) == 0)
     {
       puts ("nextafterl- did not underflow");
       ++result;
@@ -307,7 +314,7 @@ main (void)
       puts ("nextafterl- failed");
       ++result;
     }
-  if (fetestexcept (FE_UNDERFLOW) == 0)
+  if (EXCEPTION_TESTS (long double) && fetestexcept (FE_UNDERFLOW) == 0)
     {
       puts ("nextafterl- did not underflow");
       ++result;