From c005cc6989163c9a36dc5a9c4d1776075e4a4ef0 Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Wed, 5 Nov 2025 08:32:45 +0100 Subject: [PATCH 01/20] Add ivas-conformance to BASOP --- main-basop.yml | 31 ++++++++++++++++++ snippets/ivas-conformance.ps1 | 59 +++++++++++++++++++++++++++++++++++ 2 files changed, 90 insertions(+) create mode 100644 snippets/ivas-conformance.ps1 diff --git a/main-basop.yml b/main-basop.yml index 003f2d5..e3e072b 100644 --- a/main-basop.yml +++ b/main-basop.yml @@ -3171,6 +3171,37 @@ complexity-osba-in-binaural_room_ir-out: - *complexity-measurements-report-summary - exit $ret_val +ivas-conformance: + tags: + - ivas-windows + stage: test + timeout: "6 hours" + rules: + - if: ($CI_PIPELINE_SOURCE == 'web' || $CI_PIPELINE_SOURCE == 'trigger') && $MANUAL_PIPELINE_TYPE == 'ivas-conformance' + allow_failure: + exit_codes: + - 123 + script: + - *print-common-info-windows + - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/ivas-conformance.ps1 + artifacts: + name: "ivas-conformance-$CI_COMMIT_SHORT_SHA" + expire_in: 1 week + when: always + paths: + - report_cmd.html + - report-junit.xml + - report.html + - Readme_IVAS_dec.txt + - Readme_IVAS_enc.txt + - Readme_IVAS_rend.txt + - Readme_IVAS_JBM_dec.txt + - Readme_IVAS_ISAR_dec.txt + - Readme_IVAS_ISAR_post_rend.txt + expose_as: "Draft IVAS conformance" + reports: + junit: report-junit.xml + # job that sets up gitlab pages website pages: stage: deploy diff --git a/snippets/ivas-conformance.ps1 b/snippets/ivas-conformance.ps1 new file mode 100644 index 0000000..5d52bbc --- /dev/null +++ b/snippets/ivas-conformance.ps1 @@ -0,0 +1,59 @@ +MSBuild.exe -maxcpucount .\Workspace_msvc\Workspace_msvc.sln /property:Configuration=Debug +cp -force IVAS_cod.exe IVAS_cod_ref.exe +cp -force IVAS_dec.exe IVAS_dec_ref.exe +cp -force IVAS_rend.exe IVAS_rend_ref.exe +cp -force ISAR_post_rend.exe ISAR_post_rend_ref.exe + +# Reference creation +python scripts/prepare_combined_format_inputs.py +$TEST_SET = "tests/codec_be_on_mr_nonselection", "tests/renderer_short/test_renderer.py", "tests/split_rendering/test_split_rendering.py" +python -m pytest -q $TEST_SET -v -n auto --update_ref 1 --create_ref --keep_files --html=report_cmd.html --self-contained-html +python scripts/parse_commands.py report_cmd.html Readme_IVAS.txt + +# Copy input data and output ref data +if (Test-Path testvec) {rm -r -force testvec} +if (Test-Path TMP_DEC) {rm -r -force TMP_DEC} +if (Test-Path TMP_ENC) {rm -r -force TMP_ENC} +if (Test-Path TMP_JBM) {rm -r -force TMP_JBM} +if (Test-Path TMP_REND) {rm -r -force TMP_REND} +if (Test-Path TMP_ISAR_POST_REND) {rm -r -force TMP_ISAR_POST_REND} +if (Test-Path TMP_DEC_ISAR) {rm -r -force TMP_DEC_ISAR} +mkdir testvec +mkdir testvec/binauralRenderer_interface +mkdir testvec/testv +mkdir testvec/testv/renderer_short +mkdir testvec/testv/split_rendering +mkdir testvec/bin +cp -force -ErrorAction Ignore scripts/testv/* testvec/testv +cp -r -force -ErrorAction Ignore scripts/ls_layouts testvec +cp -r -force -ErrorAction Ignore scripts/object_edit testvec +cp -r -force -ErrorAction Ignore scripts/switchPaths testvec +cp -r -force -ErrorAction Ignore scripts/trajectories testvec +cp -r -force -ErrorAction Ignore scripts/binauralRenderer_interface/binaural_renderers_hrtf_data testvec/binauralRenderer_interface +cp -r -force -ErrorAction Ignore tests/ref testvec/testv/ref +cp -r -force -ErrorAction Ignore tests/renderer_short/ref testvec/testv/renderer_short/ref +cp -r -force -ErrorAction Ignore tests/split_rendering/ref testvec/testv/split_rendering/ref +cp -r -force -ErrorAction Ignore tests/split_rendering/renderer_configs testvec/testv/split_rendering/renderer_configs +cp -r -force -ErrorAction Ignore tests/split_rendering/error_patterns testvec/testv/split_rendering/error_patterns + +# Remove redundant files +python scripts/cleanup_26252.py + +# Copy test script files +cp -r -force -ErrorAction Ignore tests/conformance-test testvec/ +cp Readme_IVAS_dec.txt testvec +cp Readme_IVAS_enc.txt testvec +cp Readme_IVAS_rend.txt testvec +cp Readme_IVAS_JBM_dec.txt testvec +cp Readme_IVAS_ISAR_dec.txt testvec +cp Readme_IVAS_ISAR_post_rend.txt testvec +cp IVAS_cod.exe testvec/bin +cp IVAS_dec.exe testvec/bin +cp IVAS_rend.exe testvec/bin +cp ISAR_post_rend.exe testvec/bin + +# Test run generated scripts in testvec +cd testvec +python -m pytest conformance-test/test_26252.py --junit-xml=report-junit.xml --html=report.html --self-contained-html +mv report.html .. +mv report-junit.xml .. -- GitLab From a50a550d53e2e1e98457a8cfff4d81082f3fbb68 Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Wed, 5 Nov 2025 08:37:38 +0100 Subject: [PATCH 02/20] Set ivas-basop-windows tag for ivas-conformance --- main-basop.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main-basop.yml b/main-basop.yml index e3e072b..6aae1eb 100644 --- a/main-basop.yml +++ b/main-basop.yml @@ -3173,7 +3173,7 @@ complexity-osba-in-binaural_room_ir-out: ivas-conformance: tags: - - ivas-windows + - ivas-basop-windows stage: test timeout: "6 hours" rules: -- GitLab From 8c1139a5f1eec4018f92cff475f0014c84cd1438 Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Wed, 5 Nov 2025 08:46:17 +0100 Subject: [PATCH 03/20] Add manual job rule --- main-basop.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/main-basop.yml b/main-basop.yml index 6aae1eb..80d2b70 100644 --- a/main-basop.yml +++ b/main-basop.yml @@ -80,6 +80,9 @@ workflow: - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'test-long-self-test' variables: IVAS_PIPELINE_NAME: 'Test long self-test against main pipeline: $CI_COMMIT_BRANCH' + - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'ivas-conformance' + variables: + IVAS_PIPELINE_NAME: 'IVAS Conformance: $CI_COMMIT_BRANCH' - if: $CI_PIPELINE_SOURCE == 'schedule' # Scheduled in any branch variables: IVAS_PIPELINE_NAME: 'Scheduled pipeline: $CI_COMMIT_BRANCH' -- GitLab From 04e717668350252b2e886ae0855ebe54e895dce5 Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Wed, 5 Nov 2025 09:11:50 +0100 Subject: [PATCH 04/20] Change syntax for ps1 script call in ivas-conformance --- main-basop.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main-basop.yml b/main-basop.yml index 80d2b70..2c0f43d 100644 --- a/main-basop.yml +++ b/main-basop.yml @@ -3186,7 +3186,7 @@ ivas-conformance: - 123 script: - *print-common-info-windows - - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/ivas-conformance.ps1 + - ."$CI_PROJECT_DIR/ivas-codec-ci/snippets/ivas-conformance.ps1" artifacts: name: "ivas-conformance-$CI_COMMIT_SHORT_SHA" expire_in: 1 week -- GitLab From 935d4d0cde5ff5cc8cf6d1dd5b4d03e8229c6c56 Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Wed, 5 Nov 2025 09:14:47 +0100 Subject: [PATCH 05/20] Update rules for jobs not to be run for ivas-conformance --- main-basop.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/main-basop.yml b/main-basop.yml index 2c0f43d..7f4527e 100644 --- a/main-basop.yml +++ b/main-basop.yml @@ -152,6 +152,8 @@ workflow: .rules-pytest-to-ref-pre: rules: + - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == "ivas-conformance" + when: never - if: $CI_PIPELINE_SOURCE == 'web' - if: $CI_PIPELINE_SOURCE == 'schedule' - if: $CI_PIPELINE_SOURCE == 'push' @@ -953,7 +955,7 @@ pytest-to-ref-pre: # ensure that codec builds on linux build-codec-linux-make: rules: - - if: $MANUAL_PIPELINE_TYPE == 'long-term-logs' || $MANUAL_PIPELINE_TYPE == 'backup-long-term-logs' || $UPDATE_PAGES + - if: $MANUAL_PIPELINE_TYPE == 'long-term-logs' || $MANUAL_PIPELINE_TYPE == 'ivas-conformance' || $MANUAL_PIPELINE_TYPE == 'backup-long-term-logs' || $UPDATE_PAGES when: never - if: $CI_PIPELINE_SOURCE == 'web' - if: $CI_PIPELINE_SOURCE == 'push' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH @@ -973,7 +975,7 @@ build-codec-linux-cmake: rules: - if: $CI_MERGE_REQUEST_TITLE =~ /^(\[Draft\]|\(Draft\)|Draft:)/ when: never - - if: $MANUAL_PIPELINE_TYPE == 'long-term-logs' || $MANUAL_PIPELINE_TYPE == 'backup-long-term-logs' || $UPDATE_PAGES + - if: $MANUAL_PIPELINE_TYPE == 'long-term-logs' || $MANUAL_PIPELINE_TYPE == 'backup-long-term-logs' || $MANUAL_PIPELINE_TYPE == 'ivas-conformance' || $UPDATE_PAGES when: never - if: $CI_PIPELINE_SOURCE == 'push' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH - if: $CI_PIPELINE_SOURCE == 'merge_request_event' -- GitLab From f00e8d230d93ad026503489a502388db789d5c80 Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Wed, 5 Nov 2025 09:22:31 +0100 Subject: [PATCH 06/20] Set extends .job-windows in ivas-conformance --- main-basop.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/main-basop.yml b/main-basop.yml index 7f4527e..fdeddd1 100644 --- a/main-basop.yml +++ b/main-basop.yml @@ -3177,6 +3177,8 @@ complexity-osba-in-binaural_room_ir-out: - exit $ret_val ivas-conformance: + extends: + - .job-windows tags: - ivas-basop-windows stage: test -- GitLab From 2bc7755ec26b2a99244c330584a7e42267c8660f Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Wed, 5 Nov 2025 09:26:18 +0100 Subject: [PATCH 07/20] Exclude windows build from ivas-conformance pipeline --- main-basop.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main-basop.yml b/main-basop.yml index fdeddd1..dcab34c 100644 --- a/main-basop.yml +++ b/main-basop.yml @@ -1060,7 +1060,7 @@ build-codec-linux-debugging-make: build-codec-windows-msbuild: rules: - - if: $MANUAL_PIPELINE_TYPE == 'long-term-logs' || $MANUAL_PIPELINE_TYPE == 'backup-long-term-logs' || $UPDATE_PAGES + - if: $MANUAL_PIPELINE_TYPE == 'long-term-logs' || $MANUAL_PIPELINE_TYPE == 'backup-long-term-logs' || $MANUAL_PIPELINE_TYPE == 'ivas-conformance' || $UPDATE_PAGES when: never - if: $CI_PIPELINE_SOURCE == 'web' - if: $CI_PIPELINE_SOURCE == 'push' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH -- GitLab From c0139534f4da88e27a7d8c5aad6725d52bd78c1a Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Wed, 5 Nov 2025 10:56:07 +0100 Subject: [PATCH 08/20] Change to Linux conformance --- main-basop.yml | 37 ++++++++++-------- snippets/ivas-conformance.ps1 | 59 ---------------------------- snippets/ivas-conformance.sh | 72 +++++++++++++++++++++++++++++++++++ 3 files changed, 94 insertions(+), 74 deletions(-) delete mode 100644 snippets/ivas-conformance.ps1 create mode 100644 snippets/ivas-conformance.sh diff --git a/main-basop.yml b/main-basop.yml index dcab34c..22acfea 100644 --- a/main-basop.yml +++ b/main-basop.yml @@ -80,9 +80,9 @@ workflow: - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'test-long-self-test' variables: IVAS_PIPELINE_NAME: 'Test long self-test against main pipeline: $CI_COMMIT_BRANCH' - - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'ivas-conformance' + - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'ivas-conformance-linux' variables: - IVAS_PIPELINE_NAME: 'IVAS Conformance: $CI_COMMIT_BRANCH' + IVAS_PIPELINE_NAME: 'IVAS Conformance Linux: $CI_COMMIT_BRANCH' - if: $CI_PIPELINE_SOURCE == 'schedule' # Scheduled in any branch variables: IVAS_PIPELINE_NAME: 'Scheduled pipeline: $CI_COMMIT_BRANCH' @@ -152,7 +152,7 @@ workflow: .rules-pytest-to-ref-pre: rules: - - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == "ivas-conformance" + - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == "ivas-conformance-linux" when: never - if: $CI_PIPELINE_SOURCE == 'web' - if: $CI_PIPELINE_SOURCE == 'schedule' @@ -955,7 +955,7 @@ pytest-to-ref-pre: # ensure that codec builds on linux build-codec-linux-make: rules: - - if: $MANUAL_PIPELINE_TYPE == 'long-term-logs' || $MANUAL_PIPELINE_TYPE == 'ivas-conformance' || $MANUAL_PIPELINE_TYPE == 'backup-long-term-logs' || $UPDATE_PAGES + - if: $MANUAL_PIPELINE_TYPE == 'long-term-logs' || $MANUAL_PIPELINE_TYPE == 'ivas-conformance-linux' || $MANUAL_PIPELINE_TYPE == 'backup-long-term-logs' || $UPDATE_PAGES when: never - if: $CI_PIPELINE_SOURCE == 'web' - if: $CI_PIPELINE_SOURCE == 'push' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH @@ -975,7 +975,7 @@ build-codec-linux-cmake: rules: - if: $CI_MERGE_REQUEST_TITLE =~ /^(\[Draft\]|\(Draft\)|Draft:)/ when: never - - if: $MANUAL_PIPELINE_TYPE == 'long-term-logs' || $MANUAL_PIPELINE_TYPE == 'backup-long-term-logs' || $MANUAL_PIPELINE_TYPE == 'ivas-conformance' || $UPDATE_PAGES + - if: $MANUAL_PIPELINE_TYPE == 'long-term-logs' || $MANUAL_PIPELINE_TYPE == 'backup-long-term-logs' || $MANUAL_PIPELINE_TYPE == 'ivas-conformance-linux' || $UPDATE_PAGES when: never - if: $CI_PIPELINE_SOURCE == 'push' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH - if: $CI_PIPELINE_SOURCE == 'merge_request_event' @@ -1060,7 +1060,7 @@ build-codec-linux-debugging-make: build-codec-windows-msbuild: rules: - - if: $MANUAL_PIPELINE_TYPE == 'long-term-logs' || $MANUAL_PIPELINE_TYPE == 'backup-long-term-logs' || $MANUAL_PIPELINE_TYPE == 'ivas-conformance' || $UPDATE_PAGES + - if: $MANUAL_PIPELINE_TYPE == 'long-term-logs' || $MANUAL_PIPELINE_TYPE == 'backup-long-term-logs' || $MANUAL_PIPELINE_TYPE == 'ivas-conformance-linux' || $UPDATE_PAGES when: never - if: $CI_PIPELINE_SOURCE == 'web' - if: $CI_PIPELINE_SOURCE == 'push' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH @@ -3176,23 +3176,28 @@ complexity-osba-in-binaural_room_ir-out: - *complexity-measurements-report-summary - exit $ret_val -ivas-conformance: +ivas-conformance-linux: extends: - - .job-windows - tags: - - ivas-basop-windows + - .job-linux stage: test timeout: "6 hours" rules: - - if: ($CI_PIPELINE_SOURCE == 'web' || $CI_PIPELINE_SOURCE == 'trigger') && $MANUAL_PIPELINE_TYPE == 'ivas-conformance' + - if: ($CI_PIPELINE_SOURCE == 'web' || $CI_PIPELINE_SOURCE == 'trigger') && $MANUAL_PIPELINE_TYPE == 'ivas-conformance-linux' + - if: $MANUAL_PIPELINE_TYPE == "coverage" + - if: $COVERAGE_TEST allow_failure: exit_codes: - 123 + variables: + COVERAGE_OUTPUT_FILE: "$COVERAGE_OUTPUT_FILE_CONFORMANCE" + COVERAGE_OUTPUT_DIR: "coverage_conformance" + COVERAGE_TITLE: "conformance test test_26252.py" script: - - *print-common-info-windows - - ."$CI_PROJECT_DIR/ivas-codec-ci/snippets/ivas-conformance.ps1" + - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/print-common-info.sh + - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/ivas-conformance.sh + artifacts: - name: "ivas-conformance-$CI_COMMIT_SHORT_SHA" + name: "ivas-conformance-linux-$CI_COMMIT_SHORT_SHA" expire_in: 1 week when: always paths: @@ -3205,7 +3210,9 @@ ivas-conformance: - Readme_IVAS_JBM_dec.txt - Readme_IVAS_ISAR_dec.txt - Readme_IVAS_ISAR_post_rend.txt - expose_as: "Draft IVAS conformance" + - $COVERAGE_OUTPUT_FILE + - $COVERAGE_OUTPUT_DIR + expose_as: "Draft IVAS conformance -- Linux" reports: junit: report-junit.xml diff --git a/snippets/ivas-conformance.ps1 b/snippets/ivas-conformance.ps1 deleted file mode 100644 index 5d52bbc..0000000 --- a/snippets/ivas-conformance.ps1 +++ /dev/null @@ -1,59 +0,0 @@ -MSBuild.exe -maxcpucount .\Workspace_msvc\Workspace_msvc.sln /property:Configuration=Debug -cp -force IVAS_cod.exe IVAS_cod_ref.exe -cp -force IVAS_dec.exe IVAS_dec_ref.exe -cp -force IVAS_rend.exe IVAS_rend_ref.exe -cp -force ISAR_post_rend.exe ISAR_post_rend_ref.exe - -# Reference creation -python scripts/prepare_combined_format_inputs.py -$TEST_SET = "tests/codec_be_on_mr_nonselection", "tests/renderer_short/test_renderer.py", "tests/split_rendering/test_split_rendering.py" -python -m pytest -q $TEST_SET -v -n auto --update_ref 1 --create_ref --keep_files --html=report_cmd.html --self-contained-html -python scripts/parse_commands.py report_cmd.html Readme_IVAS.txt - -# Copy input data and output ref data -if (Test-Path testvec) {rm -r -force testvec} -if (Test-Path TMP_DEC) {rm -r -force TMP_DEC} -if (Test-Path TMP_ENC) {rm -r -force TMP_ENC} -if (Test-Path TMP_JBM) {rm -r -force TMP_JBM} -if (Test-Path TMP_REND) {rm -r -force TMP_REND} -if (Test-Path TMP_ISAR_POST_REND) {rm -r -force TMP_ISAR_POST_REND} -if (Test-Path TMP_DEC_ISAR) {rm -r -force TMP_DEC_ISAR} -mkdir testvec -mkdir testvec/binauralRenderer_interface -mkdir testvec/testv -mkdir testvec/testv/renderer_short -mkdir testvec/testv/split_rendering -mkdir testvec/bin -cp -force -ErrorAction Ignore scripts/testv/* testvec/testv -cp -r -force -ErrorAction Ignore scripts/ls_layouts testvec -cp -r -force -ErrorAction Ignore scripts/object_edit testvec -cp -r -force -ErrorAction Ignore scripts/switchPaths testvec -cp -r -force -ErrorAction Ignore scripts/trajectories testvec -cp -r -force -ErrorAction Ignore scripts/binauralRenderer_interface/binaural_renderers_hrtf_data testvec/binauralRenderer_interface -cp -r -force -ErrorAction Ignore tests/ref testvec/testv/ref -cp -r -force -ErrorAction Ignore tests/renderer_short/ref testvec/testv/renderer_short/ref -cp -r -force -ErrorAction Ignore tests/split_rendering/ref testvec/testv/split_rendering/ref -cp -r -force -ErrorAction Ignore tests/split_rendering/renderer_configs testvec/testv/split_rendering/renderer_configs -cp -r -force -ErrorAction Ignore tests/split_rendering/error_patterns testvec/testv/split_rendering/error_patterns - -# Remove redundant files -python scripts/cleanup_26252.py - -# Copy test script files -cp -r -force -ErrorAction Ignore tests/conformance-test testvec/ -cp Readme_IVAS_dec.txt testvec -cp Readme_IVAS_enc.txt testvec -cp Readme_IVAS_rend.txt testvec -cp Readme_IVAS_JBM_dec.txt testvec -cp Readme_IVAS_ISAR_dec.txt testvec -cp Readme_IVAS_ISAR_post_rend.txt testvec -cp IVAS_cod.exe testvec/bin -cp IVAS_dec.exe testvec/bin -cp IVAS_rend.exe testvec/bin -cp ISAR_post_rend.exe testvec/bin - -# Test run generated scripts in testvec -cd testvec -python -m pytest conformance-test/test_26252.py --junit-xml=report-junit.xml --html=report.html --self-contained-html -mv report.html .. -mv report-junit.xml .. diff --git a/snippets/ivas-conformance.sh b/snippets/ivas-conformance.sh new file mode 100644 index 0000000..9a5feee --- /dev/null +++ b/snippets/ivas-conformance.sh @@ -0,0 +1,72 @@ +#! /bin/bash + +set -euxo pipefail + + +make -j +cp IVAS_cod IVAS_cod_ref +cp IVAS_dec IVAS_dec_ref +cp IVAS_rend IVAS_rend_ref +cp ISAR_post_rend ISAR_post_rend_ref + +# Reference creation +python3 scripts/prepare_combined_format_inputs.py +TEST_SET="tests/codec_be_on_mr_nonselection tests/renderer_short/test_renderer.py tests/split_rendering/test_split_rendering.py" +python3 -m pytest -q $TEST_SET -v -n auto --update_ref 1 --create_ref --keep_files --html=report_cmd.html --self-contained-html +python3 scripts/parse_commands.py report_cmd.html Readme_IVAS.txt + +# Copy input data and output ref data +rm -rf testvec +mkdir testvec +mkdir testvec/binauralRenderer_interface +mkdir testvec/testv +mkdir testvec/testv/renderer_short +mkdir testvec/testv/split_rendering +mkdir testvec/bin +cp -r scripts/testv/* testvec/testv +cp -r scripts/ls_layouts testvec +cp -r scripts/object_edit testvec +cp -r scripts/switchPaths testvec +cp -r scripts/trajectories testvec +cp -r scripts/binauralRenderer_interface/binaural_renderers_hrtf_data testvec/binauralRenderer_interface +cp -r tests/ref testvec/testv/ref +cp -r tests/renderer_short/ref testvec/testv/renderer_short/ref +cp -r tests/split_rendering/ref testvec/testv/split_rendering/ref +cp -r tests/split_rendering/renderer_configs testvec/testv/split_rendering/renderer_configs +cp -r tests/split_rendering/error_patterns testvec/testv/split_rendering/error_patterns + +# Remove redundant files +python3 scripts/cleanup_26252.py + +# Copy test script files +cp -r tests/conformance-test testvec/ +cp Readme_IVAS_dec.txt testvec +cp Readme_IVAS_enc.txt testvec +cp Readme_IVAS_rend.txt testvec +cp Readme_IVAS_JBM_dec.txt testvec +cp Readme_IVAS_ISAR_dec.txt testvec +cp Readme_IVAS_ISAR_post_rend.txt testvec + +# Create GCOV execs for coverage analysis +make clean +make GCOV=1 -j + +cp IVAS_cod testvec/bin +cp IVAS_dec testvec/bin +cp IVAS_rend testvec/bin +cp ISAR_post_rend testvec/bin + +# Test run generated scripts in testvec +cd testvec +exit_code=0 +python3 -m pytest -q conformance-test/test_26252.py --junit-xml=report-junit.xml --html=report.html --self-contained-html || exit_code=$? +mv report.html .. +mv report-junit.xml .. + +# Collect coverage +cd - +bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/collect-coverage.sh --obj-dir obj --output-file $COVERAGE_OUTPUT_FILE --output-dir $COVERAGE_OUTPUT_DIR --title "Coverage on main -- $COVERAGE_TITLE" + +# Check for failures +if [ $exit_code -ne 0 ]; then echo "Test failures encountered"; exit $EXIT_CODE_FAIL; fi + -- GitLab From 52f997a37a3fa7679df597d46811c9fa194a1805 Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Wed, 5 Nov 2025 11:56:33 +0100 Subject: [PATCH 09/20] Remove prepare_combined_format_inputs.py, move make outside of script --- main-basop.yml | 1 + snippets/ivas-conformance.sh | 2 -- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/main-basop.yml b/main-basop.yml index 22acfea..38ebf5c 100644 --- a/main-basop.yml +++ b/main-basop.yml @@ -3194,6 +3194,7 @@ ivas-conformance-linux: COVERAGE_TITLE: "conformance test test_26252.py" script: - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/print-common-info.sh + - make -j # To be substituted with reference platform build - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/ivas-conformance.sh artifacts: diff --git a/snippets/ivas-conformance.sh b/snippets/ivas-conformance.sh index 9a5feee..08645c7 100644 --- a/snippets/ivas-conformance.sh +++ b/snippets/ivas-conformance.sh @@ -3,14 +3,12 @@ set -euxo pipefail -make -j cp IVAS_cod IVAS_cod_ref cp IVAS_dec IVAS_dec_ref cp IVAS_rend IVAS_rend_ref cp ISAR_post_rend ISAR_post_rend_ref # Reference creation -python3 scripts/prepare_combined_format_inputs.py TEST_SET="tests/codec_be_on_mr_nonselection tests/renderer_short/test_renderer.py tests/split_rendering/test_split_rendering.py" python3 -m pytest -q $TEST_SET -v -n auto --update_ref 1 --create_ref --keep_files --html=report_cmd.html --self-contained-html python3 scripts/parse_commands.py report_cmd.html Readme_IVAS.txt -- GitLab From bf14d5fa0f00c12d0f196c9cafe2b853d49126e6 Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Thu, 6 Nov 2025 09:25:28 +0100 Subject: [PATCH 10/20] Use source for calling ivas-conformance.sh --- main-basop.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main-basop.yml b/main-basop.yml index 38ebf5c..66ac3b5 100644 --- a/main-basop.yml +++ b/main-basop.yml @@ -3195,7 +3195,7 @@ ivas-conformance-linux: script: - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/print-common-info.sh - make -j # To be substituted with reference platform build - - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/ivas-conformance.sh + - source "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/ivas-conformance.sh artifacts: name: "ivas-conformance-linux-$CI_COMMIT_SHORT_SHA" -- GitLab From a708347aed0576855524250750d6f6c82eca8c9a Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Thu, 6 Nov 2025 09:37:56 +0100 Subject: [PATCH 11/20] Debugging --- main-basop.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/main-basop.yml b/main-basop.yml index 66ac3b5..af22594 100644 --- a/main-basop.yml +++ b/main-basop.yml @@ -3195,6 +3195,8 @@ ivas-conformance-linux: script: - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/print-common-info.sh - make -j # To be substituted with reference platform build + - pwd + - ls - source "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/ivas-conformance.sh artifacts: -- GitLab From 726f243b9e8b6749660f79c3168d9d46af65b886 Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Thu, 6 Nov 2025 09:40:25 +0100 Subject: [PATCH 12/20] Add missing fetch of scripts --- main-basop.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/main-basop.yml b/main-basop.yml index af22594..e6951e9 100644 --- a/main-basop.yml +++ b/main-basop.yml @@ -3194,10 +3194,9 @@ ivas-conformance-linux: COVERAGE_TITLE: "conformance test test_26252.py" script: - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/print-common-info.sh + - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/basop/update-scripts-repo.sh - make -j # To be substituted with reference platform build - - pwd - - ls - - source "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/ivas-conformance.sh + - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/ivas-conformance.sh artifacts: name: "ivas-conformance-linux-$CI_COMMIT_SHORT_SHA" -- GitLab From 5b336c370d2a0383f8e90e9048bfac396d1ea49a Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Thu, 6 Nov 2025 09:45:16 +0100 Subject: [PATCH 13/20] Debugging --- main-basop.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/main-basop.yml b/main-basop.yml index e6951e9..cedfb95 100644 --- a/main-basop.yml +++ b/main-basop.yml @@ -3196,7 +3196,9 @@ ivas-conformance-linux: - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/print-common-info.sh - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/basop/update-scripts-repo.sh - make -j # To be substituted with reference platform build - - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/ivas-conformance.sh + - ls tests + - pwd + - source "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/ivas-conformance.sh artifacts: name: "ivas-conformance-linux-$CI_COMMIT_SHORT_SHA" -- GitLab From 0ac65de4e8188fc3c70a98cbeb98987b3a37a56c Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Thu, 6 Nov 2025 09:48:49 +0100 Subject: [PATCH 14/20] Change TEST_SET to explicit listing of tests --- snippets/ivas-conformance.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/snippets/ivas-conformance.sh b/snippets/ivas-conformance.sh index 08645c7..a05fab4 100644 --- a/snippets/ivas-conformance.sh +++ b/snippets/ivas-conformance.sh @@ -9,8 +9,7 @@ cp IVAS_rend IVAS_rend_ref cp ISAR_post_rend ISAR_post_rend_ref # Reference creation -TEST_SET="tests/codec_be_on_mr_nonselection tests/renderer_short/test_renderer.py tests/split_rendering/test_split_rendering.py" -python3 -m pytest -q $TEST_SET -v -n auto --update_ref 1 --create_ref --keep_files --html=report_cmd.html --self-contained-html +python3 -m pytest -q tests/codec_be_on_mr_nonselection tests/renderer_short/test_renderer.py tests/split_rendering/test_split_rendering.py -v -n auto --update_ref 1 --create_ref --keep_files --html=report_cmd.html --self-contained-html python3 scripts/parse_commands.py report_cmd.html Readme_IVAS.txt # Copy input data and output ref data -- GitLab From 815022cd4b93284c355dee9217c950936bb57d47 Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Thu, 6 Nov 2025 09:51:45 +0100 Subject: [PATCH 15/20] Move pytest call outside of ivas-conformance.sh --- main-basop.yml | 8 ++++++++ snippets/ivas-conformance.sh | 10 ---------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/main-basop.yml b/main-basop.yml index cedfb95..756ec2a 100644 --- a/main-basop.yml +++ b/main-basop.yml @@ -3198,6 +3198,14 @@ ivas-conformance-linux: - make -j # To be substituted with reference platform build - ls tests - pwd + - cp IVAS_cod IVAS_cod_ref + - cp IVAS_dec IVAS_dec_ref + - cp IVAS_rend IVAS_rend_ref + - cp ISAR_post_rend ISAR_post_rend_ref + + # Reference creation + - python3 -m pytest -q tests/codec_be_on_mr_nonselection tests/renderer_short/test_renderer.py tests/split_rendering/test_split_rendering.py -v -n auto --update_ref 1 --create_ref --keep_files --html=report_cmd.html --self-contained-html + - python3 scripts/parse_commands.py report_cmd.html Readme_IVAS.txt - source "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/ivas-conformance.sh artifacts: diff --git a/snippets/ivas-conformance.sh b/snippets/ivas-conformance.sh index a05fab4..440a5b5 100644 --- a/snippets/ivas-conformance.sh +++ b/snippets/ivas-conformance.sh @@ -2,16 +2,6 @@ set -euxo pipefail - -cp IVAS_cod IVAS_cod_ref -cp IVAS_dec IVAS_dec_ref -cp IVAS_rend IVAS_rend_ref -cp ISAR_post_rend ISAR_post_rend_ref - -# Reference creation -python3 -m pytest -q tests/codec_be_on_mr_nonselection tests/renderer_short/test_renderer.py tests/split_rendering/test_split_rendering.py -v -n auto --update_ref 1 --create_ref --keep_files --html=report_cmd.html --self-contained-html -python3 scripts/parse_commands.py report_cmd.html Readme_IVAS.txt - # Copy input data and output ref data rm -rf testvec mkdir testvec -- GitLab From 9e5203a8b02a2141c7020db3b1cd485d4a2e4793 Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Thu, 6 Nov 2025 10:09:06 +0100 Subject: [PATCH 16/20] Change to tests/renderer instead of tests/renderer_short for BASOP conformance --- snippets/ivas-conformance.sh | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/snippets/ivas-conformance.sh b/snippets/ivas-conformance.sh index 440a5b5..95f2d9d 100644 --- a/snippets/ivas-conformance.sh +++ b/snippets/ivas-conformance.sh @@ -2,6 +2,15 @@ set -euxo pipefail +cp IVAS_cod IVAS_cod_ref +cp IVAS_dec IVAS_dec_ref +cp IVAS_rend IVAS_rend_ref +cp ISAR_post_rend ISAR_post_rend_ref + +# Reference creation +python3 -m pytest -q tests/codec_be_on_mr_nonselection tests/renderer/test_renderer.py tests/split_rendering/test_split_rendering.py -v -n auto --update_ref 1 --create_ref --keep_files --html=report_cmd.html --self-contained-html +python3 scripts/parse_commands.py report_cmd.html Readme_IVAS.txt + # Copy input data and output ref data rm -rf testvec mkdir testvec -- GitLab From 6471fe39e17668e9ee73a77efe32d07157955ccc Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Thu, 6 Nov 2025 10:12:03 +0100 Subject: [PATCH 17/20] Change to tests/renderer instead of tests/renderer_short for BASOP conformance --- main-basop.yml | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/main-basop.yml b/main-basop.yml index 756ec2a..2d3d9e1 100644 --- a/main-basop.yml +++ b/main-basop.yml @@ -3196,16 +3196,6 @@ ivas-conformance-linux: - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/print-common-info.sh - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/basop/update-scripts-repo.sh - make -j # To be substituted with reference platform build - - ls tests - - pwd - - cp IVAS_cod IVAS_cod_ref - - cp IVAS_dec IVAS_dec_ref - - cp IVAS_rend IVAS_rend_ref - - cp ISAR_post_rend ISAR_post_rend_ref - - # Reference creation - - python3 -m pytest -q tests/codec_be_on_mr_nonselection tests/renderer_short/test_renderer.py tests/split_rendering/test_split_rendering.py -v -n auto --update_ref 1 --create_ref --keep_files --html=report_cmd.html --self-contained-html - - python3 scripts/parse_commands.py report_cmd.html Readme_IVAS.txt - source "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/ivas-conformance.sh artifacts: -- GitLab From 11a299e55b03108c0a77b5a300a256e58ba52500 Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Thu, 6 Nov 2025 12:26:56 +0100 Subject: [PATCH 18/20] Add ci/remove_unsupported_testcases.py to ivas-conformance-linux --- main-basop.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/main-basop.yml b/main-basop.yml index 2d3d9e1..33f6122 100644 --- a/main-basop.yml +++ b/main-basop.yml @@ -3195,6 +3195,7 @@ ivas-conformance-linux: script: - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/print-common-info.sh - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/basop/update-scripts-repo.sh + - python3 ci/remove_unsupported_testcases.py $PRM_FILES # Should not be needed once the porting is done and all test cases are supported in BASOP/float. - make -j # To be substituted with reference platform build - source "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/ivas-conformance.sh -- GitLab From 866e7f1032ece016f796f1127159c64be8f667f9 Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Thu, 6 Nov 2025 14:04:51 +0100 Subject: [PATCH 19/20] Revert to tests/renderer_short in ivas-conformance-linux --- main-basop.yml | 2 +- snippets/ivas-conformance.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/main-basop.yml b/main-basop.yml index 33f6122..9161d87 100644 --- a/main-basop.yml +++ b/main-basop.yml @@ -3197,7 +3197,7 @@ ivas-conformance-linux: - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/basop/update-scripts-repo.sh - python3 ci/remove_unsupported_testcases.py $PRM_FILES # Should not be needed once the porting is done and all test cases are supported in BASOP/float. - make -j # To be substituted with reference platform build - - source "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/ivas-conformance.sh + - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/ivas-conformance.sh artifacts: name: "ivas-conformance-linux-$CI_COMMIT_SHORT_SHA" diff --git a/snippets/ivas-conformance.sh b/snippets/ivas-conformance.sh index 95f2d9d..2a6c359 100644 --- a/snippets/ivas-conformance.sh +++ b/snippets/ivas-conformance.sh @@ -8,7 +8,7 @@ cp IVAS_rend IVAS_rend_ref cp ISAR_post_rend ISAR_post_rend_ref # Reference creation -python3 -m pytest -q tests/codec_be_on_mr_nonselection tests/renderer/test_renderer.py tests/split_rendering/test_split_rendering.py -v -n auto --update_ref 1 --create_ref --keep_files --html=report_cmd.html --self-contained-html +python3 -m pytest -q tests/codec_be_on_mr_nonselection tests/renderer_short/test_renderer.py tests/split_rendering/test_split_rendering.py -v -n auto --update_ref 1 --create_ref --keep_files --html=report_cmd.html --self-contained-html python3 scripts/parse_commands.py report_cmd.html Readme_IVAS.txt # Copy input data and output ref data -- GitLab From f25e8954c5a7354005723538aaffb00a4ff78383 Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Sat, 8 Nov 2025 13:09:06 +0100 Subject: [PATCH 20/20] Add explicit COVERAGE_OUTPUT_FILE --- main-basop.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main-basop.yml b/main-basop.yml index 9161d87..075f6fd 100644 --- a/main-basop.yml +++ b/main-basop.yml @@ -3189,7 +3189,7 @@ ivas-conformance-linux: exit_codes: - 123 variables: - COVERAGE_OUTPUT_FILE: "$COVERAGE_OUTPUT_FILE_CONFORMANCE" + COVERAGE_OUTPUT_FILE: "coverage_conformance.info" COVERAGE_OUTPUT_DIR: "coverage_conformance" COVERAGE_TITLE: "conformance test test_26252.py" script: -- GitLab