From 6f13f0b3fe57d2f59b8d456446fe87f3fef686d0 Mon Sep 17 00:00:00 2001 From: Caslyn Tonelli <6718161+Caslyn@users.noreply.github.com> Date: Tue, 18 Jun 2024 10:28:04 -0700 Subject: [PATCH] [scudo] Test secondary cache options only if enabled (#95872) Configs that use `MapAllocatorNoCache` for its secondary cache will return `false` if `setOption` is called with some [specific options](https://github.com/llvm/llvm-project/blob/main/compiler-rt/lib/scudo/standalone/secondary.h#L104), and this breaks with the `SecondaryOptions` test. This change will gate testing all `setOption` expectations for cache options only if the allocator cache is enabled. This will unblock [github.com/llvm/llvm-project/pull/95595 ](https://github.com/llvm/llvm-project/pull/95595) from merging into Fuchsia. --- .../lib/scudo/standalone/tests/secondary_test.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/compiler-rt/lib/scudo/standalone/tests/secondary_test.cpp b/compiler-rt/lib/scudo/standalone/tests/secondary_test.cpp index af69313214ea66..e74930148f25ee 100644 --- a/compiler-rt/lib/scudo/standalone/tests/secondary_test.cpp +++ b/compiler-rt/lib/scudo/standalone/tests/secondary_test.cpp @@ -191,12 +191,13 @@ TEST_F(MapAllocatorTest, SecondaryIterate) { } TEST_F(MapAllocatorTest, SecondaryOptions) { - // Attempt to set a maximum number of entries higher than the array size. - EXPECT_TRUE(Allocator->setOption(scudo::Option::MaxCacheEntriesCount, 4096U)); - - // Attempt to set an invalid (negative) number of entries - EXPECT_FALSE(Allocator->setOption(scudo::Option::MaxCacheEntriesCount, -1)); + // Test options that are only meaningful if the secondary cache is enabled. if (Allocator->canCache(0U)) { + // Attempt to set a maximum number of entries higher than the array size. + EXPECT_TRUE( + Allocator->setOption(scudo::Option::MaxCacheEntriesCount, 4096U)); + // Attempt to set an invalid (negative) number of entries + EXPECT_FALSE(Allocator->setOption(scudo::Option::MaxCacheEntriesCount, -1)); // Various valid combinations. EXPECT_TRUE(Allocator->setOption(scudo::Option::MaxCacheEntriesCount, 4U)); EXPECT_TRUE(