[sanitizer] Try to fix LargeMmapAllocator test on Windows

This test attempts to allocate 100 512MB aligned pages of memory. This
is implemented in the usual way by allocating size + alignment bytes and
aligning the result. As a result, this test allocates 51.2GB of memory.
Windows allocates swap for all memory allocated, and our bots do not
have this much swap available.

Avoid the failure by using a more reasonable alignment, like 16MB, as we
do on 32-bit.

llvm-svn: 276779
This commit is contained in:
Reid Kleckner 2016-07-26 17:59:09 +00:00
parent 276b4e6428
commit cb42ea0b4f
1 changed files with 4 additions and 2 deletions

View File

@ -392,8 +392,10 @@ TEST(SanitizerCommon, LargeMmapAllocator) {
}
CHECK_EQ(a.TotalMemoryUsed(), 0);
// Test alignments.
uptr max_alignment = SANITIZER_WORDSIZE == 64 ? (1 << 28) : (1 << 24);
// Test alignments. Test with 512MB alignment on x64 non-Windows machines.
// Windows doesn't overcommit, and many machines do not have 51.2GB of swap.
uptr max_alignment =
(SANITIZER_WORDSIZE == 64 && !SANITIZER_WINDOWS) ? (1 << 28) : (1 << 24);
for (uptr alignment = 8; alignment <= max_alignment; alignment *= 2) {
const uptr kNumAlignedAllocs = 100;
for (uptr i = 0; i < kNumAlignedAllocs; i++) {