[llvm] 2150a6d - [Object][unittest] Skip tests on machines with non-64 bit size_t

James Henderson via llvm-commits llvm-commits at lists.llvm.org
Wed Mar 11 08:31:44 PDT 2020


Author: James Henderson
Date: 2020-03-11T15:31:30Z
New Revision: 2150a6d0d635dea12c23dc84f356deeacbc8fbc2

URL: https://github.com/llvm/llvm-project/commit/2150a6d0d635dea12c23dc84f356deeacbc8fbc2
DIFF: https://github.com/llvm/llvm-project/commit/2150a6d0d635dea12c23dc84f356deeacbc8fbc2.diff

LOG: [Object][unittest] Skip tests on machines with non-64 bit size_t

Speculative fix for build bot failures such as
http://lab.llvm.org:8011/builders/clang-cmake-armv7-quick/builds/14317/

Added: 
    

Modified: 
    llvm/unittests/Object/ArchiveTest.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/unittests/Object/ArchiveTest.cpp b/llvm/unittests/Object/ArchiveTest.cpp
index ef2553b1d137..467ae69a9eda 100644
--- a/llvm/unittests/Object/ArchiveTest.cpp
+++ b/llvm/unittests/Object/ArchiveTest.cpp
@@ -32,6 +32,8 @@ static const char ThinArchiveWithMember[] = "!<thin>\n"        // Global header
                                             "9999999999"       // Size
                                             "`\n";
 
+static const uint64_t MemberSize = 9999999999ull;
+
 struct ArchiveTestsFixture : Test {
   Expected<Archive::child_iterator> createChild(StringRef Src) {
     MemoryBufferRef Source(Src, "archive");
@@ -51,12 +53,17 @@ struct ArchiveTestsFixture : Test {
 };
 
 TEST_F(ArchiveTestsFixture, ArchiveChildGetSizeRegularArchive) {
+  // This test relies on a StringRef being able to hold the appropriate amount
+  // of data.
+  if (std::numeric_limits<StringRef::size_type>::max() < MemberSize)
+    return;
+
   auto Child = createChild(ArchiveWithMember);
   ASSERT_THAT_EXPECTED(Child, Succeeded());
 
   Expected<uint64_t> Size = (*Child)->getSize();
   ASSERT_THAT_EXPECTED(Size, Succeeded());
-  EXPECT_EQ(9999999999u, *Size);
+  EXPECT_EQ(MemberSize, *Size);
 }
 
 TEST_F(ArchiveTestsFixture, ArchiveChildGetSizeThinArchive) {
@@ -65,10 +72,15 @@ TEST_F(ArchiveTestsFixture, ArchiveChildGetSizeThinArchive) {
 
   Expected<uint64_t> Size = (*Child)->getSize();
   ASSERT_THAT_EXPECTED(Size, Succeeded());
-  EXPECT_EQ(9999999999u, *Size);
+  EXPECT_EQ(MemberSize, *Size);
 }
 
 TEST_F(ArchiveTestsFixture, ArchiveChildGetBuffer) {
+  // This test relies on a StringRef being able to hold the appropriate amount
+  // of data.
+  if (std::numeric_limits<StringRef::size_type>::max() < MemberSize)
+    return;
+
   auto Child = createChild(ArchiveWithMember);
   ASSERT_THAT_EXPECTED(Child, Succeeded());
 
@@ -76,6 +88,6 @@ TEST_F(ArchiveTestsFixture, ArchiveChildGetBuffer) {
   // Cannot use ASSERT_THAT_EXPECTED, as that will attempt to print the
   // StringRef (which has an invalid size).
   ASSERT_TRUE((bool)Buffer);
-  EXPECT_EQ(9999999999u, Buffer->size());
+  EXPECT_EQ(MemberSize, Buffer->size());
   EXPECT_EQ(ArchiveWithMember + sizeof(ArchiveWithMember) - 1, Buffer->data());
 }


        


More information about the llvm-commits mailing list