diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/lsan/TestCases/Darwin/dispatch.mm | 59 | ||||
-rw-r--r-- | test/lsan/TestCases/Darwin/lit.local.cfg | 9 | ||||
-rw-r--r-- | test/lsan/lit.common.cfg | 2 |
3 files changed, 1 insertions, 69 deletions
diff --git a/test/lsan/TestCases/Darwin/dispatch.mm b/test/lsan/TestCases/Darwin/dispatch.mm deleted file mode 100644 index 2472230d7..000000000 --- a/test/lsan/TestCases/Darwin/dispatch.mm +++ /dev/null @@ -1,59 +0,0 @@ -// Test for threads spawned with wqthread_start -// RUN: LSAN_BASE="report_objects=1" -// RUN: %clangxx_lsan %s -DDISPATCH_ASYNC -o %t-async -framework Foundation -// RUN: %clangxx_lsan %s -DDISPATCH_SYNC -o %t-sync -framework Foundation -// RUN: %env_lsan_opts=$LSAN_BASE not %run %t-async 2>&1 | FileCheck %s -// RUN: %env_lsan_opts=$LSAN_BASE not %run %t-sync 2>&1 | FileCheck %s - -#include <dispatch/dispatch.h> -#include <pthread.h> -#include <stdlib.h> - -#include "sanitizer_common/print_address.h" - -bool done = false; - -void worker_do_leak(int size) { - void *p = malloc(size); - print_address("Test alloc: ", 1, p); - done = true; -} - -#if DISPATCH_ASYNC -// Tests for the Grand Central Dispatch. See -// http://developer.apple.com/library/mac/#documentation/Performance/Reference/GCD_libdispatch_Ref/Reference/reference.html -// for the reference. -void TestGCDDispatch() { - dispatch_queue_t queue = dispatch_get_global_queue(0, 0); - dispatch_block_t block = ^{ - worker_do_leak(1337); - }; - // dispatch_async() runs the task on a worker thread that does not go through - // pthread_create(). We need to verify that LeakSanitizer notices that the - // thread has started. - dispatch_async(queue, block); - while (!done) - pthread_yield_np(); -} -#elif DISPATCH_SYNC -void TestGCDDispatch() { - dispatch_queue_t queue = dispatch_get_global_queue(2, 0); - dispatch_block_t block = ^{ - worker_do_leak(1337); - }; - // dispatch_sync() runs the task on a worker thread that does not go through - // pthread_create(). We need to verify that LeakSanitizer notices that the - // thread has started. - dispatch_sync(queue, block); -} -#endif - -int main() { - TestGCDDispatch(); - return 0; -} - -// CHECK: Test alloc: [[addr:0x[0-9,a-f]+]] -// CHECK: LeakSanitizer: detected memory leaks -// CHECK: [[addr]] (1337 bytes) -// CHECK: SUMMARY: {{(Leak|Address)}}Sanitizer: diff --git a/test/lsan/TestCases/Darwin/lit.local.cfg b/test/lsan/TestCases/Darwin/lit.local.cfg deleted file mode 100644 index a85dfcd24..000000000 --- a/test/lsan/TestCases/Darwin/lit.local.cfg +++ /dev/null @@ -1,9 +0,0 @@ -def getRoot(config): - if not config.parent: - return config - return getRoot(config.parent) - -root = getRoot(config) - -if root.host_os not in ['Darwin']: - config.unsupported = True diff --git a/test/lsan/lit.common.cfg b/test/lsan/lit.common.cfg index 610b1b1ad..309e8f27b 100644 --- a/test/lsan/lit.common.cfg +++ b/test/lsan/lit.common.cfg @@ -77,4 +77,4 @@ if not (supported_linux or supported_darwin): if re.search('mthumb', config.target_cflags) is not None: config.unsupported = True -config.suffixes = ['.c', '.cc', '.cpp', '.mm'] +config.suffixes = ['.c', '.cc', '.cpp'] |