Loading .gitignore +3 −6 Original line number Diff line number Diff line Loading @@ -43,12 +43,9 @@ scripts/out/ scripts/self_test_summary.txt scripts/cppp/ binary/ tests/renderer/cut tests/renderer/ref tests/dut tests/ref tests/split_rendering/ref/* tests/split_rendering/cut/* tests/**/[c|d]ut tests/**/ref tests/*/testv scripts/testv/*_cut*.pcm # default reference binary name IVAS_cod_ref Loading .gitlab-ci.yml +91 −11 Original line number Diff line number Diff line Loading @@ -11,6 +11,7 @@ variables: EXIT_CODE_NON_BE: 123 EXIT_CODE_FAIL: 1 PROCESSING_SCRIPTS_BIN_DIR: "/test-bin" TESTS_DIR_CODEC_BE_ON_MR: "tests/codec_be_on_mr_nonselection" default: interruptible: true # Make all jobs by default interruptible Loading Loading @@ -504,6 +505,84 @@ renderer-pytest-on-merge-request: junit: - report-junit.xml # test split rendering split-rendering-smoke-test: extends: - .test-job-linux - .rules-merge-request needs: ["build-codec-linux-make"] stage: test script: - make -j - python3 -m pytest -q -n auto -rA --junit-xml=report-junit.xml tests/split_rendering/test_split_rendering.py artifacts: name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results" expire_in: 1 week when: always paths: - report-junit.xml expose_as: "split rendering make pytest results" reports: junit: - report-junit.xml # compare split-rendering bitexactness between target and source branch split-rendering-pytest-on-merge-request: extends: - .test-job-linux - .rules-merge-request needs: ["build-codec-linux-make"] # TODO: set reasonable timeout, will most likely take less timeout: "20 minutes" stage: compare script: - *print-common-info # some helper variables - "|| true" to prevent failures from grep not finding anything - non_be_flag=$(echo $CI_MERGE_REQUEST_TITLE | grep -c --ignore-case "\[split*[ -]*non[ -]*be\]") || true # TODO: needs splitting the test between reference and cut generation #- ref_using_main=$(echo $CI_MERGE_REQUEST_TITLE | grep -c --ignore-case "\[ref[ -]*using[ -]*main\]") || true # store the current commit hash - source_branch_commit_sha=$(git rev-parse HEAD) - *mr-fetch-target-branch - *mr-get-target-commit - git checkout $target_commit # build reference binaries - make -j - mv IVAS_cod IVAS_cod_ref - mv IVAS_dec IVAS_dec_ref - mv IVAS_rend IVAS_rend_ref # back to source branch - git checkout $source_branch_commit_sha - make clean - make -j # run test - exit_code=0 - python3 -m pytest -q --log-level ERROR -n auto -rA --html=report.html --self-contained-html --junit-xml=report-junit.xml tests/split_rendering/test_split_rendering_be_comparison.py || exit_code=$? - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true - *merge-request-comparison-check allow_failure: exit_codes: - 123 artifacts: name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results" expire_in: 2 week when: always paths: - report-junit.xml - report.html expose_as: "pytest split rendering results" reports: junit: - report-junit.xml # compare bit exactness between target and source branch ivas-pytest-on-merge-request: extends: Loading @@ -527,15 +606,15 @@ ivas-pytest-on-merge-request: # create short test vectors - python3 tests/create_short_testvectors.py # create references - python3 -m pytest tests -v --update_ref 1 -m create_ref - python3 -m pytest tests -v --update_ref 1 -m create_ref_part2 - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR -v --update_ref 1 -m create_ref - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR -v --update_ref 1 -m create_ref_part2 ### Run test using branch scripts and input - if [ $ref_using_main == 1 ]; then git checkout $source_branch_commit_sha; fi ### run pytest - exit_code=0 - python3 -m pytest tests -v --html=report.html --self-contained-html --junit-xml=report-junit.xml || exit_code=$? - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR -v --html=report.html --self-contained-html --junit-xml=report-junit.xml || exit_code=$? - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true - *merge-request-comparison-check Loading Loading @@ -575,14 +654,14 @@ evs-pytest-on-merge-request: ### prepare pytest # create references - python3 -m pytest tests/test_param_file.py -v --update_ref 1 -m create_ref --param_file scripts/config/self_test_evs.prm - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR/test_param_file.py -v --update_ref 1 -m create_ref --param_file scripts/config/self_test_evs.prm ### Run test using branch scripts and input - if [ $ref_using_main == 1 ]; then git checkout $source_branch_commit_sha; fi ### run pytest for EVS cases - exit_code=0 - python3 -m pytest tests/test_param_file.py -v --param_file scripts/config/self_test_evs.prm --html=report.html --self-contained-html --junit-xml=report-junit-evs.xml || exit_code=$? - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR/test_param_file.py -v --param_file scripts/config/self_test_evs.prm --html=report.html --self-contained-html --junit-xml=report-junit-evs.xml || exit_code=$? - zero_errors=$(cat report-junit-evs.xml | grep -c 'errors="0"') || true - *merge-request-comparison-check Loading Loading @@ -852,15 +931,15 @@ codec-comparison-on-main-push: - mv IVAS_cod_test IVAS_cod - mv IVAS_dec_test IVAS_dec # create references - python3 -m pytest tests -v --update_ref 1 -m create_ref - python3 -m pytest tests -v --update_ref 1 -m create_ref_part2 - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR -v --update_ref 1 -m create_ref - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR -v --update_ref 1 -m create_ref_part2 ### re-checkout the latest commit here, if ref_using_main is set - if [ $ref_using_main -eq 1 ]; then git checkout $latest_commit;fi ### run pytest - exit_code=0 - python3 -m pytest tests -v --html=report.html --self-contained-html --junit-xml=report-junit.xml || exit_code=$? - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR -v --html=report.html --self-contained-html --junit-xml=report-junit.xml || exit_code=$? - if [ $exit_code -eq 1 ] && [ $non_be_flag == 0 ]; then echo "pytest run had failures and non-BE flag not present"; exit $EXIT_CODE_FAIL; fi - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true - if [ $exit_code -eq 1 ] && [ $zero_errors == 1 ]; then echo "pytest run had failures, but no errors and non-BE flag present"; exit $EXIT_CODE_NON_BE; fi Loading Loading @@ -1132,14 +1211,15 @@ coverage-test-on-main-scheduled: rules: # only run in scheduled pipeline that passes this env vars - if: $COVERAGE_TEST timeout: 2 hours 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 - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR -v -n 0 --update_ref 1 -m create_ref --ref_encoder_path ./IVAS_cod --ref_decoder_path ./IVAS_dec - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR -v -n 0 --update_ref 1 -m create_ref_part2 --ref_encoder_path ./IVAS_cod --ref_decoder_path ./IVAS_dec - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR/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 Loading CMakeLists.txt +2 −4 Original line number Diff line number Diff line Loading @@ -134,10 +134,8 @@ target_include_directories(lib_enc PUBLIC lib_enc PRIVATE lib_dec lib_rend lc3pl file(GLOB libLC3plusSrcs "lc3plus/*.c") file(GLOB libLC3plusHeaders "lc3plus/*.h") file(GLOB libLC3plusFftSrcs "lc3plus/fft/*.c") file(GLOB libLC3plusFftHeaders "lc3plus/fft/*.h") add_library(lc3plus ${libLC3plusSrcs} ${libLC3plusFftSrcs} ${libLC3plusHeaders} ${libLC3plusFftHeaders}) target_include_directories(lc3plus PUBLIC lc3plus PRIVATE lc3plus/fft ) add_library(lc3plus ${libLC3plusSrcs} ${libLC3plusHeaders}) target_include_directories(lc3plus PUBLIC lc3plus) target_link_libraries(lc3plus lib_com) # For including options.h, which is needed for instrumentation to work correctly if(WMOPS) target_link_libraries(lc3plus lib_debug) Loading Workspace_msvc/LC3plus.vcxproj +1 −3 Original line number Diff line number Diff line Loading @@ -51,13 +51,11 @@ </ImportGroup> <PropertyGroup Label="UserMacros" /> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <LinkIncremental>true</LinkIncremental> <TargetName>LC3plus</TargetName> <OutDir>$(Platform)\$(Configuration)\</OutDir> <IntDir>$(Platform)\$(Configuration)\Obj\</IntDir> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <LinkIncremental>false</LinkIncremental> <TargetName>LC3plus</TargetName> <OutDir>$(Platform)\$(Configuration)\</OutDir> <IntDir>$(Platform)\$(Configuration)\Obj\</IntDir> Loading @@ -72,6 +70,7 @@ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> <DisableSpecificWarnings>4305;4244;4996</DisableSpecificWarnings> <DebugInformationFormat>OldStyle</DebugInformationFormat> </ClCompile> <Link> <SubSystem>Console</SubSystem> Loading Loading @@ -134,7 +133,6 @@ <ClCompile Include="..\lc3plus\plc_damping_scrambling.c" /> <ClCompile Include="..\lc3plus\plc_main.c" /> <ClCompile Include="..\lc3plus\plc_noise_substitution.c" /> <ClCompile Include="..\lc3plus\plc_noise_substitution0.c" /> <ClCompile Include="..\lc3plus\plc_tdc_tdac.c" /> <ClCompile Include="..\lc3plus\plc_update.c" /> <ClCompile Include="..\lc3plus\plc_phecu_f0_refine_first.c" /> Loading Workspace_msvc/renderer_configs/split_renderer_config_768_1dof_hoa_lc3plus.txt +1 −1 Original line number Diff line number Diff line Loading @@ -2,7 +2,7 @@ BITRATE = 768000; DOF = 1; HQMODE = 0; CODEC = 1; CODEC = LC3PLUS; [GENERAL] RENDERER = CREND; Loading Loading
.gitignore +3 −6 Original line number Diff line number Diff line Loading @@ -43,12 +43,9 @@ scripts/out/ scripts/self_test_summary.txt scripts/cppp/ binary/ tests/renderer/cut tests/renderer/ref tests/dut tests/ref tests/split_rendering/ref/* tests/split_rendering/cut/* tests/**/[c|d]ut tests/**/ref tests/*/testv scripts/testv/*_cut*.pcm # default reference binary name IVAS_cod_ref Loading
.gitlab-ci.yml +91 −11 Original line number Diff line number Diff line Loading @@ -11,6 +11,7 @@ variables: EXIT_CODE_NON_BE: 123 EXIT_CODE_FAIL: 1 PROCESSING_SCRIPTS_BIN_DIR: "/test-bin" TESTS_DIR_CODEC_BE_ON_MR: "tests/codec_be_on_mr_nonselection" default: interruptible: true # Make all jobs by default interruptible Loading Loading @@ -504,6 +505,84 @@ renderer-pytest-on-merge-request: junit: - report-junit.xml # test split rendering split-rendering-smoke-test: extends: - .test-job-linux - .rules-merge-request needs: ["build-codec-linux-make"] stage: test script: - make -j - python3 -m pytest -q -n auto -rA --junit-xml=report-junit.xml tests/split_rendering/test_split_rendering.py artifacts: name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results" expire_in: 1 week when: always paths: - report-junit.xml expose_as: "split rendering make pytest results" reports: junit: - report-junit.xml # compare split-rendering bitexactness between target and source branch split-rendering-pytest-on-merge-request: extends: - .test-job-linux - .rules-merge-request needs: ["build-codec-linux-make"] # TODO: set reasonable timeout, will most likely take less timeout: "20 minutes" stage: compare script: - *print-common-info # some helper variables - "|| true" to prevent failures from grep not finding anything - non_be_flag=$(echo $CI_MERGE_REQUEST_TITLE | grep -c --ignore-case "\[split*[ -]*non[ -]*be\]") || true # TODO: needs splitting the test between reference and cut generation #- ref_using_main=$(echo $CI_MERGE_REQUEST_TITLE | grep -c --ignore-case "\[ref[ -]*using[ -]*main\]") || true # store the current commit hash - source_branch_commit_sha=$(git rev-parse HEAD) - *mr-fetch-target-branch - *mr-get-target-commit - git checkout $target_commit # build reference binaries - make -j - mv IVAS_cod IVAS_cod_ref - mv IVAS_dec IVAS_dec_ref - mv IVAS_rend IVAS_rend_ref # back to source branch - git checkout $source_branch_commit_sha - make clean - make -j # run test - exit_code=0 - python3 -m pytest -q --log-level ERROR -n auto -rA --html=report.html --self-contained-html --junit-xml=report-junit.xml tests/split_rendering/test_split_rendering_be_comparison.py || exit_code=$? - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true - *merge-request-comparison-check allow_failure: exit_codes: - 123 artifacts: name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results" expire_in: 2 week when: always paths: - report-junit.xml - report.html expose_as: "pytest split rendering results" reports: junit: - report-junit.xml # compare bit exactness between target and source branch ivas-pytest-on-merge-request: extends: Loading @@ -527,15 +606,15 @@ ivas-pytest-on-merge-request: # create short test vectors - python3 tests/create_short_testvectors.py # create references - python3 -m pytest tests -v --update_ref 1 -m create_ref - python3 -m pytest tests -v --update_ref 1 -m create_ref_part2 - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR -v --update_ref 1 -m create_ref - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR -v --update_ref 1 -m create_ref_part2 ### Run test using branch scripts and input - if [ $ref_using_main == 1 ]; then git checkout $source_branch_commit_sha; fi ### run pytest - exit_code=0 - python3 -m pytest tests -v --html=report.html --self-contained-html --junit-xml=report-junit.xml || exit_code=$? - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR -v --html=report.html --self-contained-html --junit-xml=report-junit.xml || exit_code=$? - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true - *merge-request-comparison-check Loading Loading @@ -575,14 +654,14 @@ evs-pytest-on-merge-request: ### prepare pytest # create references - python3 -m pytest tests/test_param_file.py -v --update_ref 1 -m create_ref --param_file scripts/config/self_test_evs.prm - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR/test_param_file.py -v --update_ref 1 -m create_ref --param_file scripts/config/self_test_evs.prm ### Run test using branch scripts and input - if [ $ref_using_main == 1 ]; then git checkout $source_branch_commit_sha; fi ### run pytest for EVS cases - exit_code=0 - python3 -m pytest tests/test_param_file.py -v --param_file scripts/config/self_test_evs.prm --html=report.html --self-contained-html --junit-xml=report-junit-evs.xml || exit_code=$? - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR/test_param_file.py -v --param_file scripts/config/self_test_evs.prm --html=report.html --self-contained-html --junit-xml=report-junit-evs.xml || exit_code=$? - zero_errors=$(cat report-junit-evs.xml | grep -c 'errors="0"') || true - *merge-request-comparison-check Loading Loading @@ -852,15 +931,15 @@ codec-comparison-on-main-push: - mv IVAS_cod_test IVAS_cod - mv IVAS_dec_test IVAS_dec # create references - python3 -m pytest tests -v --update_ref 1 -m create_ref - python3 -m pytest tests -v --update_ref 1 -m create_ref_part2 - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR -v --update_ref 1 -m create_ref - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR -v --update_ref 1 -m create_ref_part2 ### re-checkout the latest commit here, if ref_using_main is set - if [ $ref_using_main -eq 1 ]; then git checkout $latest_commit;fi ### run pytest - exit_code=0 - python3 -m pytest tests -v --html=report.html --self-contained-html --junit-xml=report-junit.xml || exit_code=$? - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR -v --html=report.html --self-contained-html --junit-xml=report-junit.xml || exit_code=$? - if [ $exit_code -eq 1 ] && [ $non_be_flag == 0 ]; then echo "pytest run had failures and non-BE flag not present"; exit $EXIT_CODE_FAIL; fi - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true - if [ $exit_code -eq 1 ] && [ $zero_errors == 1 ]; then echo "pytest run had failures, but no errors and non-BE flag present"; exit $EXIT_CODE_NON_BE; fi Loading Loading @@ -1132,14 +1211,15 @@ coverage-test-on-main-scheduled: rules: # only run in scheduled pipeline that passes this env vars - if: $COVERAGE_TEST timeout: 2 hours 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 - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR -v -n 0 --update_ref 1 -m create_ref --ref_encoder_path ./IVAS_cod --ref_decoder_path ./IVAS_dec - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR -v -n 0 --update_ref 1 -m create_ref_part2 --ref_encoder_path ./IVAS_cod --ref_decoder_path ./IVAS_dec - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR/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 Loading
CMakeLists.txt +2 −4 Original line number Diff line number Diff line Loading @@ -134,10 +134,8 @@ target_include_directories(lib_enc PUBLIC lib_enc PRIVATE lib_dec lib_rend lc3pl file(GLOB libLC3plusSrcs "lc3plus/*.c") file(GLOB libLC3plusHeaders "lc3plus/*.h") file(GLOB libLC3plusFftSrcs "lc3plus/fft/*.c") file(GLOB libLC3plusFftHeaders "lc3plus/fft/*.h") add_library(lc3plus ${libLC3plusSrcs} ${libLC3plusFftSrcs} ${libLC3plusHeaders} ${libLC3plusFftHeaders}) target_include_directories(lc3plus PUBLIC lc3plus PRIVATE lc3plus/fft ) add_library(lc3plus ${libLC3plusSrcs} ${libLC3plusHeaders}) target_include_directories(lc3plus PUBLIC lc3plus) target_link_libraries(lc3plus lib_com) # For including options.h, which is needed for instrumentation to work correctly if(WMOPS) target_link_libraries(lc3plus lib_debug) Loading
Workspace_msvc/LC3plus.vcxproj +1 −3 Original line number Diff line number Diff line Loading @@ -51,13 +51,11 @@ </ImportGroup> <PropertyGroup Label="UserMacros" /> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <LinkIncremental>true</LinkIncremental> <TargetName>LC3plus</TargetName> <OutDir>$(Platform)\$(Configuration)\</OutDir> <IntDir>$(Platform)\$(Configuration)\Obj\</IntDir> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <LinkIncremental>false</LinkIncremental> <TargetName>LC3plus</TargetName> <OutDir>$(Platform)\$(Configuration)\</OutDir> <IntDir>$(Platform)\$(Configuration)\Obj\</IntDir> Loading @@ -72,6 +70,7 @@ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> <DisableSpecificWarnings>4305;4244;4996</DisableSpecificWarnings> <DebugInformationFormat>OldStyle</DebugInformationFormat> </ClCompile> <Link> <SubSystem>Console</SubSystem> Loading Loading @@ -134,7 +133,6 @@ <ClCompile Include="..\lc3plus\plc_damping_scrambling.c" /> <ClCompile Include="..\lc3plus\plc_main.c" /> <ClCompile Include="..\lc3plus\plc_noise_substitution.c" /> <ClCompile Include="..\lc3plus\plc_noise_substitution0.c" /> <ClCompile Include="..\lc3plus\plc_tdc_tdac.c" /> <ClCompile Include="..\lc3plus\plc_update.c" /> <ClCompile Include="..\lc3plus\plc_phecu_f0_refine_first.c" /> Loading
Workspace_msvc/renderer_configs/split_renderer_config_768_1dof_hoa_lc3plus.txt +1 −1 Original line number Diff line number Diff line Loading @@ -2,7 +2,7 @@ BITRATE = 768000; DOF = 1; HQMODE = 0; CODEC = 1; CODEC = LC3PLUS; [GENERAL] RENDERER = CREND; Loading