# temporary test job to see whether everything works with the docker runner
test-job-docker-runner:
stage:test
tags:
-docker
image:ubuntu
script:
-echo "This job tests something"
# template for all test jobs
.test-job:
@@ -60,112 +25,126 @@ test-job-docker-runner:
when:never
-when:on_success
# template for using an ubuntu 22.04 image in docker
.test-job-ubuntu:
# template test job on linux
.test-job-linux:
extends:.test-job
image:$CI_REGISTRY_IMAGE/ubuntu_22.04:latest
tags:
-exec::docker
-ivas-linux
before_script:
-if [ ! -d "$TESTV_DIR" ]; then mkdir -p $TESTV_DIR; fi
-cp -r scripts/testv/* $TESTV_DIR/
# build all components of the project, i.e. codec itself, the unittests, the prerenderer and the standalone version of the TD object renderer
.build-all-linux:
extends:.test-job-ubuntu
build-all-linux-make:
extends:.test-job-linux
rules:
-if:$CI_PIPELINE_SOURCE == 'merge_request_event'
stage:build
script:
-bash ci/build_all_linux.sh
.build-codec-instrumented-linux:
extends:.test-job-ubuntu
build-codec-linux-cmake:
extends:.test-job-linux
rules:
-if:$CI_PIPELINE_SOURCE == 'merge_request_event'
stage:build
script:
-bash ci/build_codec_instrumented.sh
-mkdir build
-cd build
-cmake ..
-make -j
build-codec-instrumented-linux:
extends:.test-job-linux
rules:
-if:$CI_PIPELINE_SOURCE == 'merge_request_event'
stage:build
script:
-bash ci/build_codec_instrumented_linux.sh
# make sure that the codec builds with msan, asan and usan
.build-codec-sanitizers-linux:
extends:.test-job-ubuntu
build-codec-sanitizers-linux:
extends:.test-job-linux
rules:
-if:$CI_PIPELINE_SOURCE == 'merge_request_event'
stage:build
script:
# need to patch PATH so that `clang` is available
-PATH=$PATH:/usr/lib/llvm-13/bin
-bash ci/build_codec_sanitizers_linux.sh
# test that runs all modes with 1s input signals
.codec-smoke-test:
extends:.test-job-ubuntu
codec-smoke-test:
extends:.test-job-linux
rules:
-if:$CI_PIPELINE_SOURCE == 'merge_request_event'
stage:test
tags:
-exec::docker
-res::ivas-testv
script:
-bash ci/smoke_test.sh
artifacts:
paths:
-summary.txt
-out/logs
# compare bit exactness between target and source branch
.self-test-on-merge-request:
extends:.test-job-ubuntu
self-test-on-merge-request:
extends:.test-job-linux
stage:compare
tags:
-exec::docker
-res::ivas-testv
rules:
-if:$CI_PIPELINE_SOURCE == 'merge_request_event'
script:
### build test binaries, clean for paranoia reasons
-make clean all
-mv IVAS_cod IVAS_cod_test
-mv IVAS_dec IVAS_dec_test
### build test binaries, initial clean for paranoia reasons
-make clean
-mkdir build
-cd build
-cmake ..
-make -j
-mv IVAS_cod ../IVAS_cod_test
-mv IVAS_dec ../IVAS_dec_test
-cd ..
-rm -rf build/*
### backup testvectors from source branch before switching to arget branch -> makes sure that up-to-date testv folder is used in case the branch makes changes to it
-cp -r scripts/testv scripts/testv.bak
### checkout version to compare against
# first delete local target branch to avoid conflicts when branch is cached and there are merge conflicts during fetching