ci: Run ASan/LSan and reorganize sanitizer and Valgrind jobs
This commit is contained in:
parent
bf0ac46066
commit
de4157f13a
64
.cirrus.yml
64
.cirrus.yml
@ -63,27 +63,8 @@ task:
|
|||||||
- env: {BUILD: distcheck, WITH_VALGRIND: no, CTIMETEST: no, BENCH: no}
|
- env: {BUILD: distcheck, WITH_VALGRIND: no, CTIMETEST: no, BENCH: no}
|
||||||
- env: {CPPFLAGS: -DDETERMINISTIC}
|
- env: {CPPFLAGS: -DDETERMINISTIC}
|
||||||
- env: {CFLAGS: -O0, CTIMETEST: no}
|
- env: {CFLAGS: -O0, CTIMETEST: no}
|
||||||
- env:
|
|
||||||
CFLAGS: "-fsanitize=undefined -fno-omit-frame-pointer"
|
|
||||||
LDFLAGS: "-fsanitize=undefined -fno-omit-frame-pointer"
|
|
||||||
UBSAN_OPTIONS: "print_stacktrace=1:halt_on_error=1"
|
|
||||||
ASM: x86_64
|
|
||||||
ECDH: yes
|
|
||||||
RECOVERY: yes
|
|
||||||
EXPERIMENTAL: yes
|
|
||||||
SCHNORRSIG: yes
|
|
||||||
CTIMETEST: no
|
|
||||||
- env: { ECMULTGENPRECISION: 2 }
|
- env: { ECMULTGENPRECISION: 2 }
|
||||||
- env: { ECMULTGENPRECISION: 8 }
|
- env: { ECMULTGENPRECISION: 8 }
|
||||||
- env:
|
|
||||||
RUN_VALGRIND: yes
|
|
||||||
ASM: x86_64
|
|
||||||
ECDH: yes
|
|
||||||
RECOVERY: yes
|
|
||||||
EXPERIMENTAL: yes
|
|
||||||
SCHNORRSIG: yes
|
|
||||||
EXTRAFLAGS: "--disable-openssl-tests"
|
|
||||||
BUILD:
|
|
||||||
matrix:
|
matrix:
|
||||||
- env:
|
- env:
|
||||||
CC: gcc
|
CC: gcc
|
||||||
@ -262,3 +243,48 @@ task:
|
|||||||
test_script:
|
test_script:
|
||||||
- ./ci/cirrus.sh
|
- ./ci/cirrus.sh
|
||||||
<< : *CAT_LOGS
|
<< : *CAT_LOGS
|
||||||
|
|
||||||
|
# Sanitizers
|
||||||
|
task:
|
||||||
|
container:
|
||||||
|
dockerfile: ci/linux-debian.Dockerfile
|
||||||
|
cpu: 1
|
||||||
|
memory: 1G
|
||||||
|
env:
|
||||||
|
ECDH: yes
|
||||||
|
RECOVERY: yes
|
||||||
|
EXPERIMENTAL: yes
|
||||||
|
SCHNORRSIG: yes
|
||||||
|
CTIMETEST: no
|
||||||
|
EXTRAFLAGS: "--disable-openssl-tests"
|
||||||
|
matrix:
|
||||||
|
- name: "Valgrind (memcheck)"
|
||||||
|
env:
|
||||||
|
RUN_VALGRIND: yes
|
||||||
|
- name: "UBSan, ASan, LSan"
|
||||||
|
env:
|
||||||
|
CFLAGS: "-fsanitize=undefined,address"
|
||||||
|
CFLAGS_FOR_BUILD: "-fsanitize=undefined,address"
|
||||||
|
UBSAN_OPTIONS: "print_stacktrace=1:halt_on_error=1"
|
||||||
|
ASAN_OPTIONS: "strict_string_checks=1:detect_stack_use_after_return=1:detect_leaks=1"
|
||||||
|
LSAN_OPTIONS: "use_unaligned=1"
|
||||||
|
# Try to cover many configurations with just a tiny matrix.
|
||||||
|
matrix:
|
||||||
|
- env:
|
||||||
|
ASM: auto
|
||||||
|
STATICPRECOMPUTATION: yes
|
||||||
|
- env:
|
||||||
|
ASM: no
|
||||||
|
STATICPRECOMPUTATION: no
|
||||||
|
ECMULTGENPRECISION: 2
|
||||||
|
matrix:
|
||||||
|
- env:
|
||||||
|
CC: clang
|
||||||
|
- env:
|
||||||
|
HOST: i686-linux-gnu
|
||||||
|
CC: i686-linux-gnu-gcc
|
||||||
|
<< : *MERGE_BASE
|
||||||
|
test_script:
|
||||||
|
- ./ci/cirrus.sh
|
||||||
|
<< : *CAT_LOGS
|
||||||
|
|
||||||
|
@ -7,11 +7,12 @@ RUN dpkg --add-architecture arm64
|
|||||||
RUN apt-get update
|
RUN apt-get update
|
||||||
|
|
||||||
# dkpg-dev: to make pkg-config work in cross-builds
|
# dkpg-dev: to make pkg-config work in cross-builds
|
||||||
|
# llvm: for llvm-symbolizer, which is used by clang's UBSan for symbolized stack traces
|
||||||
RUN apt-get install --no-install-recommends --no-upgrade -y \
|
RUN apt-get install --no-install-recommends --no-upgrade -y \
|
||||||
git ca-certificates \
|
git ca-certificates \
|
||||||
make automake libtool pkg-config dpkg-dev valgrind qemu-user \
|
make automake libtool pkg-config dpkg-dev valgrind qemu-user \
|
||||||
gcc clang libc6-dbg \
|
gcc clang llvm libc6-dbg \
|
||||||
gcc-i686-linux-gnu libc6-dev-i386-cross libc6-dbg:i386 \
|
gcc-i686-linux-gnu libc6-dev-i386-cross libc6-dbg:i386 libubsan1:i386 libasan5:i386 \
|
||||||
gcc-s390x-linux-gnu libc6-dev-s390x-cross libc6-dbg:s390x \
|
gcc-s390x-linux-gnu libc6-dev-s390x-cross libc6-dbg:s390x \
|
||||||
gcc-arm-linux-gnueabihf libc6-dev-armhf-cross libc6-dbg:armhf \
|
gcc-arm-linux-gnueabihf libc6-dev-armhf-cross libc6-dbg:armhf \
|
||||||
gcc-aarch64-linux-gnu libc6-dev-arm64-cross libc6-dbg:arm64 \
|
gcc-aarch64-linux-gnu libc6-dev-arm64-cross libc6-dbg:arm64 \
|
||||||
|
Loading…
x
Reference in New Issue
Block a user