Skip to content

Commit 91c07c9

Browse files
committed
Reuse env var code in the tests, add test runner
1 parent 3c6da34 commit 91c07c9

File tree

4 files changed

+149
-181
lines changed

4 files changed

+149
-181
lines changed

.github/workflows/test-wheel-linux.yml

Lines changed: 16 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -154,57 +154,14 @@ jobs:
154154
dependent_exes: "jq wget"
155155

156156
- name: Set environment variables
157-
run: |
158-
PYTHON_VERSION_FORMATTED=$(echo '${{ matrix.PY_VER }}' | tr -d '.')
159-
if [[ "${{ inputs.host-platform }}" == linux* ]]; then
160-
REPO_DIR=$(pwd)
161-
elif [[ "${{ inputs.host-platform }}" == win* ]]; then
162-
PWD=$(pwd)
163-
REPO_DIR=$(cygpath -w $PWD)
164-
fi
165-
166-
BUILD_CUDA_MAJOR="$(cut -d '.' -f 1 <<< ${{ inputs.build-ctk-ver }})"
167-
TEST_CUDA_MAJOR="$(cut -d '.' -f 1 <<< ${{ matrix.CUDA_VER }})"
168-
if [[ $BUILD_CUDA_MAJOR != $TEST_CUDA_MAJOR ]]; then
169-
SKIP_CUDA_BINDINGS_TEST=1
170-
SKIP_CYTHON_TEST=1
171-
else
172-
SKIP_CUDA_BINDINGS_TEST=0
173-
BUILD_CUDA_MINOR="$(cut -d '.' -f 2 <<< ${{ inputs.build-ctk-ver }})"
174-
TEST_CUDA_MINOR="$(cut -d '.' -f 2 <<< ${{ matrix.CUDA_VER }})"
175-
if [[ $BUILD_CUDA_MINOR != $TEST_CUDA_MINOR ]]; then
176-
SKIP_CYTHON_TEST=1
177-
else
178-
SKIP_CYTHON_TEST=0
179-
fi
180-
fi
181-
182-
# We don't test compute-sanitizer on CTK<12 because backporting fixes is too much effort
183-
# We only test compute-sanitizer on python 3.12 arbitrarily; we don't need to use sanitizer on the entire matrix
184-
# Only local ctk installs have compute-sanitizer; there is not wheel for it
185-
if [[ "${{ inputs.python-version }}" == "3.12" && "${{ inputs.cuda-version }}" != "11.8.0" && "${{ inputs.local-ctk }}" == 1 ]]; then
186-
SETUP_SANITIZER=1
187-
echo "LATEST_CUDA_VERSION=$(bash .github/workflows/guess_latest.sh)" >> $GITHUB_ENV
188-
else
189-
SETUP_SANITIZER=0
190-
fi
191-
echo "SETUP_SANITIZER=${SETUP_SANITIZER}" >> $GITHUB_ENV
192-
193-
# make outputs from the previous job as env vars
194-
CUDA_CORE_ARTIFACT_BASENAME="cuda-core-python${PYTHON_VERSION_FORMATTED}-${{ inputs.host-platform }}"
195-
echo "PYTHON_VERSION_FORMATTED=${PYTHON_VERSION_FORMATTED}" >> $GITHUB_ENV
196-
echo "CUDA_CORE_ARTIFACT_BASENAME=${CUDA_CORE_ARTIFACT_BASENAME}" >> $GITHUB_ENV
197-
echo "CUDA_CORE_ARTIFACT_NAME=${CUDA_CORE_ARTIFACT_BASENAME}-${{ github.sha }}" >> $GITHUB_ENV
198-
echo "CUDA_CORE_ARTIFACTS_DIR=$(realpath "$REPO_DIR/cuda_core/dist")" >> $GITHUB_ENV
199-
echo "CUDA_CORE_CYTHON_TESTS_DIR=$(realpath "$REPO_DIR/cuda_core/tests/cython")" >> $GITHUB_ENV
200-
CUDA_BINDINGS_ARTIFACT_BASENAME="cuda-bindings-python${PYTHON_VERSION_FORMATTED}-cuda${{ inputs.build-ctk-ver }}-${{ inputs.host-platform }}"
201-
echo "CUDA_BINDINGS_ARTIFACT_BASENAME=${CUDA_BINDINGS_ARTIFACT_BASENAME}" >> $GITHUB_ENV
202-
echo "CUDA_BINDINGS_ARTIFACT_NAME=${CUDA_BINDINGS_ARTIFACT_BASENAME}-${{ github.sha }}" >> $GITHUB_ENV
203-
echo "CUDA_BINDINGS_ARTIFACTS_DIR=$(realpath "$REPO_DIR/cuda_bindings/dist")" >> $GITHUB_ENV
204-
echo "CUDA_BINDINGS_CYTHON_TESTS_DIR=$(realpath "$REPO_DIR/cuda_bindings/tests/cython")" >> $GITHUB_ENV
205-
206-
echo "SKIP_CUDA_BINDINGS_TEST=${SKIP_CUDA_BINDINGS_TEST}" >> $GITHUB_ENV
207-
echo "SKIP_CYTHON_TEST=${SKIP_CYTHON_TEST}" >> $GITHUB_ENV
157+
env:
158+
BUILD_CUDA_VER: ${{ inputs.build-ctk-ver }}
159+
CUDA_VER: ${{ matrix.CUDA_VER }}
160+
HOST_PLATFORM: ${{ inputs.host-platform }}
161+
LOCAL_CTK: ${{ matrix.LOCAL_CTK }}
162+
PY_VER: ${{ matrix.PY_VER }}
163+
SHA: ${{ github.sha }}
164+
run: ./ci/tools/env-vars test
208165

