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> |
13 | char *g; |
14 | |
15 | static const int kNumAllocs = 1 << 11; |
16 | static const int kAllocSize = 1 << 20; |
17 | |
18 | int 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 | |