Some tests are already supported on "remote" devices and simulators. However, there is currently no way to distinguish a remote macOS host from a local one. This adds the darwin-remote feature which is common to all test targets which use a wrapper script (e.g. iossim_run.py). rdar://167735355 --------- Co-authored-by: Dan Blackwell <danblackwell95@gmail.com>
32 lines
1008 B
C++
32 lines
1008 B
C++
// RUN: %clangxx_asan %s -o %t
|
|
// RUN: %env_asan_opts=print_module_map=1 not %run %t 2>&1 | FileCheck %s
|
|
// RUN: %env_asan_opts=print_module_map=2 not %run %t 2>&1 | FileCheck %s
|
|
// RUN: %clangxx_asan %s -o %t -fsanitize-recover=address
|
|
// RUN: %env_asan_opts=print_module_map=2:halt_on_error=0 %run %t 2>&1 | FileCheck %s
|
|
|
|
// We can't run system("otool") on remote devices.
|
|
// UNSUPPORTED: darwin-remote
|
|
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
|
|
int main(int argc, char *argv[]) {
|
|
char buf[2048];
|
|
snprintf(buf, sizeof(buf), "otool -l %s 1>&2", argv[0]);
|
|
system(buf);
|
|
// CHECK: cmd LC_UUID
|
|
// CHECK-NEXT: cmdsize 24
|
|
// CHECK-NEXT: uuid [[UUID:[0-9A-F-]{36}]]
|
|
|
|
char *x = (char*)malloc(10 * sizeof(char));
|
|
free(x);
|
|
char mybuf[10];
|
|
memcpy(mybuf, x, 10);
|
|
// CHECK: {{.*ERROR: AddressSanitizer: heap-use-after-free on address}}
|
|
// CHECK: Process module map:
|
|
// CHECK: uuid.cpp.tmp {{.*}} <[[UUID]]>
|
|
|
|
fprintf(stderr, "Done.\n");
|
|
}
|