Skip to content

Commit fa7a194

Browse files
committed
github: run integration tests with sanitizers
Running with sanitizers in CI will help prevent us from introducing new memory safety errors.
1 parent 01f9fa5 commit fa7a194

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed

.github/workflows/ci.yaml

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -400,6 +400,56 @@ jobs:
400400
sed -i 's/VALGRIND=0/VALGRIND=1/g' config.vars
401401
poetry run pytest tests/ -vvv -n 3 ${PYTEST_OPTS} ${{ matrix.PYTEST_OPTS }}
402402
403+
integration-sanitizers:
404+
name: Sanitizers Test CLN
405+
runs-on: ubuntu-22.04
406+
timeout-minutes: 120
407+
env:
408+
COMPAT: 1
409+
BITCOIN_VERSION: "25.0"
410+
ELEMENTS_VERSION: 22.0.2
411+
RUST_PROFILE: release
412+
ASAN: 1
413+
UBSAN: 1
414+
VALGRIND: 0
415+
DEVELOPER: 1
416+
SLOW_MACHINE: 1
417+
TEST_DEBUG: 1
418+
PYTEST_PAR: 4
419+
PYTEST_OPTS: --timeout=1800
420+
needs:
421+
- prebuild
422+
strategy:
423+
fail-fast: true
424+
steps:
425+
- name: Checkout
426+
uses: actions/checkout@v3
427+
428+
- name: Set up Python 3.7
429+
uses: actions/setup-python@v4
430+
with:
431+
python-version: 3.7
432+
433+
- name: Install dependencies
434+
run: |
435+
bash -x .github/scripts/setup.sh
436+
pip install -U pip wheel poetry
437+
# Export and then use pip to install into the current env
438+
poetry export -o /tmp/requirements.txt --without-hashes --with dev
439+
pip install -r /tmp/requirements.txt
440+
441+
- name: Install bitcoind
442+
run: .github/scripts/install-bitcoind.sh
443+
444+
- name: Build
445+
run: |
446+
./configure CC=clang
447+
make -j $(nproc)
448+
449+
- name: Test
450+
run: |
451+
poetry run pytest tests/ -vvv -n ${PYTEST_PAR} ${PYTEST_OPTS}
452+
403453
gather:
404454
# A dummy task that depends on the full matrix of tests, and
405455
# signals successful completion. Used for the PR status to pass

0 commit comments

Comments
 (0)