needs: get-runner-container-image
strategy:
matrix:
- sanitizers: [ubsan+asan, tsan]
+ sanitizers: [asan+ubsan, tsan]
features: [least, full]
builder: [autotools, meson]
exclude:
strategy:
matrix:
builder: [autotools, meson]
- sanitizers: [ubsan+asan, tsan]
+ sanitizers: [asan+ubsan, tsan]
features: [least, full]
exclude:
- sanitizers: tsan
runs-on: ubuntu-22.04
strategy:
matrix:
- sanitizers: [ubsan+asan, tsan]
+ sanitizers: [asan+ubsan, tsan]
dist_name: [debian]
pdns_repo_version: ['48']
container:
runs-on: ubuntu-22.04
strategy:
matrix:
- sanitizers: [ubsan+asan, tsan]
+ sanitizers: [asan+ubsan, tsan]
dist_name: [debian]
pdns_repo_version: ['48']
container:
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]
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]
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:
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]