Loading .gitlab-ci.yml +43 −19 Original line number Diff line number Diff line Loading @@ -1076,29 +1076,53 @@ check-first-frame-is-sid: script: - *print-common-info - *update-ltv-repo # Temporary fix to test only SID start config files in this job # this rm makes check-for-testvectors only check for the signals we actually need in this test - rm scripts/config/ci_linux_ltv.json scripts/config/ci_linux.json - *check-for-testvectors - cmake . - make -j - exit_code_no_sba=0 - exit_code_hoa=0 - exit_code_foa=0 # run all modes and cut bitstream to start with an SID. Use stereo output to limit runtime, test is only about decoding - ism_md_cmd="--ism_metadata_files /usr/local/ltv/ltvISM1.csv /usr/local/ltv/ltvISM2.csv /usr/local/ltv/ltvISM3.csv /usr/local/ltv/ltvISM4.csv" - modes=$(scripts/runIvasCodec.py -l | grep dtx | grep -vE "FOA|HOA" ) - scripts/runIvasCodec.py -z console -p scripts/config/ci_linux_sidstart_test.json -m $modes -s --bs_length 200 -U 0:20 --oc stereo $ism_md_cmd --timeout 10 || exit_code_no_sba=$? - modes=$(scripts/runIvasCodec.py -l | grep dtx | grep -E "HOA") - scripts/runIvasCodec.py -z console -p scripts/config/ci_linux_sidstart_test.json -m $modes -s --bs_length 100 -U 70:80 --oc stereo --timeout 10 || exit_code_hoa=$? - modes=$(scripts/runIvasCodec.py -l | grep dtx | grep "FOA") - scripts/runIvasCodec.py -z console -p scripts/config/ci_linux_sidstart_test.json -m $modes -s --bs_length 100 -U 75:110 --oc stereo --timeout 10 || exit_code_foa=$? - if [ $exit_code_no_sba -ne 0 ] || [ $exit_code_hoa -ne 0 ] || [ $exit_code_foa -ne 0 ]; then exit 1; fi # build encoder without sanitizers for faster runtime - make clean - make -j IVAS_cod - mv IVAS_cod IVAS_cod_nosan # run all modes and cut bitstream to start with an SID. Use mono output to limit runtime, test is only about decoding the first frame - modes_no_sba=$(scripts/runIvasCodec.py -l | grep dtx | grep -vE "FOA|HOA" ) - modes_hoa=$(scripts/runIvasCodec.py -l | grep dtx | grep -E "HOA") - modes_foa=$(scripts/runIvasCodec.py -l | grep dtx | grep "FOA") - exit_code_msan=0 - exit_code_asan_usan=0 - testcase_timeout=20 - common_args="-z console -p scripts/config/ci_linux_sidstart_test.json -s --oc mono --timeout $testcase_timeout" # first encoder + MSAN decoder # hack to use the encoder with no sanitizers - mkdir CLANG1 - make clean - make IVAS_dec -j CLANG=1 - cp IVAS_dec CLANG1/IVAS_dec - cp IVAS_cod_nosan CLANG1/IVAS_cod - scripts/IvasBuildAndRunChecks.py --checks CLANG1 -m $modes_no_sba --bs_length 200 -U 0:20 $common_args || exit_code_msan=$? - scripts/IvasBuildAndRunChecks.py --checks CLANG1 -m $modes_hoa --bs_length 100 -U 70:80 $common_args || exit_code_msan=$? - scripts/IvasBuildAndRunChecks.py --checks CLANG1 -m $modes_foa --bs_length 100 -U 75:110 $common_args || exit_code_msan=$? - mv CLANG1/logs logs_msan # ASAN and USAN can be done in one go and decoder only # copy encoder output from CLANG1 dir - mkdir CLANG2 CLANG3 - cp CLANG1/enc CLANG2/enc - cp CLANG1/enc CLANG3/enc - scripts/IvasBuildAndRunChecks.py --checks CLANG2 CLANG3 --decoder_only -m $modes_no_sba --bs_length 200 -U 0:20 $common_args || exit_code_asan_usan=$? - scripts/IvasBuildAndRunChecks.py --checks CLANG2 CLANG3 --decoder_only -m $modes_hoa --bs_length 100 -U 70:80 $common_args || exit_code_asan_usan=$? - scripts/IvasBuildAndRunChecks.py --checks CLANG2 CLANG3 --decoder_only -m $modes_foa --bs_length 100 -U 75:110 $common_args || exit_code_asan_usan=$? - mv CLANG2/logs logs_asan - mv CLANG3/logs logs_usan - if [ $exit_code_msan -ne 0 ] || [ $exit_code_asan_usan -ne 0 ]; then echo "There was either a crash or a sanitizer error encountered when decoding a bitstream that starts with an SID. Check the artifacts for the logfiles."; exit 1; fi artifacts: paths: - out/logs - logs_msan - logs_asan - logs_usan when: always name: "$CI_JOB_NAME--$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--sidstart" expose_as: "logs-sidstart" Loading Loading
.gitlab-ci.yml +43 −19 Original line number Diff line number Diff line Loading @@ -1076,29 +1076,53 @@ check-first-frame-is-sid: script: - *print-common-info - *update-ltv-repo # Temporary fix to test only SID start config files in this job # this rm makes check-for-testvectors only check for the signals we actually need in this test - rm scripts/config/ci_linux_ltv.json scripts/config/ci_linux.json - *check-for-testvectors - cmake . - make -j - exit_code_no_sba=0 - exit_code_hoa=0 - exit_code_foa=0 # run all modes and cut bitstream to start with an SID. Use stereo output to limit runtime, test is only about decoding - ism_md_cmd="--ism_metadata_files /usr/local/ltv/ltvISM1.csv /usr/local/ltv/ltvISM2.csv /usr/local/ltv/ltvISM3.csv /usr/local/ltv/ltvISM4.csv" - modes=$(scripts/runIvasCodec.py -l | grep dtx | grep -vE "FOA|HOA" ) - scripts/runIvasCodec.py -z console -p scripts/config/ci_linux_sidstart_test.json -m $modes -s --bs_length 200 -U 0:20 --oc stereo $ism_md_cmd --timeout 10 || exit_code_no_sba=$? - modes=$(scripts/runIvasCodec.py -l | grep dtx | grep -E "HOA") - scripts/runIvasCodec.py -z console -p scripts/config/ci_linux_sidstart_test.json -m $modes -s --bs_length 100 -U 70:80 --oc stereo --timeout 10 || exit_code_hoa=$? - modes=$(scripts/runIvasCodec.py -l | grep dtx | grep "FOA") - scripts/runIvasCodec.py -z console -p scripts/config/ci_linux_sidstart_test.json -m $modes -s --bs_length 100 -U 75:110 --oc stereo --timeout 10 || exit_code_foa=$? - if [ $exit_code_no_sba -ne 0 ] || [ $exit_code_hoa -ne 0 ] || [ $exit_code_foa -ne 0 ]; then exit 1; fi # build encoder without sanitizers for faster runtime - make clean - make -j IVAS_cod - mv IVAS_cod IVAS_cod_nosan # run all modes and cut bitstream to start with an SID. Use mono output to limit runtime, test is only about decoding the first frame - modes_no_sba=$(scripts/runIvasCodec.py -l | grep dtx | grep -vE "FOA|HOA" ) - modes_hoa=$(scripts/runIvasCodec.py -l | grep dtx | grep -E "HOA") - modes_foa=$(scripts/runIvasCodec.py -l | grep dtx | grep "FOA") - exit_code_msan=0 - exit_code_asan_usan=0 - testcase_timeout=20 - common_args="-z console -p scripts/config/ci_linux_sidstart_test.json -s --oc mono --timeout $testcase_timeout" # first encoder + MSAN decoder # hack to use the encoder with no sanitizers - mkdir CLANG1 - make clean - make IVAS_dec -j CLANG=1 - cp IVAS_dec CLANG1/IVAS_dec - cp IVAS_cod_nosan CLANG1/IVAS_cod - scripts/IvasBuildAndRunChecks.py --checks CLANG1 -m $modes_no_sba --bs_length 200 -U 0:20 $common_args || exit_code_msan=$? - scripts/IvasBuildAndRunChecks.py --checks CLANG1 -m $modes_hoa --bs_length 100 -U 70:80 $common_args || exit_code_msan=$? - scripts/IvasBuildAndRunChecks.py --checks CLANG1 -m $modes_foa --bs_length 100 -U 75:110 $common_args || exit_code_msan=$? - mv CLANG1/logs logs_msan # ASAN and USAN can be done in one go and decoder only # copy encoder output from CLANG1 dir - mkdir CLANG2 CLANG3 - cp CLANG1/enc CLANG2/enc - cp CLANG1/enc CLANG3/enc - scripts/IvasBuildAndRunChecks.py --checks CLANG2 CLANG3 --decoder_only -m $modes_no_sba --bs_length 200 -U 0:20 $common_args || exit_code_asan_usan=$? - scripts/IvasBuildAndRunChecks.py --checks CLANG2 CLANG3 --decoder_only -m $modes_hoa --bs_length 100 -U 70:80 $common_args || exit_code_asan_usan=$? - scripts/IvasBuildAndRunChecks.py --checks CLANG2 CLANG3 --decoder_only -m $modes_foa --bs_length 100 -U 75:110 $common_args || exit_code_asan_usan=$? - mv CLANG2/logs logs_asan - mv CLANG3/logs logs_usan - if [ $exit_code_msan -ne 0 ] || [ $exit_code_asan_usan -ne 0 ]; then echo "There was either a crash or a sanitizer error encountered when decoding a bitstream that starts with an SID. Check the artifacts for the logfiles."; exit 1; fi artifacts: paths: - out/logs - logs_msan - logs_asan - logs_usan when: always name: "$CI_JOB_NAME--$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--sidstart" expose_as: "logs-sidstart" Loading