2017-11-02 04:27:06 +08:00
|
|
|
// FIXME: This test infinite loops on darwin because it crashes
|
|
|
|
// printing a stack trace repeatedly
|
2018-09-07 12:28:54 +08:00
|
|
|
UNSUPPORTED: darwin
|
2017-11-02 04:27:06 +08:00
|
|
|
|
|
|
|
// Verifies lib/fuzzer/scripts/unbalanced_allocs.py script
|
|
|
|
|
|
|
|
RUN: %cpp_compiler %S/TraceMallocTest.cpp -o %t-TraceMallocTest
|
|
|
|
|
2018-09-07 12:28:54 +08:00
|
|
|
# Specify python because we can't use the shebang line on Windows.
|
2018-05-12 05:29:51 +08:00
|
|
|
RUN: %run %t-TraceMallocTest -seed=1 -trace_malloc=1 -runs=200 2>&1 | \
|
2021-02-17 00:34:35 +08:00
|
|
|
RUN: %python %libfuzzer_src/scripts/unbalanced_allocs.py --skip=5 | FileCheck %s
|
2017-11-02 04:27:06 +08:00
|
|
|
|
2018-05-12 05:29:51 +08:00
|
|
|
RUN: %run %t-TraceMallocTest -seed=1 -trace_malloc=2 -runs=200 2>&1 | \
|
2021-02-17 00:34:35 +08:00
|
|
|
RUN: %python %libfuzzer_src/scripts/unbalanced_allocs.py --skip=5 | FileCheck %s --check-prefixes=CHECK,CHECK2
|
2017-11-02 04:27:06 +08:00
|
|
|
|
|
|
|
CHECK: MallocFreeTracer: START
|
2018-09-07 12:28:54 +08:00
|
|
|
# Behavior of the format string "%p" is implementation defined. Account for the
|
|
|
|
# implementation on Windows and Linux.
|
|
|
|
CHECK: Unbalanced MALLOC[{{[0-9]+}}] [[PTR:(:?0x)?[0-9a-fA-F]+]] 4
|
2017-11-02 04:27:06 +08:00
|
|
|
CHECK2-NEXT: {{ #0 0x[0-9a-f]+ in }}
|
|
|
|
CHECK2-NEXT: {{ #1 0x[0-9a-f]+ in }}
|
|
|
|
CHECK2-NEXT: {{ #2 0x[0-9a-f]+ in }}
|
|
|
|
CHECK: MallocFreeTracer: STOP
|
|
|
|
|
|
|
|
CHECK: MallocFreeTracer: START
|
|
|
|
CHECK: Unbalanced FREE[{{[0-9]+}}] [[PTR]]
|
|
|
|
CHECK2-NEXT: {{ #0 0x[0-9a-f]+ in }}
|
|
|
|
CHECK2-NEXT: {{ #1 0x[0-9a-f]+ in }}
|
|
|
|
CHECK2-NEXT: {{ #2 0x[0-9a-f]+ in }}
|
|
|
|
CHECK: MallocFreeTracer: STOP
|