1// Test quarantine_size_mb (and the deprecated quarantine_size)
2// RUN: %clangxx_asan %s -o %t
3// RUN: %env_asan_opts=quarantine_size=10485760:verbosity=1:hard_rss_limit_mb=50 %run %t 2>&1 | FileCheck %s --check-prefix=Q10
4// RUN: %env_asan_opts=quarantine_size_mb=10:verbosity=1:hard_rss_limit_mb=50 %run %t 2>&1 | FileCheck %s --check-prefix=Q10
5// RUN: %env_asan_opts=quarantine_size_mb=10:quarantine_size=20:verbosity=1 not %run %t 2>&1 | FileCheck %s --check-prefix=BOTH
6// RUN: %env_asan_opts=quarantine_size_mb=1000:hard_rss_limit_mb=50 not %run %t 2>&1 | FileCheck %s --check-prefix=RSS_LIMIT
7// RUN: %env_asan_opts=hard_rss_limit_mb=20 not %run %t 2>&1 | FileCheck %s --check-prefix=RSS_LIMIT
8
9// https://github.com/google/sanitizers/issues/981
10// UNSUPPORTED: android-26
11
12#include <string.h>
13char *g;
14
15static const int kNumAllocs = 1 << 11;
16static const int kAllocSize = 1 << 20;
17
18int main() {
19 for (int i = 0; i < kNumAllocs; i++) {
20 g = new char[kAllocSize];
21 memset(s: g, c: -1, n: kAllocSize);
22 delete [] (g);
23 }
24}
25
26// Q10: quarantine_size_mb=10M
27// BOTH: please use either 'quarantine_size' (deprecated) or quarantine_size_mb, but not both
28// RSS_LIMIT: AddressSanitizer: hard rss limit exhausted
29

source code of compiler-rt/test/asan/TestCases/Linux/quarantine_size_mb.cpp