209166
- name: Download cuda-python build artifacts
210167
if: ${{ env.SKIP_CUDA_BINDINGS_TEST == '0'}}
@@ -343,50 +300,16 @@ jobs:
343300
344301
- name: Run cuda.bindings tests
345302
if: ${{ env.SKIP_CUDA_BINDINGS_TEST == '0' }}
346-
run: |
347-
pushd "${CUDA_BINDINGS_ARTIFACTS_DIR}"
348-
if [[ "${{ matrix.LOCAL_CTK }}" == 1 ]]; then
349-
ls $CUDA_PATH
350-
pip install $(ls *.whl)[test]
351-
else
352-
pip install $(ls *.whl)[all,test]
353-
fi
354-
popd
355-
356-
pushd ./cuda_bindings
357-
${SANITIZER_CMD} pytest -rxXs -v tests/
358-
if [[ "${SKIP_CYTHON_TEST}" == 0 ]]; then
359-
${SANITIZER_CMD} pytest -rxXs -v tests/cython
360-
fi
361-
popd
303+
env:
304+
CUDA_VER: ${{ matrix.CUDA_VER }}
305+
LOCAL_CTK: ${{ matrix.LOCAL_CTK }}
306+
run: run-tests bindings
362307

363308
- name: Run cuda.core tests
364-
run: |
365-
# If build/test majors match: cuda.bindings is installed in the previous step.
366-
# If mismatch: cuda.bindings is installed from the backport branch.
367-
if [[ "${SKIP_CUDA_BINDINGS_TEST}" == 1 ]]; then
368-
pushd "${CUDA_BINDINGS_ARTIFACTS_DIR}"
369-
if [[ "${{ matrix.LOCAL_CTK }}" == 1 ]]; then
370-
pip install *.whl
371-
else
372-
pip install $(ls *.whl)[all]
373-
fi
374-
popd
375-
fi
376-
TEST_CUDA_MAJOR="$(cut -d '.' -f 1 <<< ${{ matrix.CUDA_VER }})"
377-
pushd "${CUDA_CORE_ARTIFACTS_DIR}"
378-
pip install $(ls *.whl)["cu${TEST_CUDA_MAJOR}","test-cu${TEST_CUDA_MAJOR}"]
379-
popd
380-
381-
pushd ./cuda_core
382-
${SANITIZER_CMD} pytest -rxXs -v tests/
383-
384-
# Currently our CI always installs the latest bindings (from either major version).
385-
# This is not compatible with the test requirements.
386-
if [[ "${SKIP_CYTHON_TEST}" == 0 ]]; then
387-
${SANITIZER_CMD} pytest -rxXs -v tests/cython
388-
fi
389-
popd
309+
env:
310+
CUDA_VER: ${{ matrix.CUDA_VER }}
311+
LOCAL_CTK: ${{ matrix.LOCAL_CTK }}
312+
run: run-tests core
390313

