From edf675dc9e4ca33d7e8abe64cb89287ecb466e12 Mon Sep 17 00:00:00 2001 From: Jan Kiene Date: Wed, 10 Dec 2025 12:56:22 +0100 Subject: [PATCH 1/5] add ubsan error parsing in codec-usan job --- main-float.yml | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/main-float.yml b/main-float.yml index c044823..8053b15 100644 --- a/main-float.yml +++ b/main-float.yml @@ -208,7 +208,7 @@ workflow: # to be reused in MR and LTV-scheduled sanitizer test jobs # set CLANG_NUM, SELFTEST_SANITY_TIMEOUT and SELF_TEST_PRM_FILE in before_script section -.sanitizer-selftest-anchor: +.sanitizer-selftest-template: script: - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/print-common-info.sh - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/copy-ltv-files-to-testv-dir.sh @@ -433,7 +433,7 @@ basop-compat-smoke-test: codec-msan: extends: - .sanitizer-selftest-on-mr - - .sanitizer-selftest-anchor + - .sanitizer-selftest-template tags: - ivas-linux-fast before_script: @@ -447,7 +447,7 @@ codec-msan: codec-asan: extends: - .sanitizer-selftest-on-mr - - .sanitizer-selftest-anchor + - .sanitizer-selftest-template before_script: - !reference [.job-linux, before_script] - CLANG_NUM=2 @@ -459,7 +459,7 @@ codec-asan: codec-usan: extends: - .sanitizer-selftest-on-mr - - .sanitizer-selftest-anchor + - .sanitizer-selftest-template tags: - ivas-linux-fast before_script: @@ -468,6 +468,24 @@ codec-usan: - SELFTEST_SANITY_TIMEOUT=$TESTCASE_TIMEOUT_STV_SANITIZERS - SELF_TEST_PRM_FILE="scripts/config/self_test.prm" - USE_LTV="" + after_script: + - python3 scripts/parse_usan_errors_from_xml_report.py report-junit-20ms.xml ubsan-errors-20ms.csv + - python3 scripts/parse_usan_errors_from_xml_report.py report-junit-10ms.xml ubsan-errors-10ms.csv + - python3 scripts/parse_usan_errors_from_xml_report.py report-junit-5ms.xml ubsan-errors-5ms.csv + artifacts: + name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results" + expire_in: 1 week + when: always + paths: + - report-junit-*.xml + - report-*.html + - ubsan-errors-*.csv + expose_as: "Sanitizer selftest results" + reports: + junit: + - report-junit-20ms.xml + - report-junit-10ms.xml + - report-junit-5ms.xml # compare bit-exactness between 5ms and 20 on the branch pytest-compare-20ms-and-5ms-rendering: @@ -1615,7 +1633,7 @@ test-branch-vs-input-passthrough: ltv-msan: extends: - .sanitizer-selftest-ltv - - .sanitizer-selftest-anchor + - .sanitizer-selftest-template rules: - if: $SANITIZER_SCHEDULE_E timeout: 5 hours @@ -1632,7 +1650,7 @@ ltv-msan: ltv-asan: extends: - .sanitizer-selftest-ltv - - .sanitizer-selftest-anchor + - .sanitizer-selftest-template rules: - if: $SANITIZER_SCHEDULE_E when: delayed @@ -1651,7 +1669,7 @@ ltv-asan: ltv-usan: extends: - .sanitizer-selftest-ltv - - .sanitizer-selftest-anchor + - .sanitizer-selftest-template rules: - if: $SANITIZER_SCHEDULE_E when: delayed -- GitLab From b5cefabf95e9d3aacf71c9d854bb83bd109611bd Mon Sep 17 00:00:00 2001 From: Jan Kiene Date: Wed, 10 Dec 2025 12:59:22 +0100 Subject: [PATCH 2/5] fix artifacts path --- main-float.yml | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/main-float.yml b/main-float.yml index 8053b15..4360ca8 100644 --- a/main-float.yml +++ b/main-float.yml @@ -476,10 +476,18 @@ codec-usan: name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results" expire_in: 1 week when: always + # NOTE: artifacts paths can't contain '*' when used with 'expose_as' + # --> reminder for next time you wanna make this more concise... paths: - - report-junit-*.xml - - report-*.html - - ubsan-errors-*.csv + - report-junit-20ms.xml + - report-junit-10ms.xml + - report-junit-5ms.xml + - report-20ms.html + - report-10ms.html + - report-5ms.html + - ubsan-errors-20ms.csv + - ubsan-errors-10ms.csv + - ubsan-errors-5ms.csv expose_as: "Sanitizer selftest results" reports: junit: -- GitLab From 606fba501e0c9a4686d71fb9d7976cc636b53074 Mon Sep 17 00:00:00 2001 From: Jan Kiene Date: Wed, 10 Dec 2025 14:07:34 +0100 Subject: [PATCH 3/5] remove suppression for usan --- main-float.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main-float.yml b/main-float.yml index 4360ca8..2d8dd1f 100644 --- a/main-float.yml +++ b/main-float.yml @@ -215,7 +215,7 @@ workflow: - make clean - make -j CLANG=$CLANG_NUM - testcase_timeout=$SELFTEST_SANITY_TIMEOUT - - export UBSAN_OPTIONS=suppressions=scripts/ubsan.supp,report_error_type=1,print_stacktrace=1 + - export UBSAN_OPTIONS=report_error_type=1,print_stacktrace=1 - exit_code20=0 - exit_code10=0 -- GitLab From 78e43450eaa2441e9d31c3247139d53b6b087f8f Mon Sep 17 00:00:00 2001 From: Jan Kiene Date: Wed, 10 Dec 2025 16:04:10 +0100 Subject: [PATCH 4/5] use script for MSAN as well --- main-float.yml | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/main-float.yml b/main-float.yml index 2d8dd1f..518e543 100644 --- a/main-float.yml +++ b/main-float.yml @@ -442,6 +442,32 @@ codec-msan: - SELFTEST_SANITY_TIMEOUT=$TESTCASE_TIMEOUT_STV_SANITIZERS - SELF_TEST_PRM_FILE="scripts/config/self_test.prm" - USE_LTV="" + after_script: + - python3 scripts/parse_sanitizer_errors_from_xml_report.py report-junit-20ms.xml ubsan-errors-20ms.csv + - python3 scripts/parse_sanitizer_errors_from_xml_report.py report-junit-10ms.xml ubsan-errors-10ms.csv + - python3 scripts/parse_sanitizer_errors_from_xml_report.py report-junit-5ms.xml ubsan-errors-5ms.csv + artifacts: + name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results" + expire_in: 1 week + when: always + # NOTE: artifacts paths can't contain '*' when used with 'expose_as' + # --> reminder for next time you wanna make this more concise... + paths: + - report-junit-20ms.xml + - report-junit-10ms.xml + - report-junit-5ms.xml + - report-20ms.html + - report-10ms.html + - report-5ms.html + - ubsan-errors-20ms.csv + - ubsan-errors-10ms.csv + - ubsan-errors-5ms.csv + expose_as: "Sanitizer selftest results" + reports: + junit: + - report-junit-20ms.xml + - report-junit-10ms.xml + - report-junit-5ms.xml # code selftest testvectors with address-sanitizer binaries codec-asan: @@ -469,9 +495,9 @@ codec-usan: - SELF_TEST_PRM_FILE="scripts/config/self_test.prm" - USE_LTV="" after_script: - - python3 scripts/parse_usan_errors_from_xml_report.py report-junit-20ms.xml ubsan-errors-20ms.csv - - python3 scripts/parse_usan_errors_from_xml_report.py report-junit-10ms.xml ubsan-errors-10ms.csv - - python3 scripts/parse_usan_errors_from_xml_report.py report-junit-5ms.xml ubsan-errors-5ms.csv + - python3 scripts/parse_sanitizer_errors_from_xml_report.py report-junit-20ms.xml ubsan-errors-20ms.csv + - python3 scripts/parse_sanitizer_errors_from_xml_report.py report-junit-10ms.xml ubsan-errors-10ms.csv + - python3 scripts/parse_sanitizer_errors_from_xml_report.py report-junit-5ms.xml ubsan-errors-5ms.csv artifacts: name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results" expire_in: 1 week -- GitLab From ffa4a454ecd2913b59a481e7cbd562f329950701 Mon Sep 17 00:00:00 2001 From: Jan Kiene Date: Fri, 12 Dec 2025 10:43:28 +0100 Subject: [PATCH 5/5] [revert-me] only build decoder with sanitizer to scrape errors from there --- main-float.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/main-float.yml b/main-float.yml index 518e543..5a2c0e0 100644 --- a/main-float.yml +++ b/main-float.yml @@ -213,7 +213,11 @@ workflow: - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/print-common-info.sh - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/copy-ltv-files-to-testv-dir.sh - make clean + - make IVAS_cod + - mv IVAS_cod IVAS_cod_tmp + - make clean - make -j CLANG=$CLANG_NUM + - mv IVAS_cod_tmp IVAS_cod - testcase_timeout=$SELFTEST_SANITY_TIMEOUT - export UBSAN_OPTIONS=report_error_type=1,print_stacktrace=1 -- GitLab