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.
51 lines
1.6 KiB
C++
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
|