Loading .gitattributes +1 −0 Original line number Diff line number Diff line Loading @@ -29,5 +29,6 @@ *.mat filter=lfs diff=lfs merge=lfs -text *.met filter=lfs diff=lfs merge=lfs -text *.pcm filter=lfs diff=lfs merge=lfs -text *.sofa filter=lfs diff=lfs merge=lfs -text *.wav filter=lfs diff=lfs merge=lfs -text *.zip filter=lfs diff=lfs merge=lfs -text .gitignore +10 −1 Original line number Diff line number Diff line Loading @@ -41,12 +41,15 @@ scripts/td_object_renderer/object_renderer_standalone/renderer_standalone.exe .cache *.log *.bak .\#* scripts/c-code_instrument/ scripts/ifdef_instrument.list scripts/ref/ scripts/test/ scripts/out/ scripts/self_test_summary.txt scripts/cppp/ binary/ tests/renderer/cut tests/renderer/ref tests/dut Loading @@ -63,3 +66,9 @@ __pycache__/ # history .history/ #externals Externals/ # coan output files that are created when cleaning out switches coan_out_* .gitlab-ci.yml +79 −114 Original line number Diff line number Diff line Loading @@ -10,6 +10,10 @@ variables: EXIT_CODE_NON_BE: 123 EXIT_CODE_FAIL: 1 default: interruptible: true # Make all jobs by default interruptible artifacts: expire_in: 2 weeks # This sets when pipelines are created. Jobs have more specific rules to restrict them. workflow: Loading @@ -23,6 +27,7 @@ workflow: - if: $CI_PIPELINE_SOURCE == 'web' # for testing stages: - .pre - maintenance - build - test Loading Loading @@ -147,7 +152,7 @@ stages: .build-job-linux: stage: build timeout: "2 minutes" timeout: "4 minutes" tags: - ivas-linux Loading @@ -168,6 +173,31 @@ stages: - 123 # --------------------------------------------------------------- # .pre jobs for setting up things # --------------------------------------------------------------- # See: https://gitlab.com/gitlab-org/gitlab/-/issues/194023 # Solution to make main branch pipelines uninterruptible while all other # pipelines can be interrupted by default. This works because all jobs # after uninterruptible jobs will be uninterruptible. Resource group # setting avoids rare case where two fast merges could still interrupt # pipeline. This should be revisited if there are updates to Gitlab. uninterruptible: stage: .pre interruptible: false resource_group: uninterruptible script: - echo "$CI_COMMIT_BRANCH is uninterruptible" rules: - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH when: always tags: - ivas-linux # --------------------------------------------------------------- # Validation jobs # --------------------------------------------------------------- Loading Loading @@ -201,26 +231,6 @@ build-codec-linux-make: # need to use the "|| exit $?" suffix to get the allowed_failure return code, otherwise the job fails with code 1...< - ci/check_for_warnings.py $BUILD_OUTPUT || exit $? build-unittests-linux: extends: - .build-job-with-check-for-warnings - .rules-basis script: - *print-common-info - make unittests -j 2>&1 | tee $BUILD_OUTPUT # need to use the "|| exit $?" suffix to get the allowed_failure return code, otherwise the job fails with code 1...< - ci/check_for_warnings.py $BUILD_OUTPUT || exit $? build-td-object-renderer-standalone-linux: extends: - .build-job-with-check-for-warnings - .rules-basis script: - *print-common-info - make -C scripts/td_object_renderer/object_renderer_standalone -j 2>&1 | tee $BUILD_OUTPUT # need to use the "|| exit $?" suffix to get the allowed_failure return code, otherwise the job fails with code 1...< - ci/check_for_warnings.py $BUILD_OUTPUT || exit $? build-codec-linux-cmake: extends: - .build-job-with-check-for-warnings Loading Loading @@ -270,16 +280,19 @@ codec-smoke-test: ### analyze for failures - if cat smoke_test_output.txt | grep -c "failed"; then echo "Smoke test without PLC failed"; exit 1; fi - if cat smoke_test_output_plc.txt | grep -c "failed"; then echo "Smoke test with PLC failed"; exit 1; fi - if cat smoke_test_output_jbm_noEXT.txt | grep -c "failed"; then echo "Smoke test JBM part failed"; exit 1; fi - if cat smoke_test_output_hrtf.txt | grep -c "failed"; then echo "Smoke test with external hrtf files failed"; exit 1; fi artifacts: name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results" paths: - out/logs/ - smoke_test_output.txt - smoke_test_output_plc.txt - smoke_test_output_jbm_noEXT.txt - smoke_test_output_hrtf.txt expose_as: "Smoke test results" # code selftest testvectors with memory-sanitizer binaries msan-on-merge-request-linux: codec-msan: extends: - .test-job-linux - .rules-merge-request Loading @@ -287,6 +300,7 @@ msan-on-merge-request-linux: needs: ["build-codec-sanitizers-linux"] script: - *print-common-info - python3 ci/disable_ram_counting.py - make clean - make -j CLANG=1 - python3 scripts/self_test.py --create | tee test_output.txt Loading @@ -297,10 +311,10 @@ msan-on-merge-request-linux: paths: - scripts/ref/logs/ - test_output.txt expose_as: "Msan selftest results" expose_as: "msan selftest results" # code selftest testvectors with address-sanitizer binaries asan-on-merge-request-linux: codec-asan: extends: - .test-job-linux - .rules-merge-request Loading @@ -308,6 +322,7 @@ asan-on-merge-request-linux: needs: ["build-codec-sanitizers-linux"] script: - *print-common-info - python3 ci/disable_ram_counting.py - make clean - make -j CLANG=2 - python3 scripts/self_test.py --create | tee test_output.txt Loading @@ -318,10 +333,10 @@ asan-on-merge-request-linux: paths: - scripts/ref/logs/ - test_output.txt expose_as: "Asan selftest results" expose_as: "asan selftest results" # test external renderer executable external-renderer-make-pytest: # test renderer executable renderer-smoke-test: extends: - .test-job-linux - .rules-merge-request Loading @@ -329,21 +344,19 @@ external-renderer-make-pytest: stage: test script: - make -j IVAS_rend - make -j unittests - make -j --directory scripts/td_object_renderer/object_renderer_standalone - python3 -m pytest -q -n auto -rA --junit-xml=report-junit.xml tests/renderer/test_renderer.py artifacts: name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results" when: always paths: - report-junit.xml expose_as: "external renderer make pytest results" expose_as: "renderer make pytest results" reports: junit: - report-junit.xml # test external renderer executable with cmake + asan external-renderer-cmake-asan-pytest: # test renderer executable with cmake + asan renderer-asan: extends: - .test-job-linux - .rules-merge-request Loading @@ -360,13 +373,13 @@ external-renderer-cmake-asan-pytest: when: always paths: - report-junit.xml expose_as: "external renderer cmake asan pytest results" expose_as: "renderer asan pytest results" reports: junit: - report-junit.xml # test external renderer executable with cmake + msan external-renderer-cmake-msan-pytest: # test renderer executable with cmake + msan renderer-msan: extends: - .test-job-linux - .rules-merge-request Loading @@ -383,35 +396,13 @@ external-renderer-cmake-msan-pytest: when: always paths: - report-junit.xml expose_as: "external renderer cmake msan pytest results" expose_as: "renderer msan pytest results" reports: junit: - report-junit.xml # test external renderer executable with cmake vs decoder renderer # TODO @tmu @knj @sgi -> converted to script, decide whether to re-enable later .external-renderer-cmake-vs-decoder-pytest: extends: - .test-job-linux - .rules-merge-request needs: ["build-codec-linux-cmake"] stage: test script: - cmake -B cmake-build -G "Unix Makefiles" -DCOPY_EXECUTABLES_FROM_BUILD_DIR=true -DDEC_TO_REND_FLOAT_DUMP=true - cmake --build cmake-build -- -j - python3 -m pytest -q -n 1 -rA --junit-xml=report-junit.xml tests/renderer/test_renderer_vs_decoder.py artifacts: name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results" when: always paths: - report-junit.xml expose_as: "external renderer cmake vs decoder results" reports: junit: - report-junit.xml # compare external renderer bitexactness between target and source branch external-renderer-pytest-on-merge-request: # compare renderer bitexactness between target and source branch renderer-pytest-on-merge-request: extends: - .test-job-linux - .rules-merge-request Loading Loading @@ -459,7 +450,7 @@ external-renderer-pytest-on-merge-request: paths: - report-junit.xml - report.html expose_as: "pytest external renderer results" expose_as: "pytest renderer results" reports: junit: - report-junit.xml Loading Loading @@ -560,6 +551,17 @@ evs-pytest-on-merge-request: junit: - report-junit-evs.xml voip-be-on-merge-request: extends: - .test-job-linux-needs-testv-dir - .rules-merge-request stage: compare # Or should it be test? Comparison is done within one git revision needs: ["build-codec-linux-make", codec-smoke-test] timeout: "10 minutes" script: - *print-common-info - bash ci/ivas_voip_be_test.sh clang-format-check: extends: - .test-job-linux Loading Loading @@ -824,7 +826,7 @@ sanitizer-test-masa: .sanitizer-test-schedule-B: extends: - .sanitizer-test-template timeout: 3 hours timeout: 4 hours sanitizer-test-mc-5_1: extends: .sanitizer-test-schedule-B Loading @@ -839,7 +841,7 @@ sanitizer-test-mc-5_1_2: rules: - if: $SANITIZER_SCHEDULE_B when: delayed start_in: 3 hours start_in: 4 hours script: - *update-ltv-repo - python3 ci/run_scheduled_sanitizer_test.py 5_1_2 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS Loading @@ -849,7 +851,7 @@ sanitizer-test-mc-5_1_4: rules: - if: $SANITIZER_SCHEDULE_B when: delayed start_in: 6 hours start_in: 8 hours script: - *update-ltv-repo - python3 ci/run_scheduled_sanitizer_test.py 5_1_4 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS Loading @@ -859,7 +861,7 @@ sanitizer-test-mc-7_1: rules: - if: $SANITIZER_SCHEDULE_B when: delayed start_in: 9 hours start_in: 12 hours script: - *update-ltv-repo - python3 ci/run_scheduled_sanitizer_test.py 7_1 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS Loading @@ -869,7 +871,7 @@ sanitizer-test-mc-7_1_4: rules: - if: $SANITIZER_SCHEDULE_B when: delayed start_in: 12 hours start_in: 16 hours script: - *update-ltv-repo - python3 ci/run_scheduled_sanitizer_test.py 7_1_4 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS Loading Loading @@ -913,15 +915,21 @@ coverage-test-on-main-scheduled: script: - *print-common-info - make GCOV=1 -j - cp IVAS_rend IVAS_rend_ref # Copy exec to be able to run renderer script - python3 tests/create_short_testvectors.py - python3 -m pytest tests -v -n 0 --update_ref 1 -m create_ref --ref_encoder_path ./IVAS_cod --ref_decoder_path ./IVAS_dec - python3 -m pytest tests -v -n 0 --update_ref 1 -m create_ref_part2 --ref_encoder_path ./IVAS_cod --ref_decoder_path ./IVAS_dec - python3 -m pytest tests/test_param_file.py -v -n 0 --update_ref 1 -m create_ref --param_file scripts/config/self_test_evs.prm --ref_encoder_path ./IVAS_cod --ref_decoder_path ./IVAS_dec - bash ci/smoke_test.sh coverage - python3 -m pytest -q -n auto tests/renderer/test_renderer_be_comparison.py - bash ci/ivas_voip_be_test.sh coverage - lcov -c -d obj -o coverage.info - genhtml coverage.info -o coverage - commit_sha=$(git rev-parse HEAD) - genhtml coverage.info -o coverage -t "Coverage on main @ $commit_sha" artifacts: name: "main-coverage-sha-$CI_COMMIT_SHORT_SHA" when: always expire_in: 1 week paths: - coverage.info - coverage Loading Loading @@ -954,8 +962,8 @@ coverage-test-on-main-scheduled: - mv -f wmops/log_*_all.txt wmops/*.js ${public_dir}/ # move logfiles for links - mkdir $public_dir/logs # first move logs for "native" sampling rate - log_files=$(cat $public_dir/graphs_wmops_flc.js | grep logFile | sed "s/.*\(wmops_newsletter_.*\.csv\).*/\1/g") # first move logs - log_files=$(cat $public_dir/graphs*.js | grep logFile | sed "s/.*\(wmops_newsletter_.*\.csv\).*/\1/g") - echo $log_files - ls wmops/logs - for f in $log_files; do [ -f wmops/logs/$f ] && mv wmops/logs/$f $public_dir/logs/$f; done Loading Loading @@ -1079,57 +1087,14 @@ complexity-StereoDmxEVS-stereo-in-mono-out: # --------------------------------------------------------------- # job that sets up gitlab pages website # is run on a separate schedule and collects artifacts from other jobs (currently # only the complexity measurements) multiple times a day pages: stage: deploy tags: - ivas-linux rules: - if: $UPDATE_PAGES # TODO: add coverage job script: - API_URL_BASE=https://forge.3gpp.org/rep/api/v4/projects/$CI_PROJECT_ID/jobs - branch=$CI_COMMIT_REF_NAME - mkdir public ### fetch artifacts from latest run of complexity jobs - job_id=$(python3 ci/get_id_of_last_job_occurence.py $branch complexity-stereo-in-stereo-out) - echo $job_id - echo "$API_URL_BASE/$job_id/artifacts" - curl --request GET "$API_URL_BASE/$job_id/artifacts" --output artifacts_comp_stereo.zip - cat artifacts_comp_stereo.zip - unzip -o artifacts_comp_stereo.zip - mv complexity-stereo-in-stereo-out-public ./public/ - job_id=$(python3 ci/get_id_of_last_job_occurence.py $branch complexity-ism-in-binaural-out) - curl --request GET "$API_URL_BASE/$job_id/artifacts" --output artifacts_comp_ism.zip - unzip -o artifacts_comp_ism.zip - mv complexity-ism-in-binaural-out-public ./public/ - job_id=$(python3 ci/get_id_of_last_job_occurence.py $branch complexity-sba-hoa3-in-hoa3-out) - curl --request GET "$API_URL_BASE/$job_id/artifacts" --output artifacts_comp_sba.zip - unzip -o artifacts_comp_sba.zip - mv complexity-sba-hoa3-in-hoa3-out-public ./public/ - job_id=$(python3 ci/get_id_of_last_job_occurence.py $branch complexity-mc-in-7_1_4-out) - curl --request GET "$API_URL_BASE/$job_id/artifacts" --output artifacts_comp_mc.zip - unzip -o artifacts_comp_mc.zip - mv complexity-mc-in-7_1_4-out-public ./public/ - job_id=$(python3 ci/get_id_of_last_job_occurence.py $branch complexity-masa-in-7_1_4-out) - curl --request GET "$API_URL_BASE/$job_id/artifacts" --output artifacts_comp_masa.zip - unzip -o artifacts_comp_masa.zip - mv complexity-masa-in-7_1_4-out-public ./public/ - job_id=$(python3 ci/get_id_of_last_job_occurence.py $branch complexity-StereoDmxEVS-stereo-in-mono-out) - curl --request GET "$API_URL_BASE/$job_id/artifacts" --output artifacts_comp_StereoDmxEVS.zip - unzip -o artifacts_comp_StereoDmxEVS.zip - mv complexity-StereoDmxEVS-stereo-in-mono-out-public ./public/ - cp ci/index-pages.html public/index.html - python3 ci/setup_pages.py artifacts: paths: - public Loading .gitlab/issue_templates/generic_issue.md→.gitlab/issue_templates/default.md +0 −0 File moved. View file .gitlab/issue_templates/sanitizer_error.md 0 → 100644 +39 −0 Original line number Diff line number Diff line ### Basic info - Commit SHA: ### Bug description Clang (msan/asan?) sanitizer test in pipeline found an error: <!--- Copy sanitizer traceback from command line here --> ``` ``` <!--- Copy test job URL here --> Link to test pipeline: XXX ### Ways to reproduce Using the [scripts](https://forge.3gpp.org/rep/ivas-codec-pc/ivas-codec/-/wikis/Software-development/pyivastest-howto#how-to-reproduce-tests): <!--- check correct sanitizer type --> <!--- add error pattern if needed --> ``` python3 scripts/IvasBuildAndRunChecks.py --checks CLANGX -m MODE -p /path/to/my/local/ci_linux_ltv_local.json ``` or directly: ``` make clean make -j CLANG=X ./IVAS_cod ... eid-xor -vbr -fer bit ep_015.g192 bit_fer ./IVAS_dec ... ``` <!--- Below are labels that will be added but are not shown in description. This is a template to help fill them. Add further information to the first row and remove and add labels as necessary. --> /label ~"Priority::Critical" ~Company: ~Subpart: /label ~Type:Bug ~Status::ToDo Loading
.gitattributes +1 −0 Original line number Diff line number Diff line Loading @@ -29,5 +29,6 @@ *.mat filter=lfs diff=lfs merge=lfs -text *.met filter=lfs diff=lfs merge=lfs -text *.pcm filter=lfs diff=lfs merge=lfs -text *.sofa filter=lfs diff=lfs merge=lfs -text *.wav filter=lfs diff=lfs merge=lfs -text *.zip filter=lfs diff=lfs merge=lfs -text
.gitignore +10 −1 Original line number Diff line number Diff line Loading @@ -41,12 +41,15 @@ scripts/td_object_renderer/object_renderer_standalone/renderer_standalone.exe .cache *.log *.bak .\#* scripts/c-code_instrument/ scripts/ifdef_instrument.list scripts/ref/ scripts/test/ scripts/out/ scripts/self_test_summary.txt scripts/cppp/ binary/ tests/renderer/cut tests/renderer/ref tests/dut Loading @@ -63,3 +66,9 @@ __pycache__/ # history .history/ #externals Externals/ # coan output files that are created when cleaning out switches coan_out_*
.gitlab-ci.yml +79 −114 Original line number Diff line number Diff line Loading @@ -10,6 +10,10 @@ variables: EXIT_CODE_NON_BE: 123 EXIT_CODE_FAIL: 1 default: interruptible: true # Make all jobs by default interruptible artifacts: expire_in: 2 weeks # This sets when pipelines are created. Jobs have more specific rules to restrict them. workflow: Loading @@ -23,6 +27,7 @@ workflow: - if: $CI_PIPELINE_SOURCE == 'web' # for testing stages: - .pre - maintenance - build - test Loading Loading @@ -147,7 +152,7 @@ stages: .build-job-linux: stage: build timeout: "2 minutes" timeout: "4 minutes" tags: - ivas-linux Loading @@ -168,6 +173,31 @@ stages: - 123 # --------------------------------------------------------------- # .pre jobs for setting up things # --------------------------------------------------------------- # See: https://gitlab.com/gitlab-org/gitlab/-/issues/194023 # Solution to make main branch pipelines uninterruptible while all other # pipelines can be interrupted by default. This works because all jobs # after uninterruptible jobs will be uninterruptible. Resource group # setting avoids rare case where two fast merges could still interrupt # pipeline. This should be revisited if there are updates to Gitlab. uninterruptible: stage: .pre interruptible: false resource_group: uninterruptible script: - echo "$CI_COMMIT_BRANCH is uninterruptible" rules: - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH when: always tags: - ivas-linux # --------------------------------------------------------------- # Validation jobs # --------------------------------------------------------------- Loading Loading @@ -201,26 +231,6 @@ build-codec-linux-make: # need to use the "|| exit $?" suffix to get the allowed_failure return code, otherwise the job fails with code 1...< - ci/check_for_warnings.py $BUILD_OUTPUT || exit $? build-unittests-linux: extends: - .build-job-with-check-for-warnings - .rules-basis script: - *print-common-info - make unittests -j 2>&1 | tee $BUILD_OUTPUT # need to use the "|| exit $?" suffix to get the allowed_failure return code, otherwise the job fails with code 1...< - ci/check_for_warnings.py $BUILD_OUTPUT || exit $? build-td-object-renderer-standalone-linux: extends: - .build-job-with-check-for-warnings - .rules-basis script: - *print-common-info - make -C scripts/td_object_renderer/object_renderer_standalone -j 2>&1 | tee $BUILD_OUTPUT # need to use the "|| exit $?" suffix to get the allowed_failure return code, otherwise the job fails with code 1...< - ci/check_for_warnings.py $BUILD_OUTPUT || exit $? build-codec-linux-cmake: extends: - .build-job-with-check-for-warnings Loading Loading @@ -270,16 +280,19 @@ codec-smoke-test: ### analyze for failures - if cat smoke_test_output.txt | grep -c "failed"; then echo "Smoke test without PLC failed"; exit 1; fi - if cat smoke_test_output_plc.txt | grep -c "failed"; then echo "Smoke test with PLC failed"; exit 1; fi - if cat smoke_test_output_jbm_noEXT.txt | grep -c "failed"; then echo "Smoke test JBM part failed"; exit 1; fi - if cat smoke_test_output_hrtf.txt | grep -c "failed"; then echo "Smoke test with external hrtf files failed"; exit 1; fi artifacts: name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results" paths: - out/logs/ - smoke_test_output.txt - smoke_test_output_plc.txt - smoke_test_output_jbm_noEXT.txt - smoke_test_output_hrtf.txt expose_as: "Smoke test results" # code selftest testvectors with memory-sanitizer binaries msan-on-merge-request-linux: codec-msan: extends: - .test-job-linux - .rules-merge-request Loading @@ -287,6 +300,7 @@ msan-on-merge-request-linux: needs: ["build-codec-sanitizers-linux"] script: - *print-common-info - python3 ci/disable_ram_counting.py - make clean - make -j CLANG=1 - python3 scripts/self_test.py --create | tee test_output.txt Loading @@ -297,10 +311,10 @@ msan-on-merge-request-linux: paths: - scripts/ref/logs/ - test_output.txt expose_as: "Msan selftest results" expose_as: "msan selftest results" # code selftest testvectors with address-sanitizer binaries asan-on-merge-request-linux: codec-asan: extends: - .test-job-linux - .rules-merge-request Loading @@ -308,6 +322,7 @@ asan-on-merge-request-linux: needs: ["build-codec-sanitizers-linux"] script: - *print-common-info - python3 ci/disable_ram_counting.py - make clean - make -j CLANG=2 - python3 scripts/self_test.py --create | tee test_output.txt Loading @@ -318,10 +333,10 @@ asan-on-merge-request-linux: paths: - scripts/ref/logs/ - test_output.txt expose_as: "Asan selftest results" expose_as: "asan selftest results" # test external renderer executable external-renderer-make-pytest: # test renderer executable renderer-smoke-test: extends: - .test-job-linux - .rules-merge-request Loading @@ -329,21 +344,19 @@ external-renderer-make-pytest: stage: test script: - make -j IVAS_rend - make -j unittests - make -j --directory scripts/td_object_renderer/object_renderer_standalone - python3 -m pytest -q -n auto -rA --junit-xml=report-junit.xml tests/renderer/test_renderer.py artifacts: name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results" when: always paths: - report-junit.xml expose_as: "external renderer make pytest results" expose_as: "renderer make pytest results" reports: junit: - report-junit.xml # test external renderer executable with cmake + asan external-renderer-cmake-asan-pytest: # test renderer executable with cmake + asan renderer-asan: extends: - .test-job-linux - .rules-merge-request Loading @@ -360,13 +373,13 @@ external-renderer-cmake-asan-pytest: when: always paths: - report-junit.xml expose_as: "external renderer cmake asan pytest results" expose_as: "renderer asan pytest results" reports: junit: - report-junit.xml # test external renderer executable with cmake + msan external-renderer-cmake-msan-pytest: # test renderer executable with cmake + msan renderer-msan: extends: - .test-job-linux - .rules-merge-request Loading @@ -383,35 +396,13 @@ external-renderer-cmake-msan-pytest: when: always paths: - report-junit.xml expose_as: "external renderer cmake msan pytest results" expose_as: "renderer msan pytest results" reports: junit: - report-junit.xml # test external renderer executable with cmake vs decoder renderer # TODO @tmu @knj @sgi -> converted to script, decide whether to re-enable later .external-renderer-cmake-vs-decoder-pytest: extends: - .test-job-linux - .rules-merge-request needs: ["build-codec-linux-cmake"] stage: test script: - cmake -B cmake-build -G "Unix Makefiles" -DCOPY_EXECUTABLES_FROM_BUILD_DIR=true -DDEC_TO_REND_FLOAT_DUMP=true - cmake --build cmake-build -- -j - python3 -m pytest -q -n 1 -rA --junit-xml=report-junit.xml tests/renderer/test_renderer_vs_decoder.py artifacts: name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results" when: always paths: - report-junit.xml expose_as: "external renderer cmake vs decoder results" reports: junit: - report-junit.xml # compare external renderer bitexactness between target and source branch external-renderer-pytest-on-merge-request: # compare renderer bitexactness between target and source branch renderer-pytest-on-merge-request: extends: - .test-job-linux - .rules-merge-request Loading Loading @@ -459,7 +450,7 @@ external-renderer-pytest-on-merge-request: paths: - report-junit.xml - report.html expose_as: "pytest external renderer results" expose_as: "pytest renderer results" reports: junit: - report-junit.xml Loading Loading @@ -560,6 +551,17 @@ evs-pytest-on-merge-request: junit: - report-junit-evs.xml voip-be-on-merge-request: extends: - .test-job-linux-needs-testv-dir - .rules-merge-request stage: compare # Or should it be test? Comparison is done within one git revision needs: ["build-codec-linux-make", codec-smoke-test] timeout: "10 minutes" script: - *print-common-info - bash ci/ivas_voip_be_test.sh clang-format-check: extends: - .test-job-linux Loading Loading @@ -824,7 +826,7 @@ sanitizer-test-masa: .sanitizer-test-schedule-B: extends: - .sanitizer-test-template timeout: 3 hours timeout: 4 hours sanitizer-test-mc-5_1: extends: .sanitizer-test-schedule-B Loading @@ -839,7 +841,7 @@ sanitizer-test-mc-5_1_2: rules: - if: $SANITIZER_SCHEDULE_B when: delayed start_in: 3 hours start_in: 4 hours script: - *update-ltv-repo - python3 ci/run_scheduled_sanitizer_test.py 5_1_2 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS Loading @@ -849,7 +851,7 @@ sanitizer-test-mc-5_1_4: rules: - if: $SANITIZER_SCHEDULE_B when: delayed start_in: 6 hours start_in: 8 hours script: - *update-ltv-repo - python3 ci/run_scheduled_sanitizer_test.py 5_1_4 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS Loading @@ -859,7 +861,7 @@ sanitizer-test-mc-7_1: rules: - if: $SANITIZER_SCHEDULE_B when: delayed start_in: 9 hours start_in: 12 hours script: - *update-ltv-repo - python3 ci/run_scheduled_sanitizer_test.py 7_1 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS Loading @@ -869,7 +871,7 @@ sanitizer-test-mc-7_1_4: rules: - if: $SANITIZER_SCHEDULE_B when: delayed start_in: 12 hours start_in: 16 hours script: - *update-ltv-repo - python3 ci/run_scheduled_sanitizer_test.py 7_1_4 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS Loading Loading @@ -913,15 +915,21 @@ coverage-test-on-main-scheduled: script: - *print-common-info - make GCOV=1 -j - cp IVAS_rend IVAS_rend_ref # Copy exec to be able to run renderer script - python3 tests/create_short_testvectors.py - python3 -m pytest tests -v -n 0 --update_ref 1 -m create_ref --ref_encoder_path ./IVAS_cod --ref_decoder_path ./IVAS_dec - python3 -m pytest tests -v -n 0 --update_ref 1 -m create_ref_part2 --ref_encoder_path ./IVAS_cod --ref_decoder_path ./IVAS_dec - python3 -m pytest tests/test_param_file.py -v -n 0 --update_ref 1 -m create_ref --param_file scripts/config/self_test_evs.prm --ref_encoder_path ./IVAS_cod --ref_decoder_path ./IVAS_dec - bash ci/smoke_test.sh coverage - python3 -m pytest -q -n auto tests/renderer/test_renderer_be_comparison.py - bash ci/ivas_voip_be_test.sh coverage - lcov -c -d obj -o coverage.info - genhtml coverage.info -o coverage - commit_sha=$(git rev-parse HEAD) - genhtml coverage.info -o coverage -t "Coverage on main @ $commit_sha" artifacts: name: "main-coverage-sha-$CI_COMMIT_SHORT_SHA" when: always expire_in: 1 week paths: - coverage.info - coverage Loading Loading @@ -954,8 +962,8 @@ coverage-test-on-main-scheduled: - mv -f wmops/log_*_all.txt wmops/*.js ${public_dir}/ # move logfiles for links - mkdir $public_dir/logs # first move logs for "native" sampling rate - log_files=$(cat $public_dir/graphs_wmops_flc.js | grep logFile | sed "s/.*\(wmops_newsletter_.*\.csv\).*/\1/g") # first move logs - log_files=$(cat $public_dir/graphs*.js | grep logFile | sed "s/.*\(wmops_newsletter_.*\.csv\).*/\1/g") - echo $log_files - ls wmops/logs - for f in $log_files; do [ -f wmops/logs/$f ] && mv wmops/logs/$f $public_dir/logs/$f; done Loading Loading @@ -1079,57 +1087,14 @@ complexity-StereoDmxEVS-stereo-in-mono-out: # --------------------------------------------------------------- # job that sets up gitlab pages website # is run on a separate schedule and collects artifacts from other jobs (currently # only the complexity measurements) multiple times a day pages: stage: deploy tags: - ivas-linux rules: - if: $UPDATE_PAGES # TODO: add coverage job script: - API_URL_BASE=https://forge.3gpp.org/rep/api/v4/projects/$CI_PROJECT_ID/jobs - branch=$CI_COMMIT_REF_NAME - mkdir public ### fetch artifacts from latest run of complexity jobs - job_id=$(python3 ci/get_id_of_last_job_occurence.py $branch complexity-stereo-in-stereo-out) - echo $job_id - echo "$API_URL_BASE/$job_id/artifacts" - curl --request GET "$API_URL_BASE/$job_id/artifacts" --output artifacts_comp_stereo.zip - cat artifacts_comp_stereo.zip - unzip -o artifacts_comp_stereo.zip - mv complexity-stereo-in-stereo-out-public ./public/ - job_id=$(python3 ci/get_id_of_last_job_occurence.py $branch complexity-ism-in-binaural-out) - curl --request GET "$API_URL_BASE/$job_id/artifacts" --output artifacts_comp_ism.zip - unzip -o artifacts_comp_ism.zip - mv complexity-ism-in-binaural-out-public ./public/ - job_id=$(python3 ci/get_id_of_last_job_occurence.py $branch complexity-sba-hoa3-in-hoa3-out) - curl --request GET "$API_URL_BASE/$job_id/artifacts" --output artifacts_comp_sba.zip - unzip -o artifacts_comp_sba.zip - mv complexity-sba-hoa3-in-hoa3-out-public ./public/ - job_id=$(python3 ci/get_id_of_last_job_occurence.py $branch complexity-mc-in-7_1_4-out) - curl --request GET "$API_URL_BASE/$job_id/artifacts" --output artifacts_comp_mc.zip - unzip -o artifacts_comp_mc.zip - mv complexity-mc-in-7_1_4-out-public ./public/ - job_id=$(python3 ci/get_id_of_last_job_occurence.py $branch complexity-masa-in-7_1_4-out) - curl --request GET "$API_URL_BASE/$job_id/artifacts" --output artifacts_comp_masa.zip - unzip -o artifacts_comp_masa.zip - mv complexity-masa-in-7_1_4-out-public ./public/ - job_id=$(python3 ci/get_id_of_last_job_occurence.py $branch complexity-StereoDmxEVS-stereo-in-mono-out) - curl --request GET "$API_URL_BASE/$job_id/artifacts" --output artifacts_comp_StereoDmxEVS.zip - unzip -o artifacts_comp_StereoDmxEVS.zip - mv complexity-StereoDmxEVS-stereo-in-mono-out-public ./public/ - cp ci/index-pages.html public/index.html - python3 ci/setup_pages.py artifacts: paths: - public Loading
.gitlab/issue_templates/generic_issue.md→.gitlab/issue_templates/default.md +0 −0 File moved. View file
.gitlab/issue_templates/sanitizer_error.md 0 → 100644 +39 −0 Original line number Diff line number Diff line ### Basic info - Commit SHA: ### Bug description Clang (msan/asan?) sanitizer test in pipeline found an error: <!--- Copy sanitizer traceback from command line here --> ``` ``` <!--- Copy test job URL here --> Link to test pipeline: XXX ### Ways to reproduce Using the [scripts](https://forge.3gpp.org/rep/ivas-codec-pc/ivas-codec/-/wikis/Software-development/pyivastest-howto#how-to-reproduce-tests): <!--- check correct sanitizer type --> <!--- add error pattern if needed --> ``` python3 scripts/IvasBuildAndRunChecks.py --checks CLANGX -m MODE -p /path/to/my/local/ci_linux_ltv_local.json ``` or directly: ``` make clean make -j CLANG=X ./IVAS_cod ... eid-xor -vbr -fer bit ep_015.g192 bit_fer ./IVAS_dec ... ``` <!--- Below are labels that will be added but are not shown in description. This is a template to help fill them. Add further information to the first row and remove and add labels as necessary. --> /label ~"Priority::Critical" ~Company: ~Subpart: /label ~Type:Bug ~Status::ToDo