Andrew Haberlandt 65945ec2cc
[compiler-rt] [Darwin] Add darwin-remote feature for remote darwin test targets (#174905)
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>
2026-01-08 10:03:30 -08:00

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");
}