|
19 | 19 | #include "hdr/math_macros.h" |
20 | 20 |
|
21 | 21 | #define TEST_SPECIAL(x, y, expected, dom_err, expected_exception) \ |
22 | | - LIBC_NAMESPACE::fputil::clear_except(FE_ALL_EXCEPT); \ |
23 | | - EXPECT_FP_EQ(expected, f(x, y)); \ |
24 | | - EXPECT_MATH_ERRNO((dom_err) ? EDOM : 0); \ |
25 | | - EXPECT_FP_EXCEPTION(expected_exception) |
| 22 | + do { \ |
| 23 | + LIBC_NAMESPACE::fputil::clear_except(FE_ALL_EXCEPT); \ |
| 24 | + EXPECT_FP_EQ(expected, f(x, y)); \ |
| 25 | + EXPECT_MATH_ERRNO((dom_err) ? EDOM : 0); \ |
| 26 | + if (expected_exception < FE_ALL_EXCEPT) \ |
| 27 | + EXPECT_FP_EXCEPTION(expected_exception); \ |
| 28 | + } while (0) |
26 | 29 |
|
27 | | -#define TEST_REGULAR(x, y, expected) TEST_SPECIAL(x, y, expected, false, 0) |
| 30 | +#define TEST_REGULAR(x, y, expected) \ |
| 31 | + TEST_SPECIAL(x, y, expected, false, FE_ALL_EXCEPT) |
28 | 32 |
|
29 | 33 | template <typename T> |
30 | 34 | class FmodTest : public LIBC_NAMESPACE::testing::FEnvSafeTest { |
@@ -212,7 +216,6 @@ class FmodTest : public LIBC_NAMESPACE::testing::FEnvSafeTest { |
212 | 216 |
|
213 | 217 | void testRegularExtreme(FModFunc f) { |
214 | 218 |
|
215 | | - TEST_REGULAR(0x1p127L, 0x3p-149L, 0x1p-149L); |
216 | 219 | TEST_REGULAR(0x1p127L, -0x3p-149L, 0x1p-149L); |
217 | 220 | TEST_REGULAR(0x1p127L, 0x3p-148L, 0x1p-147L); |
218 | 221 | TEST_REGULAR(0x1p127L, -0x3p-148L, 0x1p-147L); |
|
0 commit comments