98 changes: 66 additions & 32 deletions libc/test/src/stdlib/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,96 +1,130 @@
add_libc_testsuite(libc_stdlib_unittests)

add_libc_unittest(
_Exit_test
atoi_test
SUITE
libc_stdlib_unittests
SRCS
_Exit_test.cpp
atoi_test.cpp
DEPENDS
libc.include.stdlib
libc.src.stdlib._Exit
libc.src.stdlib.atoi
)

add_libc_unittest(
abort_test
atol_test
SUITE
libc_stdlib_unittests
SRCS
abort_test.cpp
atol_test.cpp
DEPENDS
libc.include.stdlib
libc.include.signal
libc.src.stdlib.abort
libc.src.stdlib._Exit
libc.src.signal.raise
libc.src.stdlib.atol
)

add_libc_unittest(
abs_test
atoll_test
SUITE
libc_stdlib_unittests
SRCS
abs_test.cpp
atoll_test.cpp
DEPENDS
libc.src.stdlib.abs
libc.src.stdlib.atoll
)

add_libc_unittest(
labs_test
strtol_test
SUITE
libc_stdlib_unittests
SRCS
labs_test.cpp
strtol_test.cpp
DEPENDS
libc.src.stdlib.labs
libc.src.stdlib.strtol
)

add_libc_unittest(
llabs_test
strtoll_test
SUITE
libc_stdlib_unittests
SRCS
llabs_test.cpp
strtoll_test.cpp
DEPENDS
libc.src.stdlib.llabs
libc.src.stdlib.strtoll
)

add_libc_unittest(
strtol_test
strtoul_test
SUITE
libc_stdlib_unittests
SRCS
strtol_test.cpp
strtoul_test.cpp
DEPENDS
libc.src.stdlib.strtol
libc.src.stdlib.strtoul
)

add_libc_unittest(
strtoll_test
strtoull_test
SUITE
libc_stdlib_unittests
SRCS
strtoll_test.cpp
strtoull_test.cpp
DEPENDS
libc.src.stdlib.strtoll
libc.src.stdlib.strtoull
)

if(NOT LLVM_LIBC_FULL_BUILD)
return()
endif()

add_libc_unittest(
strtoul_test
_Exit_test
SUITE
libc_stdlib_unittests
SRCS
strtoul_test.cpp
_Exit_test.cpp
DEPENDS
libc.src.stdlib.strtoul
libc.include.stdlib
libc.src.stdlib._Exit
)

add_libc_unittest(
strtoull_test
abort_test
SUITE
libc_stdlib_unittests
SRCS
strtoull_test.cpp
abort_test.cpp
DEPENDS
libc.src.stdlib.strtoull
libc.include.stdlib
libc.include.signal
libc.src.stdlib.abort
libc.src.stdlib._Exit
libc.src.signal.raise
)

add_libc_unittest(
abs_test
SUITE
libc_stdlib_unittests
SRCS
abs_test.cpp
DEPENDS
libc.src.stdlib.abs
)

add_libc_unittest(
labs_test
SUITE
libc_stdlib_unittests
SRCS
labs_test.cpp
DEPENDS
libc.src.stdlib.labs
)

add_libc_unittest(
llabs_test
SUITE
libc_stdlib_unittests
SRCS
llabs_test.cpp
DEPENDS
libc.src.stdlib.llabs
)
2 changes: 1 addition & 1 deletion libc/test/src/stdlib/atol_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ TEST(LlvmLibcAToLTest, NonBaseTenWholeNumbers) {
ASSERT_EQ(__llvm_libc::atol(hexadecimal), 0l);

const char *octal = "010";
ASSERT_EQ(__llvm_libc::atol(hexadecimal), 10l);
ASSERT_EQ(__llvm_libc::atol(octal), 10l);

const char *decimal_point = "5.9";
ASSERT_EQ(__llvm_libc::atol(decimal_point), 5l);
Expand Down
8 changes: 4 additions & 4 deletions libc/test/src/stdlib/atoll_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -41,21 +41,21 @@ TEST(LlvmLibcAToLLTest, ValidNumbers) {
ASSERT_EQ(__llvm_libc::atoll(all_together), 110ll);

const char *biggest_long_long = "9223372036854775807";
ASSERT_EQ(__llvm_libc::atoll(biggest_int), LLONG_MAX);
ASSERT_EQ(__llvm_libc::atoll(biggest_long_long), LLONG_MAX);

const char *smallest_long_long = "-9223372036854775808";
ASSERT_EQ(__llvm_libc::atoll(smallest_int), LLONG_MIN);
ASSERT_EQ(__llvm_libc::atoll(smallest_long_long), LLONG_MIN);
}

TEST(LlvmLibcAToLLTest, NonBaseTenWholeNumbers) {
const char *hexadecimal = "0x10";
ASSERT_EQ(__llvm_libc::atoll(hexadecimal), 0ll);

const char *octal = "010";
ASSERT_EQ(__llvm_libc::atoll(hexadecimal), 10ll);
ASSERT_EQ(__llvm_libc::atoll(octal), 10ll);

const char *decimal_point = "5.9";
ASSERT_EQ(__llvm_libc::atol(decimal_point), 5l);
ASSERT_EQ(__llvm_libc::atoll(decimal_point), 5ll);
}

TEST(LlvmLibcAToLLTest, NotNumbers) {
Expand Down