391314
- name: Ensure cuda-python installable
392315
run: |

.github/workflows/test-wheel-windows.yml

Lines changed: 32 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -96,41 +96,30 @@ jobs:
9696
- name: Ensure GPU is working
9797
run: nvidia-smi
9898

99-
- name: Set environment variables
99+
- name: Install Git for Windows
100+
# the GPU runner image does not have Git Bash pre-installed...
101+
env:
102+
# doesn't seem there's an easy way to avoid hard-coding it?
103+
GFW_EXE_URL: https://github.com/git-for-windows/git/releases/download/v2.49.0.windows.1/PortableGit-2.49.0-64-bit.7z.exe
100104
run: |
101-
$PYTHON_VERSION_FORMATTED = '${{ matrix.PY_VER }}' -replace '\.'
102-
$REPO_DIR = $PWD.Path
103-
104-
$BUILD_CUDA_MAJOR = '${{ inputs.build-ctk-ver }}' -split '\.' | Select-Object -First 1
105-
$TEST_CUDA_MAJOR = '${{ matrix.CUDA_VER }}' -split '\.' | Select-Object -First 1
106-
if ($BUILD_CUDA_MAJOR -ne $TEST_CUDA_MAJOR) {
107-
$SKIP_CUDA_BINDINGS_TEST = 1
108-
$SKIP_CYTHON_TEST = 1
109-
} else {
110-
$SKIP_CUDA_BINDINGS_TEST = 0
111-
$BUILD_CUDA_MINOR = '${{ inputs.build-ctk-ver }}' -split '\.' | Select-Object -Skip 1 -First 1
112-
$TEST_CUDA_MINOR = '${{ matrix.CUDA_VER }}' -split '\.' | Select-Object -Skip 1 -First 1
113-
if ($BUILD_CUDA_MINOR -ne $TEST_CUDA_MINOR) {
114-
$SKIP_CYTHON_TEST = 1
115-
} else {
116-
$SKIP_CYTHON_TEST = 0
117-
}
118-
}
105+
Invoke-WebRequest -Uri "$env:GFW_EXE_URL" -OutFile "PortableGit.7z.exe"
106+
# Self-extracting, see https://gitforwindows.org/zip-archives-extracting-the-released-archives.html
107+
Start-Process .\PortableGit.7z.exe -Wait -Verbose -ArgumentList '-y -gm2'
108+
ls -l PortableGit
109+
echo "$((Get-Location).Path)\\PortableGit\\bin" >> $env:GITHUB_PATH
110+
$env:Path += ";$((Get-Location).Path)\\PortableGit\\bin"
111+
bash --version
119112
120-
# Make outputs from the previous job as env vars
121-
$CUDA_CORE_ARTIFACT_BASENAME = "cuda-core-python${PYTHON_VERSION_FORMATTED}-${{ inputs.host-platform }}"
122-
"PYTHON_VERSION_FORMATTED=${PYTHON_VERSION_FORMATTED}" >> $env:GITHUB_ENV
123-
"CUDA_CORE_ARTIFACT_BASENAME=${CUDA_CORE_ARTIFACT_BASENAME}" >> $env:GITHUB_ENV
124-
"CUDA_CORE_ARTIFACT_NAME=${CUDA_CORE_ARTIFACT_BASENAME}-${{ github.sha }}" >> $env:GITHUB_ENV
125-
"CUDA_CORE_ARTIFACTS_DIR=$($ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath("$REPO_DIR\cuda_core\dist"))" >> $env:GITHUB_ENV
126-
"CUDA_CORE_CYTHON_TESTS_DIR=$($ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath("$REPO_DIR\cuda_core\tests\cython"))" >> $env:GITHUB_ENV
127-
$CUDA_BINDINGS_ARTIFACT_BASENAME = "cuda-bindings-python${PYTHON_VERSION_FORMATTED}-cuda${{ inputs.build-ctk-ver }}-${{ inputs.host-platform }}"
128-
"CUDA_BINDINGS_ARTIFACT_BASENAME=${CUDA_BINDINGS_ARTIFACT_BASENAME}" >> $env:GITHUB_ENV
129-
"CUDA_BINDINGS_ARTIFACT_NAME=${CUDA_BINDINGS_ARTIFACT_BASENAME}-${{ github.sha }}" >> $env:GITHUB_ENV
130-
"CUDA_BINDINGS_ARTIFACTS_DIR=$($ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath("$REPO_DIR\cuda_bindings\dist"))" >> $env:GITHUB_ENV
131-
"CUDA_BINDINGS_CYTHON_TESTS_DIR=$($ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath("$REPO_DIR\cuda_bindings\tests\cython"))" >> $env:GITHUB_ENV
132-
"SKIP_CUDA_BINDINGS_TEST=${SKIP_CUDA_BINDINGS_TEST}" >> $env:GITHUB_ENV
133-
"SKIP_CYTHON_TEST=${SKIP_CYTHON_TEST}" >> $env:GITHUB_ENV
113+
- name: Set environment variables
114+
env:
115+
BUILD_CUDA_VER: ${{ inputs.build-ctk-ver }}
116+
CUDA_VER: ${{ matrix.CUDA_VER }}
117+
HOST_PLATFORM: ${{ inputs.host-platform }}
118+
LOCAL_CTK: ${{ matrix.LOCAL_CTK }}
119+
PY_VER: ${{ matrix.PY_VER }}
120+
SHA: ${{ github.sha }}
121+
shell: bash --noprofile --norc -xeuo pipefail {0}
122+
run: ./ci/tools/env-vars test
134123

