Aiden Grossman bf932867ac
[compiler-rt] Remove REQUIRES: shell lines (#173338)
The shell feature only implies that we are not running on Windows now
that the internal shell is enabled by default everywhere. Remove where
we can and rewrite to the more intentional UNSUPPORTED: system-windows
when we still need to prevent tests from running on Windows.
2025-12-23 12:04:13 -08:00

51 lines
1.6 KiB
C++

// FIXME: https://code.google.com/p/address-sanitizer/issues/detail?id=316
// UNSUPPORTED: ios, android
//
// RUN: %clangxx_asan %s -o %t
// Regular run.
// RUN: not %run %t 2> %t.out
// RUN: FileCheck %s --check-prefix=CHECK-ERROR < %t.out
// Good log_path.
// RUN: rm -f %t.log.*
// RUN: %env_asan_opts=log_path=%t.log not %run %t 2> %t.out
// RUN: FileCheck %s --check-prefix=CHECK-ERROR < %t.log.*
// Invalid log_path in existing directory.
// RUN: %env_asan_opts=log_path=/INVALID not %run %t 2> %t.out
// RUN: FileCheck %s --check-prefix=CHECK-INVALID < %t.out
// Directory of log_path can't be created.
// RUN: %env_asan_opts=log_path=/dev/null/INVALID not %run %t 2> %t.out
// RUN: FileCheck %s --check-prefix=CHECK-BAD-DIR < %t.out
// Too long log_path.
// RUN: %python -c "for i in range(0, 10000): print(i, end='')" > %t.long_log_path
// RUN: %env_asan_opts=log_path=%{readfile:%t.long_log_path} \
// RUN: not %run %t 2> %t.out
// RUN: FileCheck %s --check-prefix=CHECK-LONG < %t.out
// Run w/o errors should not produce any log.
// RUN: rm -f %t.log.*
// RUN: %env_asan_opts=log_path=%t.log %run %t ARG ARG ARG
// RUN: not cat %t.log.*
// FIXME: log_path is not supported on Windows yet.
// UNSUPPORTED: system-windows
#include <stdlib.h>
#include <string.h>
int main(int argc, char **argv) {
if (argc > 2) return 0;
char *x = (char*)malloc(10);
memset(x, 0, 10);
int res = x[argc * 10]; // BOOOM
free(x);
return res;
}
// CHECK-ERROR: ERROR: AddressSanitizer
// CHECK-INVALID: ERROR: Can't open file: /INVALID
// CHECK-BAD-DIR: ERROR: Can't create directory: /dev/null
// CHECK-LONG: ERROR: Path is too long: 01234