llvmbot wrote:

<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-compiler-rt-sanitizer

Author: Aiden Grossman (boomanaiden154)

<details>
<summary>Changes</summary>

This test used a for loop to implement retries and also did some trickery with 
PIDs.
For this test, just invoke bash for actually running the test given we need the 
PID,
and move the for loop into a separate shell script file that we can then invoke 
from
within the test. Normally it would make sense to rewrite such a script in 
Python, but
given this test does not have portability concerns only running on Darwin, it 
is fine
to use a shell script here given there is no other convenient alternative.


---
Full diff: https://github.com/llvm/llvm-project/pull/168656.diff


2 Files Affected:

- (added) compiler-rt/test/asan/TestCases/Darwin/Inputs/check-syslog.sh (+6) 
- (modified) 
compiler-rt/test/asan/TestCases/Darwin/duplicate_os_log_reports.cpp (+3-7) 


``````````diff
diff --git a/compiler-rt/test/asan/TestCases/Darwin/Inputs/check-syslog.sh 
b/compiler-rt/test/asan/TestCases/Darwin/Inputs/check-syslog.sh
new file mode 100755
index 0000000000000..8939ca7ca1564
--- /dev/null
+++ b/compiler-rt/test/asan/TestCases/Darwin/Inputs/check-syslog.sh
@@ -0,0 +1,6 @@
+#!/bin/sh
+for I in {1..3}; do \
+  log show --debug --last $((SECONDS + 30))s --predicate "processID == $1" 
--style syslog > $2; \
+  if grep -q "use-after-poison" $2; then break; fi; \
+  sleep 5; \
+done
diff --git 
a/compiler-rt/test/asan/TestCases/Darwin/duplicate_os_log_reports.cpp 
b/compiler-rt/test/asan/TestCases/Darwin/duplicate_os_log_reports.cpp
index 5a0353bfb1b31..6adca31745bfd 100644
--- a/compiler-rt/test/asan/TestCases/Darwin/duplicate_os_log_reports.cpp
+++ b/compiler-rt/test/asan/TestCases/Darwin/duplicate_os_log_reports.cpp
@@ -1,8 +1,8 @@
 // UNSUPPORTED: ios
 // REQUIRES: darwin_log_cmd
 // RUN: %clangxx_asan -fsanitize-recover=address %s -o %t
-// RUN: { %env_asan_opts=halt_on_error=0,log_to_syslog=1 %run %t > 
%t.process_output.txt 2>&1 & } \
-// RUN: ; export TEST_PID=$! ; wait ${TEST_PID}
+// RUN: bash -c "{ %env_asan_opts=halt_on_error=0,log_to_syslog=1 %run %t > 
%t.process_output.txt 2>&1 & } \
+// RUN: ; export TEST_PID=$! ; wait ${TEST_PID}; echo -n ${TEST_PID} > 
%t.test_pid"
 
 // Check process output.
 // RUN: FileCheck %s --check-prefixes CHECK,CHECK-PROC 
-input-file=%t.process_output.txt
@@ -10,11 +10,7 @@
 // Check syslog output. We filter recent system logs based on PID to avoid
 // getting the logs of previous test runs. Make some reattempts in case there
 // is a delay.
-// RUN: for I in {1..3}; do \
-// RUN:   log show --debug --last $((SECONDS + 30))s --predicate "processID == 
${TEST_PID}" --style syslog > %t.process_syslog_output.txt; \
-// RUN:   if grep -q "use-after-poison" %t.process_syslog_output.txt; then 
break; fi; \
-// RUN:   sleep 5; \
-// RUN: done
+// RUN: %S/Inputs/check-syslog.sh %{readfile:%t.test_pid} 
%t.process_syslog_output.txt
 // RUN: FileCheck %s -input-file=%t.process_syslog_output.txt
 #include <cassert>
 #include <cstdio>

``````````

</details>


https://github.com/llvm/llvm-project/pull/168656
_______________________________________________
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

Reply via email to