135124
- name: Download cuda-python build artifacts
136125
if: ${{ env.SKIP_CUDA_BINDINGS_TEST == '0'}}
@@ -161,21 +150,6 @@ jobs:
161150
}
162151
gh --version
163152
164-
- name: Install Git for Windows
165-
# the GPU runner image does not have Git Bash pre-installed...
166-
if: ${{ matrix.LOCAL_CTK == '1' }}
167-
env:
168-
# doesn't seem there's an easy way to avoid hard-coding it?
169-
GFW_EXE_URL: https://github.com/git-for-windows/git/releases/download/v2.49.0.windows.1/PortableGit-2.49.0-64-bit.7z.exe
170-
run: |
171-
Invoke-WebRequest -Uri "$env:GFW_EXE_URL" -OutFile "PortableGit.7z.exe"
172-
# Self-extracting, see https://gitforwindows.org/zip-archives-extracting-the-released-archives.html
173-
Start-Process .\PortableGit.7z.exe -Wait -Verbose -ArgumentList '-y -gm2'
174-
ls -l PortableGit
175-
echo "$((Get-Location).Path)\\PortableGit\\bin" >> $env:GITHUB_PATH
176-
$env:Path += ";$((Get-Location).Path)\\PortableGit\\bin"
177-
bash --version
178-
179153
- name: Install zstd
180154
# the GPU runner image does not have zstd pre-installed... and it's needed by actions/cache
181155
if: ${{ matrix.LOCAL_CTK == '1' }}
@@ -278,48 +252,18 @@ jobs:
278252

279253
- name: Run cuda.bindings tests
280254
if: ${{ env.SKIP_CUDA_BINDINGS_TEST == '0' }}
281-
run: |
282-
Push-Location $env:CUDA_BINDINGS_ARTIFACTS_DIR
283-
if ('${{ matrix.LOCAL_CTK }}' -eq '1') {
284-
Get-ChildItem $env:CUDA_PATH
285-
echo $PATH
286-
pip install "$((Get-ChildItem -Filter *.whl).FullName)[test]"
287-
} else {
288-
pip install "$((Get-ChildItem -Filter *.whl).FullName)[all,test]"
289-
}
290-
Pop-Location
291-
292-
Push-Location ./cuda_bindings
293-
pytest -rxXs -v tests/
294-
if ($env:SKIP_CYTHON_TEST -eq '0') {
295-
pytest -rxXs -v tests/cython
296-
}
297-
Pop-Location
255+
env:
256+
CUDA_VER: ${{ matrix.CUDA_VER }}
257+
LOCAL_CTK: ${{ matrix.LOCAL_CTK }}
258+
shell: bash --noprofile --norc -xeuo pipefail {0}
259+
run: run-tests bindings
298260

