[asan][test] Fix SED issues with macOS (BSD)
authorRoy Sundahl <rsundahl@apple.com>
Mon, 28 Nov 2022 16:29:23 +0000 (08:29 -0800)
committerRoy Sundahl <rsundahl@apple.com>
Tue, 29 Nov 2022 17:47:23 +0000 (09:47 -0800)
SED differs between GNU and BSD in handling semicolon and the use of
'\n' in regex patterns. For macOS we can't use these GNU extensions.

rdar://102686948

Differential Revision: https://reviews.llvm.org/D138824

compiler-rt/test/asan/TestCases/Darwin/interface_symbols_darwin.cpp

index 9b25b00..2cedbc7 100644 (file)
 // RUN:  | sed -e "s/__asan_version_mismatch_check_v[0-9]+/__asan_version_mismatch_check/" \
 // RUN:  > %t.exports
 //
-// RUN: sed ':a;N;$!ba;s/([\n ]*/(/g'                                             \
+// note: SED differs between GNU and BSD in handling semicolon and the use of
+//       '\n' in regex patterns. For macOS we must change this GNU syntax:
+//           sed -e ':a' -e 'N' -e '$!ba'
+//       to a form that both GNU and BSD can agree upon (below).
+//
+// RUN:  sed -e ':a' -e 'N' -e '$!ba'                                             \
+// RUN:      -e 's/ //g'                                                          \
+// RUN:      -e ':b' -e 's/\n\n/\n/g' -e 'tb'                                     \
+// RUN:      -e 's/(\n/(/g'                                                       \
 // RUN:  %t.asan_interface.inc                                                    \
 // RUN:  %p/../../../../lib/ubsan/ubsan_interface.inc                             \
 // RUN:  %p/../../../../lib/sanitizer_common/sanitizer_common_interface.inc       \