Skip to content

Commit

Permalink
[scudo] Skip AllocAfterFork test on machines with low max_map_count
Browse files Browse the repository at this point in the history
Reducing the number of iterations in that test with D111342 helped,
but the failure still occured flakily when the test is ran as part
of a large test suite.

Reducing further the number of iterations might not be good enough,
so we will skip the test if the `max_map_count` variable can be
read, and if lower than a given threshold.

Differential Revision: https://reviews.llvm.org/D111465
  • Loading branch information
Kostya Kortchinsky committed Oct 11, 2021
1 parent b4b7e60 commit 56a9eff
Showing 1 changed file with 17 additions and 0 deletions.
17 changes: 17 additions & 0 deletions compiler-rt/lib/scudo/standalone/tests/wrappers_cpp_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@

#include <atomic>
#include <condition_variable>
#include <fstream>
#include <memory>
#include <mutex>
#include <thread>
Expand Down Expand Up @@ -131,6 +132,22 @@ TEST(ScudoWrappersCppTest, ThreadedNew) {

#if !SCUDO_FUCHSIA
TEST(ScudoWrappersCppTest, AllocAfterFork) {
// This test can fail flakily when ran as a part of large number of
// other tests if the maxmimum number of mappings allowed is low.
// We tried to reduce the number of iterations of the loops with
// moderate success, so we will now skip this test under those
// circumstances.
if (SCUDO_LINUX) {
long MaxMapCount = 0;
// If the file can't be accessed, we proceed with the test.
std::ifstream Stream("/proc/sys/vm/max_map_count");
if (Stream.good()) {
Stream >> MaxMapCount;
if (MaxMapCount < 200000)
return;
}
}

std::atomic_bool Stop;

// Create threads that simply allocate and free different sizes.
Expand Down

0 comments on commit 56a9eff

Please sign in to comment.