[libunwind] cb055e5 - [libc++] Add a CI job running MSAN

Louis Dionne via cfe-commits cfe-commits at lists.llvm.org
Thu Mar 31 06:31:26 PDT 2022


Author: Louis Dionne
Date: 2022-03-31T09:31:22-04:00
New Revision: cb055e51f994806160465212ac100485dac48125

URL: https://github.com/llvm/llvm-project/commit/cb055e51f994806160465212ac100485dac48125
DIFF: https://github.com/llvm/llvm-project/commit/cb055e51f994806160465212ac100485dac48125.diff

LOG: [libc++] Add a CI job running MSAN

For some reason, we've been going without a MSAN CI job, even though
even run-buildbot defined a generic-msan job. This must have been an
oversight that went unnoticed. Thanks to @EricWF for the catch.

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

Added: 
    

Modified: 
    libcxx/utils/ci/buildkite-pipeline.yml
    libunwind/test/forceunwind.pass.cpp
    libunwind/test/libunwind_01.pass.cpp
    libunwind/test/libunwind_02.pass.cpp
    libunwind/test/remember_state_leak.pass.sh.s
    libunwind/test/signal_frame.pass.cpp
    libunwind/test/signal_unwind.pass.cpp
    libunwind/test/unwind_leaffunction.pass.cpp

Removed: 
    


################################################################################
diff  --git a/libcxx/utils/ci/buildkite-pipeline.yml b/libcxx/utils/ci/buildkite-pipeline.yml
index 7653ead09ae6c..5a6f36bea3c98 100644
--- a/libcxx/utils/ci/buildkite-pipeline.yml
+++ b/libcxx/utils/ci/buildkite-pipeline.yml
@@ -276,6 +276,20 @@ steps:
             limit: 2
       timeout_in_minutes: 120
 
+    - label: "MSAN"
+      command: "libcxx/utils/ci/run-buildbot generic-msan"
+      artifact_paths:
+        - "**/test-results.xml"
+        - "**/*.abilist"
+      agents:
+        queue: "libcxx-builders"
+        os: "linux"
+      retry:
+        automatic:
+          - exit_status: -1  # Agent was lost
+            limit: 2
+      timeout_in_minutes: 120
+
   # Tests with the various supported ways to build libc++.
   - label: "Bootstrapping build"
     command: "libcxx/utils/ci/run-buildbot bootstrapping-build"

diff  --git a/libunwind/test/forceunwind.pass.cpp b/libunwind/test/forceunwind.pass.cpp
index 466697264035b..af5f234b8da68 100644
--- a/libunwind/test/forceunwind.pass.cpp
+++ b/libunwind/test/forceunwind.pass.cpp
@@ -9,6 +9,9 @@
 
 // REQUIRES: linux
 
+// TODO: Figure out why this fails with Memory Sanitizer.
+// XFAIL: msan
+
 // Basic test for _Unwind_ForcedUnwind.
 // See libcxxabi/test/forced_unwind* tests too.
 

diff  --git a/libunwind/test/libunwind_01.pass.cpp b/libunwind/test/libunwind_01.pass.cpp
index e5737450a568f..d89f8d16ce70d 100644
--- a/libunwind/test/libunwind_01.pass.cpp
+++ b/libunwind/test/libunwind_01.pass.cpp
@@ -1,6 +1,9 @@
 // TODO: Investigate these failures on x86_64 macOS back deployment
 // UNSUPPORTED: target=x86_64-apple-darwin{{.+}}
 
+// TODO: Figure out why this fails with Memory Sanitizer.
+// XFAIL: msan
+
 #include <libunwind.h>
 #include <stdlib.h>
 #include <string.h>

diff  --git a/libunwind/test/libunwind_02.pass.cpp b/libunwind/test/libunwind_02.pass.cpp
index b188fad8ee5be..a4f47c521858a 100644
--- a/libunwind/test/libunwind_02.pass.cpp
+++ b/libunwind/test/libunwind_02.pass.cpp
@@ -1,3 +1,6 @@
+// TODO: Figure out why this fails with Memory Sanitizer.
+// XFAIL: msan
+
 #include <assert.h>
 #include <stdlib.h>
 #include <unwind.h>

diff  --git a/libunwind/test/remember_state_leak.pass.sh.s b/libunwind/test/remember_state_leak.pass.sh.s
index 590653e2b10de..a02c8213c669c 100644
--- a/libunwind/test/remember_state_leak.pass.sh.s
+++ b/libunwind/test/remember_state_leak.pass.sh.s
@@ -1,4 +1,8 @@
 # REQUIRES: target={{x86_64-.+-linux-gnu}}
+
+// Inline assembly isn't supported by Memory Sanitizer
+// UNSUPPORTED: msan
+
 # RUN: %{build} -no-pie
 # RUN: %{run}
 

diff  --git a/libunwind/test/signal_frame.pass.cpp b/libunwind/test/signal_frame.pass.cpp
index 85a883be4e5fe..d9fb439cd1e7f 100644
--- a/libunwind/test/signal_frame.pass.cpp
+++ b/libunwind/test/signal_frame.pass.cpp
@@ -12,6 +12,9 @@
 // TODO: Investigate this failure on macOS
 // XFAIL: target={{.+}}-apple-darwin{{.+}}
 
+// TODO: Figure out why this fails with Memory Sanitizer.
+// XFAIL: msan
+
 // UNSUPPORTED: libunwind-arm-ehabi
 
 // The AIX assembler does not support CFI directives, which

diff  --git a/libunwind/test/signal_unwind.pass.cpp b/libunwind/test/signal_unwind.pass.cpp
index c16adeb4d18cc..4f2e925349604 100644
--- a/libunwind/test/signal_unwind.pass.cpp
+++ b/libunwind/test/signal_unwind.pass.cpp
@@ -10,6 +10,9 @@
 // Ensure that the unwinder can cope with the signal handler.
 // REQUIRES: linux && (target={{aarch64-.+}} || target={{x86_64-.+}})
 
+// TODO: Figure out why this fails with Memory Sanitizer.
+// XFAIL: msan
+
 #include <assert.h>
 #include <dlfcn.h>
 #include <signal.h>

diff  --git a/libunwind/test/unwind_leaffunction.pass.cpp b/libunwind/test/unwind_leaffunction.pass.cpp
index 8ff21dd35449c..a112d755dfeed 100644
--- a/libunwind/test/unwind_leaffunction.pass.cpp
+++ b/libunwind/test/unwind_leaffunction.pass.cpp
@@ -10,6 +10,9 @@
 // Ensure that leaf function can be unwund.
 // REQUIRES: linux && (target={{aarch64-.+}} || target={{x86_64-.+}})
 
+// TODO: Figure out why this fails with Memory Sanitizer.
+// XFAIL: msan
+
 #include <assert.h>
 #include <dlfcn.h>
 #include <signal.h>


        


More information about the cfe-commits mailing list