[libc] Disable 'DecodeInOtherBases` test on GPU targets

This test is excessively slow on GPU targets, taking anywhere beween 5
and 60 seconds to complete each time it's run. See
https://lab.llvm.org/buildbot/#/builders/55/builds/52203/steps/12/logs/stdio
for an example on the NVPTX buildbot. Simply disable testing this on the
GPU for now.

Reviewed By: michaelrj

Differential Revision: https://reviews.llvm.org/D155979
This commit is contained in:
Joseph Huber 2023-07-21 11:18:13 -05:00
parent 65c9153cf0
commit 69bd7fae2b

View File

@ -8,6 +8,7 @@
#include "src/__support/CPP/limits.h"
#include "src/__support/CPP/type_traits.h"
#include "src/__support/macros/properties/architectures.h"
#include "src/errno/libc_errno.h"
#include "test/UnitTest/Test.h"
@ -198,6 +199,12 @@ struct StrtoTest : public __llvm_libc::testing::Test {
}
void DecodeInOtherBases(FunctionT func) {
// This test is excessively slow on the GPU, so we limit the innermost loop.
#if defined(LIBC_TARGET_ARCH_IS_GPU)
constexpr int limit = 0;
#else
constexpr int limit = 36;
#endif
char small_string[4] = {'\0', '\0', '\0', '\0'};
for (int base = 2; base <= 36; ++base) {
for (int first_digit = 0; first_digit <= 36; ++first_digit) {
@ -245,7 +252,7 @@ struct StrtoTest : public __llvm_libc::testing::Test {
small_string[0] = int_to_b36_char(first_digit);
for (int second_digit = 0; second_digit <= 36; ++second_digit) {
small_string[1] = int_to_b36_char(second_digit);
for (int third_digit = 0; third_digit <= 36; ++third_digit) {
for (int third_digit = 0; third_digit <= limit; ++third_digit) {
small_string[2] = int_to_b36_char(third_digit);
if (first_digit < base && second_digit < base &&