77// ===----------------------------------------------------------------------===//
88
99#include " hdr/fenv_macros.h"
10+ #include " src/errno/libc_errno.h"
1011#include " src/math/acos.h"
1112#include " test/UnitTest/FPMatcher.h"
1213#include " test/UnitTest/Test.h"
@@ -19,10 +20,20 @@ TEST_F(LlvmLibcAcosTest, SpecialNumbers) {
1920 EXPECT_FP_EQ_ALL_ROUNDING (aNaN, LIBC_NAMESPACE::acos (aNaN));
2021 EXPECT_FP_EQ (0x1 .921fb54442d18p0, LIBC_NAMESPACE::acos (zero));
2122 EXPECT_FP_EQ (0x1 .921fb54442d18p0, LIBC_NAMESPACE::acos (neg_zero));
22- EXPECT_FP_EQ_ALL_ROUNDING (aNaN, LIBC_NAMESPACE::acos (inf));
23- EXPECT_FP_EQ_ALL_ROUNDING (aNaN, LIBC_NAMESPACE::acos (neg_inf));
24- EXPECT_FP_EQ_ALL_ROUNDING (aNaN, LIBC_NAMESPACE::acos (2.0 ));
25- EXPECT_FP_EQ_ALL_ROUNDING (aNaN, LIBC_NAMESPACE::acos (-2.0 ));
23+
24+ LIBC_NAMESPACE::libc_errno = 0 ;
25+ EXPECT_FP_EQ_WITH_EXCEPTION_ALL_ROUNDING (aNaN, LIBC_NAMESPACE::acos (inf),
26+ FE_INVALID);
27+ EXPECT_MATH_ERRNO (EDOM);
28+ EXPECT_FP_EQ_WITH_EXCEPTION_ALL_ROUNDING (aNaN, LIBC_NAMESPACE::acos (neg_inf),
29+ FE_INVALID);
30+ EXPECT_MATH_ERRNO (EDOM);
31+ EXPECT_FP_EQ_WITH_EXCEPTION_ALL_ROUNDING (aNaN, LIBC_NAMESPACE::acos (2.0 ),
32+ FE_INVALID);
33+ EXPECT_MATH_ERRNO (EDOM);
34+ EXPECT_FP_EQ_WITH_EXCEPTION_ALL_ROUNDING (aNaN, LIBC_NAMESPACE::acos (-2.0 ),
35+ FE_INVALID);
36+ EXPECT_MATH_ERRNO (EDOM);
2637 EXPECT_FP_EQ (zero, LIBC_NAMESPACE::acos (1.0 ));
2738 EXPECT_FP_EQ (0x1 .921fb54442d18p1, LIBC_NAMESPACE::acos (-1.0 ));
2839 EXPECT_FP_EQ (0x1 .921fb54442d18p0, LIBC_NAMESPACE::acos (0x1 .0p-54 ));
0 commit comments