299261
- name: Run cuda.core tests
300-
run: |
301-
# If build/test majors match: cuda.bindings is installed in the previous step.
302-
# If mismatch: cuda.bindings is installed from the backport branch.
303-
if ($env:SKIP_CUDA_BINDINGS_TEST -eq '1') {
304-
Push-Location $env:CUDA_BINDINGS_ARTIFACTS_DIR
305-
if ('${{ matrix.LOCAL_CTK }}' -eq '1') {
306-
pip install (Get-ChildItem -Filter *.whl).FullName
307-
} else {
308-
pip install "$((Get-ChildItem -Filter *.whl).FullName)[all]"
309-
}
310-
Pop-Location
311-
}
312-
$TEST_CUDA_MAJOR = '${{ matrix.CUDA_VER }}' -split '\.' | Select-Object -First 1
313-
Push-Location $env:CUDA_CORE_ARTIFACTS_DIR
314-
pip install "$((Get-ChildItem -Filter *.whl).FullName)[cu${TEST_CUDA_MAJOR},test-cu${TEST_CUDA_MAJOR}]"
315-
Pop-Location
316-
317-
Push-Location ./cuda_core
318-
pytest -rxXs -v tests/
319-
if ($env:SKIP_CYTHON_TEST -eq '0') {
320-
pytest -rxXs -v tests/cython
321-
}
322-
Pop-Location
262+
env:
263+
CUDA_VER: ${{ matrix.CUDA_VER }}
264+
LOCAL_CTK: ${{ matrix.LOCAL_CTK }}
265+
shell: bash --noprofile --norc -xeuo pipefail {0}
266+
run: run-tests core
323267

324268
- name: Ensure cuda-python installable
325269
run: |

ci/tools/env-vars

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,36 @@ echo "CUDA_BINDINGS_ARTIFACT_BASENAME=${CUDA_BINDINGS_ARTIFACT_BASENAME}" >> $GI
3939
echo "CUDA_BINDINGS_ARTIFACT_NAME=${CUDA_BINDINGS_ARTIFACT_BASENAME}-${SHA}" >> $GITHUB_ENV
4040
echo "CUDA_BINDINGS_ARTIFACTS_DIR=$(realpath "${REPO_DIR}/cuda_bindings/dist")" >> $GITHUB_ENV
4141
echo "CUDA_BINDINGS_CYTHON_TESTS_DIR=$(realpath "${REPO_DIR}/cuda_bindings/tests/cython")" >> $GITHUB_ENV
42+
echo "PYTHON_VERSION_FORMATTED=${PYTHON_VERSION_FORMATTED}" >> $GITHUB_ENV
4243

4344
if [[ "${1}" == "build" ]]; then
4445
echo "CIBW_BUILD=${CIBW_BUILD}" >> $GITHUB_ENV
46+
elif [[ "${1}" == "test" ]]; then
47+
BUILD_CUDA_MAJOR="$(cut -d '.' -f 1 <<< ${BUILD_CUDA_VER})"
48+
TEST_CUDA_MAJOR="$(cut -d '.' -f 1 <<< ${CUDA_VER})"
49+
if [[ ${BUILD_CUDA_MAJOR} != ${TEST_CUDA_MAJOR} ]]; then
50+
SKIP_CUDA_BINDINGS_TEST=1
51+
SKIP_CYTHON_TEST=1
52+
else
53+
SKIP_CUDA_BINDINGS_TEST=0
54+
BUILD_CUDA_MINOR="$(cut -d '.' -f 2 <<< ${BUILD_CUDA_VER})"
55+
TEST_CUDA_MINOR="$(cut -d '.' -f 2 <<< ${CUDA_VER})"
56+
if [[ ${BUILD_CUDA_MINOR} != ${TEST_CUDA_MINOR} ]]; then
57+
SKIP_CYTHON_TEST=1
58+
else
59+
SKIP_CYTHON_TEST=0
60+
fi
61+
fi
62+
# We don't test compute-sanitizer on CTK<12 because backporting fixes is too much effort
63+
# We only test compute-sanitizer on python 3.12 arbitrarily; we don't need to use sanitizer on the entire matrix
64+
# Only local ctk installs have compute-sanitizer; there is no wheel for it
65+
if [[ "${PY_VER}" == "3.12" && "${CUDA_VER}" != "11.8.0" && "${LOCAL_CTK}" == 1 && "${HOST_PLATFORM}" == linux* ]]; then
66+
SETUP_SANITIZER=1
67+
echo "LATEST_CUDA_VERSION=$(bash .github/workflows/guess_latest.sh)" >> $GITHUB_ENV
68+
else
69+
SETUP_SANITIZER=0
70+
fi
71+
echo "SETUP_SANITIZER=${SETUP_SANITIZER}" >> $GITHUB_ENV
72+
echo "SKIP_CUDA_BINDINGS_TEST=${SKIP_CUDA_BINDINGS_TEST}" >> $GITHUB_ENV
73+
echo "SKIP_CYTHON_TEST=${SKIP_CYTHON_TEST}" >> $GITHUB_ENV
4574
fi

