[libc][obvious] fix errno for 32 bit long test

one of the tests in StrtolTest.h is intended to detect that 32 bit longs
are handled correctly, but it wasn't using the correct value for errno
causing failures.

Differential Revision: https://reviews.llvm.org/D140577
This commit is contained in:
Michael Jones 2022-12-22 12:01:21 -08:00
parent 81d1b61e90
commit a484c9bd2e

View File

@ -70,9 +70,13 @@ struct StrtoTest : public __llvm_libc::testing::Test {
// wide, strtol will return LONG_MAX.
const char *bigger_number = "12345678900";
errno = 0;
ASSERT_EQ(func(bigger_number, &str_end, 10),
((sizeof(ReturnT) < 8) ? T_MAX : ReturnT(12345678900)));
ASSERT_EQ(errno, 0);
if constexpr (sizeof(ReturnT) < 8) {
ASSERT_EQ(func(bigger_number, &str_end, 10), T_MAX);
ASSERT_EQ(errno, ERANGE);
} else {
ASSERT_EQ(func(bigger_number, &str_end, 10), ReturnT(12345678900));
ASSERT_EQ(errno, 0);
}
EXPECT_EQ(str_end - bigger_number, ptrdiff_t(11));
const char *too_big_number = "123456789012345678901";