From 9a7f6740cdd7340889fbf437a3eef153a935c2a7 Mon Sep 17 00:00:00 2001 From: Yixuan Cao Date: Sun, 5 Oct 2025 17:21:28 +0800 Subject: [PATCH] [compiler-rt][asan][tests] Reland: Stabilize wchar tests on Darwin/Android (test-only) Reland of #161624; depends on revert #162001. - Android: keep %env_asan_opts=log_to_stderr=1. - Darwin: use CHECK-DAG for the pre-crash marker and header; frame line matches function only. - Common: reuse [[ADDR]]. NFC: test-only. Signed-off-by: Yixuan Cao --- compiler-rt/test/asan/TestCases/wcscat.cpp | 4 ++-- compiler-rt/test/asan/TestCases/wcscpy.cpp | 4 ++-- compiler-rt/test/asan/TestCases/wcsncat.cpp | 4 ++-- compiler-rt/test/asan/TestCases/wcsncpy.cpp | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/compiler-rt/test/asan/TestCases/wcscat.cpp b/compiler-rt/test/asan/TestCases/wcscat.cpp index f0a8ec12580b3..1dde1262cd0f3 100644 --- a/compiler-rt/test/asan/TestCases/wcscat.cpp +++ b/compiler-rt/test/asan/TestCases/wcscat.cpp @@ -16,10 +16,10 @@ int main() { wchar_t badDst[9]; wcscpy(badDst, start); fprintf(stderr, "Good so far.\n"); - // CHECK: Good so far. + // CHECK-DAG: Good so far. fflush(stderr); wcscat(badDst, append); // Boom! - // CHECK: ERROR: AddressSanitizer: stack-buffer-overflow on address [[ADDR:0x[0-9a-f]+]] at pc {{0x[0-9a-f]+}} bp {{0x[0-9a-f]+}} sp {{0x[0-9a-f]+}} + // CHECK-DAG: ERROR: AddressSanitizer: stack-buffer-overflow on address [[ADDR:0x[0-9a-f]+]] at pc {{0x[0-9a-f]+}} bp {{0x[0-9a-f]+}} sp {{0x[0-9a-f]+}} // CHECK: WRITE of size {{[0-9]+}} at [[ADDR]] thread T0 // CHECK: #0 {{0x[0-9a-f]+}} in wcscat printf("Should have failed with ASAN error.\n"); diff --git a/compiler-rt/test/asan/TestCases/wcscpy.cpp b/compiler-rt/test/asan/TestCases/wcscpy.cpp index a280d29289e37..2553e428e5464 100644 --- a/compiler-rt/test/asan/TestCases/wcscpy.cpp +++ b/compiler-rt/test/asan/TestCases/wcscpy.cpp @@ -13,10 +13,10 @@ int main() { wchar_t badDst[7]; fprintf(stderr, "Good so far.\n"); - // CHECK: Good so far. + // CHECK-DAG: Good so far. fflush(stderr); wcscpy(badDst, src); // Boom! - // CHECK: ERROR: AddressSanitizer: stack-buffer-overflow on address [[ADDR:0x[0-9a-f]+]] at pc {{0x[0-9a-f]+}} bp {{0x[0-9a-f]+}} sp {{0x[0-9a-f]+}} + // CHECK-DAG: ERROR: AddressSanitizer: stack-buffer-overflow on address [[ADDR:0x[0-9a-f]+]] at pc {{0x[0-9a-f]+}} bp {{0x[0-9a-f]+}} sp {{0x[0-9a-f]+}} // CHECK: WRITE of size {{[0-9]+}} at [[ADDR]] thread T0 // CHECK: #0 {{0x[0-9a-f]+}} in wcscpy printf("Should have failed with ASAN error.\n"); diff --git a/compiler-rt/test/asan/TestCases/wcsncat.cpp b/compiler-rt/test/asan/TestCases/wcsncat.cpp index eb7d095e45c7a..fdf4247532e45 100644 --- a/compiler-rt/test/asan/TestCases/wcsncat.cpp +++ b/compiler-rt/test/asan/TestCases/wcsncat.cpp @@ -17,10 +17,10 @@ int main() { wcscpy(badDst, start); wcsncat(badDst, append, 1); fprintf(stderr, "Good so far.\n"); - // CHECK: Good so far. + // CHECK-DAG: Good so far. fflush(stderr); wcsncat(badDst, append, 3); // Boom! - // CHECK: ERROR: AddressSanitizer: stack-buffer-overflow on address [[ADDR:0x[0-9a-f]+]] at pc {{0x[0-9a-f]+}} bp {{0x[0-9a-f]+}} sp {{0x[0-9a-f]+}} + // CHECK-DAG: ERROR: AddressSanitizer: stack-buffer-overflow on address [[ADDR:0x[0-9a-f]+]] at pc {{0x[0-9a-f]+}} bp {{0x[0-9a-f]+}} sp {{0x[0-9a-f]+}} // CHECK: WRITE of size {{[0-9]+}} at [[ADDR]] thread T0 // CHECK: #0 {{0x[0-9a-f]+}} in wcsncat printf("Should have failed with ASAN error.\n"); diff --git a/compiler-rt/test/asan/TestCases/wcsncpy.cpp b/compiler-rt/test/asan/TestCases/wcsncpy.cpp index 1106bf5d264e5..70824e0d06c5a 100644 --- a/compiler-rt/test/asan/TestCases/wcsncpy.cpp +++ b/compiler-rt/test/asan/TestCases/wcsncpy.cpp @@ -14,11 +14,11 @@ int main() { wchar_t badDst[7]; wcsncpy(badDst, src, 7); // This should still work. fprintf(stderr, "Good so far.\n"); - // CHECK: Good so far. + // CHECK-DAG: Good so far. fflush(stderr); wcsncpy(badDst, src, 15); // Boom! - // CHECK: ERROR: AddressSanitizer: stack-buffer-overflow on address [[ADDR:0x[0-9a-f]+]] at pc {{0x[0-9a-f]+}} bp {{0x[0-9a-f]+}} sp {{0x[0-9a-f]+}} + // CHECK-DAG: ERROR: AddressSanitizer: stack-buffer-overflow on address [[ADDR:0x[0-9a-f]+]] at pc {{0x[0-9a-f]+}} bp {{0x[0-9a-f]+}} sp {{0x[0-9a-f]+}} // CHECK: WRITE of size {{[0-9]+}} at [[ADDR]] thread T0 // CHECK: #0 {{0x[0-9a-f]+}} in wcsncpy printf("Should have failed with ASAN error.\n");