[libc-commits] [libc] 69bd7fa - [libc] Disable 'DecodeInOtherBases` test on GPU targets

Joseph Huber via libc-commits libc-commits at lists.llvm.org
Fri Jul 21 11:15:16 PDT 2023


Author: Joseph Huber
Date: 2023-07-21T13:15:09-05:00
New Revision: 69bd7fae2b037c6538d531f39c25c160d8e6ff87

URL: https://github.com/llvm/llvm-project/commit/69bd7fae2b037c6538d531f39c25c160d8e6ff87
DIFF: https://github.com/llvm/llvm-project/commit/69bd7fae2b037c6538d531f39c25c160d8e6ff87.diff

LOG: [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

Added: 
    

Modified: 
    libc/test/src/stdlib/StrtolTest.h

Removed: 
    


################################################################################
diff  --git a/libc/test/src/stdlib/StrtolTest.h b/libc/test/src/stdlib/StrtolTest.h
index 0bc71615e4c3cf..24726b418817d1 100644
--- a/libc/test/src/stdlib/StrtolTest.h
+++ b/libc/test/src/stdlib/StrtolTest.h
@@ -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 &&


        


More information about the libc-commits mailing list