Browse Source

Merge pull request #73777 from myaaaaaaaaa/enable-tsan

Add a Linux ThreadSanitizer job to CI
Yuri Sizov 2 years ago
parent
commit
16a93563bf
2 changed files with 18 additions and 0 deletions
  1. 11 0
      .github/workflows/linux_builds.yml
  2. 7 0
      misc/error_suppressions/tsan.txt

+ 11 - 0
.github/workflows/linux_builds.yml

@@ -9,6 +9,7 @@ env:
   SCONSFLAGS: verbose=yes warnings=extra werror=yes module_text_server_fb_enabled=yes
   DOTNET_NOLOGO: true
   DOTNET_CLI_TELEMETRY_OPTOUT: true
+  TSAN_OPTIONS: suppressions=misc/error_suppressions/tsan.txt
 
 concurrency:
   group: ci-${{github.actor}}-${{github.head_ref || github.run_number}}-${{github.ref}}-linux
@@ -58,6 +59,16 @@ jobs:
             # Skip 2GiB artifact speeding up action.
             artifact: false
 
+          - name: Editor with ThreadSanitizer (target=editor, tests=yes, dev_build=yes, use_tsan=yes, use_llvm=yes, linker=lld)
+            cache-name: linux-editor-thread-sanitizer
+            target: editor
+            tests: true
+            sconsflags: dev_build=yes use_tsan=yes use_llvm=yes linker=lld
+            bin: "./bin/godot.linuxbsd.editor.dev.x86_64.llvm.san"
+            build-mono: false
+            # Skip 2GiB artifact speeding up action.
+            artifact: false
+
           - name: Template w/ Mono (target=template_release)
             cache-name: linux-template-mono
             target: template_release

+ 7 - 0
misc/error_suppressions/tsan.txt

@@ -0,0 +1,7 @@
+# See the below link for an explanation of this file's format
+# https://github.com/google/sanitizers/wiki/ThreadSanitizerSuppressions
+
+deadlock:tests/core/templates/test_command_queue.h
+deadlock:modules/text_server_adv/text_server_adv.cpp
+deadlock:modules/text_server_fb/text_server_fb.cpp
+