ci/tools/run-tests

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
#!/usr/bin/env bash
2+
3+
# Copyright (c) 2025, NVIDIA CORPORATION & AFFILIATES. ALL RIGHTS RESERVED.
4+
#
5+
# SPDX-License-Identifier: Apache-2.0
6+
7+
# A utility script to install the correct packages and run the tests.
8+
9+
set -euo pipefail
10+
11+
# Check if the script was called with exactly 1 argument
12+
if [[ ${#} -ne 1 && ( "${1}" == "bindings" || "${1}" == "core" ) ]]; then
13+
echo "Error: This script requires exactly 1 argument (what is tested). You provided ${#}"
14+
echo "Usage: ${0} test_module[bindings or core]"
15+
exit 1
16+
fi
17+
18+
test_module=${1}
19+
20+
if [[ "${test_module}" == "bindings" ]]; then
21+
pushd "${CUDA_BINDINGS_ARTIFACTS_DIR}"
22+
echo "Installing bindings wheel"
23+
pwd
24+
ls
25+
if [[ "${LOCAL_CTK}" == 1 ]]; then
26+
ls "${CUDA_PATH}"
27+
pip install $(ls *.whl)[test]
28+
else
29+
pip install $(ls *.whl)[all,test]
30+
fi
31+
popd
32+
pushd ./cuda_bindings
33+
echo "Running bindinds tests"
34+
pwd
35+
${SANITIZER_CMD} pytest -rxXs -v tests/
36+
if [[ "${SKIP_CYTHON_TEST}" == 0 ]]; then
37+
${SANITIZER_CMD} pytest -rxXs -v tests/cython
38+
fi
39+
popd
40+
elif [[ "${test_module}" == "core" ]]; then
41+
# If build/test majors match: cuda.bindings is installed in the previous step.
42+
# If mismatch: cuda.bindings is installed from the backport branch.
43+
if [[ "${SKIP_CUDA_BINDINGS_TEST}" == 1 ]]; then
44+
pushd "${CUDA_BINDINGS_ARTIFACTS_DIR}"
45+
echo "Installing bindings wheel"
46+
pwd
47+
ls
48+
if [[ "${LOCAL_CTK}" == 1 ]]; then
49+
pip install *.whl
50+
else
51+
pip install $(ls *.whl)[all]
52+
fi
53+
popd
54+
fi
55+
TEST_CUDA_MAJOR="$(cut -d '.' -f 1 <<< ${CUDA_VER})"
56+
pushd "${CUDA_CORE_ARTIFACTS_DIR}"
57+
echo "Installing core wheel"
58+
pwd
59+
ls
60+
pip install $(ls *.whl)["cu${TEST_CUDA_MAJOR}","test-cu${TEST_CUDA_MAJOR}"]
61+
popd
62+
pushd ./cuda_core
63+
echo "Running core tests"
64+
pwd
65+
${SANITIZER_CMD} pytest -rxXs -v tests/
66+
# Currently our CI always installs the latest bindings (from either major version).
67+
# This is not compatible with the test requirements.
68+
if [[ "${SKIP_CYTHON_TEST}" == 0 ]]; then
69+
${SANITIZER_CMD} pytest -rxXs -v tests/cython
70+
fi
71+
popd
72+
fi

0 commit comments

Comments
 (0)