diff --git a/includes/format-switching.yml b/includes/format-switching.yml new file mode 100644 index 0000000000000000000000000000000000000000..d807d7ed17270e461b681e11949be98c065bd6ac --- /dev/null +++ b/includes/format-switching.yml @@ -0,0 +1,100 @@ +format-switching-smoke-test: + extends: + - .test-job-linux + - .rules-merge-request-to-main + stage: test + needs: ["build-codec-linux-clang-make"] + tags: + - ivas-linux + script: + - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/print-common-info.sh + - | + if [ "$CI_PROJECT_ID" == "$PROJECT_ID_BASOP" ]; then + bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/basop/update-scripts-repo.sh + fi + - make -j IVAS_dec + - python3 -m pytest tests/format_switching/test_format_switching.py --html report.html --self-contained-html --junit-xml report.xml + timeout: "20 minutes" + artifacts: + when: always + paths: + - report.html + - report.xml + name: "$CI_JOB_NAME--$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--fmt-sw-smoketest" + expose_as: "fmt-sw-smoketest" + expire_in: "5 days" + +format-switching-compare-test: + extends: + - .test-job-linux + - .rules-merge-request-to-main + stage: compare + needs: ["build-codec-linux-clang-make"] + tags: + - ivas-linux + script: + - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/print-common-info.sh + - | + if [ "$CI_PROJECT_ID" == "$PROJECT_ID_BASOP" ]; then + bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/basop/update-scripts-repo.sh + fi + + - git checkout $CI_MERGE_REQUEST_TARGET_BRANCH_NAME + - make -j IVAS_dec + - mv IVAS_dec IVAS_dec_ref + - git checkout $CI_COMMIT_SHORT_SHA + - make clean + - make -j IVAS_dec + - python3 -m pytest tests/format_switching/test_format_switching.py --create_ref --ref_decoder_path ./IVAS_dec_ref + - python3 -m pytest tests/format_switching/test_format_switching.py --html report.html --self-contained-html --junit-xml report.xml --create_cut + timeout: "20 minutes" + artifacts: + when: always + paths: + - report.html + - report.xml + name: "$CI_JOB_NAME--$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--fmt-sw-compare" + expose_as: "fmt-sw-smoketest" + expire_in: "5 days" + +format-switching-sanitizers: + extends: + - .test-job-linux + - .rules-merge-request-to-main + stage: test + needs: ["build-codec-linux-clang-make"] + parallel: + matrix: + - SANITIZER: + - MSAN + - ASAN + - USAN + tags: + - ivas-linux + script: + - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/print-common-info.sh + - | + if [ "$CI_PROJECT_ID" == "$PROJECT_ID_BASOP" ]; then + bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/basop/update-scripts-repo.sh + fi + + - declare -A CLANG_NUM_4_SANITIZER + - CLANG_NUM_4_SANITIZER["MSAN"]=1 + - CLANG_NUM_4_SANITIZER["ASAN"]=2 + - CLANG_NUM_4_SANITIZER["USAN"]=3 + + - clang_num="${CLANG_NUM_4_SANITIZER[$SANITIZER]}" + + - make -j IVAS_dec CLANG=$clang_num + # TODO: for basop - ignorelist + - export UBSAN_OPTIONS=suppressions=scripts/ubsan.supp,report_error_type=1,print_stacktrace=1 + - python3 -m pytest tests/format_switching/test_format_switching.py --create_ref --ref_decoder_path ./IVAS_dec --html report.html --self-contained-html --junit-xml report.xml + timeout: "20 minutes" + artifacts: + when: always + paths: + - report.html + - report.xml + name: "$CI_JOB_NAME--$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--fmt-sw-sanitizers" + expose_as: "fmt-sw-smoketest" + expire_in: "5 days" diff --git a/main-float.yml b/main-float.yml index 1503dc2c9cbcfb8e0a5b73de5d67a2b05f5539ab..69dacf32149701ca0ae4c15fbbe17aa094abcda3 100644 --- a/main-float.yml +++ b/main-float.yml @@ -7,6 +7,7 @@ include: - local: includes/build-jobs.yml - local: includes/rules.yml - local: includes/check-first-frame-is-sid.yml + - local: includes/format-switching.yml default: # by default, we want all jobs to be interruptible, and we need to configure this explicitly