From 56add5c19b6673c6cf0b9e65952205aed3292f74 Mon Sep 17 00:00:00 2001 From: Remi Gacogne Date: Tue, 15 Oct 2024 10:49:31 +0200 Subject: [PATCH] tasks: Properly convert sanitizers to meson --- .github/workflows/build-and-test-all.yml | 14 +++++++------- tasks.py | 21 ++++++++++++++++----- 2 files changed, 23 insertions(+), 12 deletions(-) diff --git a/.github/workflows/build-and-test-all.yml b/.github/workflows/build-and-test-all.yml index 90ae7443ed..11b99deb89 100644 --- a/.github/workflows/build-and-test-all.yml +++ b/.github/workflows/build-and-test-all.yml @@ -138,7 +138,7 @@ jobs: needs: get-runner-container-image strategy: matrix: - sanitizers: [ubsan+asan, tsan] + sanitizers: [asan+ubsan, tsan] features: [least, full] builder: [autotools, meson] exclude: @@ -217,7 +217,7 @@ jobs: strategy: matrix: builder: [autotools, meson] - sanitizers: [ubsan+asan, tsan] + sanitizers: [asan+ubsan, tsan] features: [least, full] exclude: - sanitizers: tsan @@ -537,7 +537,7 @@ jobs: runs-on: ubuntu-22.04 strategy: matrix: - sanitizers: [ubsan+asan, tsan] + sanitizers: [asan+ubsan, tsan] dist_name: [debian] pdns_repo_version: ['48'] container: @@ -583,7 +583,7 @@ jobs: runs-on: ubuntu-22.04 strategy: matrix: - sanitizers: [ubsan+asan, tsan] + sanitizers: [asan+ubsan, tsan] dist_name: [debian] pdns_repo_version: ['48'] container: @@ -632,7 +632,7 @@ jobs: runs-on: ubuntu-22.04 strategy: matrix: - sanitizers: [ubsan+asan, tsan] + sanitizers: [asan+ubsan, tsan] threads: [1, 2, 3, 4, 8] mthreads: [2048] shards: [1, 2, 1024] @@ -679,7 +679,7 @@ jobs: runs-on: ubicloud-standard-8-ubuntu-2404 strategy: matrix: - sanitizers: [ubsan+asan] # TSAN disabled for now + sanitizers: [asan+ubsan] # TSAN disabled for now threads: [8] mthreads: [2048] shards: [1024] @@ -723,7 +723,7 @@ jobs: runs-on: ubuntu-22.04 strategy: matrix: - sanitizers: [ubsan+asan, tsan] + sanitizers: [asan+ubsan, tsan] container: image: "${{ needs.get-runner-container-image.outputs.id }}:${{ needs.get-runner-container-image.outputs.tag }}" env: diff --git a/tasks.py b/tasks.py index 0d9de1cde3..218e53bbde 100644 --- a/tasks.py +++ b/tasks.py @@ -402,11 +402,22 @@ def ci_docs_add_ssh(c, ssh_key, host_key): def get_sanitizers(meson=False): sanitizers = os.getenv('SANITIZERS', '') if meson: - if sanitizers == 'ubsan+asan': - sanitizers='address,undefined' - if sanitizers == 'tsan': - sanitizers='thread' - return f'-D b_sanitize={sanitizers}' if sanitizers != '' else '' + subst = { + 'tsan': 'thread', + 'asan': 'address', + 'ubsan': 'undefined' + } + meson_sanitizers = '' + sanitizers = sanitizers.split('+') + for sanitizer in sanitizers: + if sanitizer in subst: + if meson_sanitizers != '': + meson_sanitizers = meson_sanitizers + ',' + meson_sanitizers = meson_sanitizers + subst[sanitizer] + else: + meson_sanitizers = meson_sanitizers + sanitizer + + return f'-D b_sanitize={meson_sanitizers}' if meson_sanitizers != '' else '' if sanitizers != '': sanitizers = sanitizers.split('+') sanitizers = ['--enable-' + sanitizer for sanitizer in sanitizers] -- 2.47.2