96
96
- name : " Pyarrow Nightly"
97
97
env_file : actions-311-pyarrownightly.yaml
98
98
pattern : " not slow and not network and not single_cpu"
99
+ - name : " ASAN / UBSAN"
100
+ env_file : actions-311-sanitizers.yaml
101
+ pattern : " not slow and not network and not single_cpu and not skip_ubsan"
102
+ asan_options : " ASAN_OPTIONS=detect_leaks=0"
103
+ preload : LD_PRELOAD=$(gcc -print-file-name=libasan.so)
104
+ meson_args : --config-settings=setup-args="-Db_sanitize=address,undefined"
105
+ cflags_adds : -fno-sanitize-recover=all
106
+ pytest_workers : -1 # disable pytest-xdist as it swallows stderr from ASAN
99
107
fail-fast : false
100
108
name : ${{ matrix.name || format('ubuntu-latest {0}', matrix.env_file) }}
101
109
env :
@@ -105,7 +113,7 @@ jobs:
105
113
PANDAS_COPY_ON_WRITE : ${{ matrix.pandas_copy_on_write || '0' }}
106
114
PANDAS_CI : ${{ matrix.pandas_ci || '1' }}
107
115
TEST_ARGS : ${{ matrix.test_args || '' }}
108
- PYTEST_WORKERS : ' auto'
116
+ PYTEST_WORKERS : ${{ matrix.pytest_workers || 'auto' }}
109
117
PYTEST_TARGET : ${{ matrix.pytest_target || 'pandas' }}
110
118
# Clipboard tests
111
119
QT_QPA_PLATFORM : offscreen
@@ -174,16 +182,25 @@ jobs:
174
182
- name : Build Pandas
175
183
id : build
176
184
uses : ./.github/actions/build_pandas
185
+ with :
186
+ meson_args : ${{ matrix.meson_args }}
187
+ cflags_adds : ${{ matrix.cflags_adds }}
177
188
178
189
- name : Test (not single_cpu)
179
190
uses : ./.github/actions/run-tests
180
191
if : ${{ matrix.name != 'Pypy' }}
192
+ with :
193
+ preload : ${{ matrix.preload }}
194
+ asan_options : ${{ matrix.asan_options }}
181
195
env :
182
196
# Set pattern to not single_cpu if not already set
183
197
PATTERN : ${{ env.PATTERN == '' && 'not single_cpu' || matrix.pattern }}
184
198
185
199
- name : Test (single_cpu)
186
200
uses : ./.github/actions/run-tests
201
+ with :
202
+ preload : ${{ matrix.preload }}
203
+ asan_options : ${{ matrix.asan_options }}
187
204
env :
188
205
PATTERN : ' single_cpu'
189
206
PYTEST_WORKERS : 0
0 commit comments