mirror of
https://github.com/ultravideo/uvg266.git
synced 2024-11-24 02:24:07 +00:00
5577c0d64b
Enables build and test with AddressSanitizer, ThreadSanitizer and UndefinedBehaviorSanitizer in Gitlab CI configuration. The LeakSanitizer component of AddressSanitizer is disabled because ptrace cannot be used inside the container.
68 lines
1.5 KiB
YAML
68 lines
1.5 KiB
YAML
# Use Kvazaar CI base image which includes the build tools and ffmpeg + hmdec in ${HOME}/bin
|
|
image: ultravideo/kvazaar_ci_base:latest
|
|
|
|
# Build kvazaar
|
|
build-kvazaar: &build-template
|
|
stage: build
|
|
script:
|
|
- ./autogen.sh
|
|
- ./configure --enable-werror || (cat config.log && false)
|
|
- make --jobs=8 V=1
|
|
artifacts:
|
|
paths:
|
|
- src/kvazaar
|
|
- src/.libs
|
|
expire_in: 1 week
|
|
|
|
build-asan:
|
|
<<: *build-template
|
|
variables:
|
|
CFLAGS: '-fsanitize=address'
|
|
# LeakSanitizer doesn't work inside the container because it requires
|
|
# ptrace so we disable it.
|
|
ASAN_OPTIONS: 'detect_leaks=0'
|
|
|
|
build-tsan:
|
|
<<: *build-template
|
|
variables:
|
|
CFLAGS: '-fsanitize=thread'
|
|
|
|
build-ubsan:
|
|
<<: *build-template
|
|
variables:
|
|
CFLAGS: '-fsanitize=undefined -fno-sanitize-recover=all -fno-sanitize=alignment'
|
|
|
|
.test-template: &test-template
|
|
stage: test
|
|
script:
|
|
- export PATH="${HOME}/bin:${PATH}"
|
|
- ./autogen.sh
|
|
- ./configure --enable-werror
|
|
- make check --jobs=8 VERBOSE=1
|
|
|
|
test-valgrind:
|
|
<<: *test-template
|
|
dependencies:
|
|
- build-kvazaar
|
|
variables:
|
|
KVAZAAR_OVERRIDE_angular_pred: generic
|
|
KVAZAAR_OVERRIDE_sao_band_ddistortion: generic
|
|
KVAZAAR_OVERRIDE_sao_edge_ddistortion: generic
|
|
KVAZAAR_OVERRIDE_calc_sao_edge_dir: generic
|
|
KVZ_TEST_VALGRIND: 1
|
|
|
|
test-asan:
|
|
<<: *test-template
|
|
dependencies:
|
|
- build-asan
|
|
|
|
test-tsan:
|
|
<<: *test-template
|
|
dependencies:
|
|
- build-tsan
|
|
|
|
test-ubsan:
|
|
<<: *test-template
|
|
dependencies:
|
|
- build-ubsan
|