Loading .gitignore +5 −0 Original line number Diff line number Diff line Loading @@ -47,6 +47,8 @@ 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 +65,6 @@ __pycache__/ #history .history/ # coan output files that are created when cleaning out switches coan_out_* .gitlab-ci.yml +45 −109 Original line number Diff line number Diff line Loading @@ -147,7 +147,7 @@ stages: .build-job-linux: stage: build timeout: "2 minutes" timeout: "4 minutes" tags: - ivas-linux Loading Loading @@ -201,26 +201,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 +250,18 @@ 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 with PLC 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 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 +269,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 +280,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 +291,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 +302,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 +313,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 --log-level ERROR -n auto -rA --junit-xml=report-junit.xml tests/renderer/test_renderer.py - 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 @@ -353,19 +335,20 @@ external-renderer-cmake-asan-pytest: - python3 ci/disable_ram_counting.py - cmake -B cmake-build -G "Unix Makefiles" -DCLANG=asan -DCOPY_EXECUTABLES_FROM_BUILD_DIR=true - cmake --build cmake-build -- -j - python3 -m pytest -q --log-level ERROR -n auto -rA --junit-xml=report-junit.xml tests/renderer/test_renderer.py - 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 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 @@ -375,41 +358,20 @@ external-renderer-cmake-msan-pytest: - python3 ci/disable_ram_counting.py - cmake -B cmake-build -G "Unix Makefiles" -DCLANG=msan -DCOPY_EXECUTABLES_FROM_BUILD_DIR=true - cmake --build cmake-build -- -j - python3 -m pytest -q --log-level ERROR -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 cmake msan pytest results" reports: junit: - report-junit.xml - python3 -m pytest -q -n auto -rA --junit-xml=report-junit.xml tests/renderer/test_renderer.py # 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 --log-level ERROR -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" expose_as: "renderer msan pytest 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 @@ -457,7 +419,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 @@ -558,6 +520,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 @@ -911,12 +884,17 @@ 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 Loading Loading @@ -963,6 +941,7 @@ coverage-test-on-main-scheduled: - sed -i "s/IVAS FORMAT/IVAS $in_format to $out_format/g" ${public_dir}/index.html # do separately here to avoid overwrite complaints by mv - mv -f ci/complexity_measurements/style.css ${public_dir}/ - ls $public_dir .complexity-template: extends: Loading Loading @@ -1076,57 +1055,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 CMakeLists.txt +3 −14 Original line number Diff line number Diff line Loading @@ -108,10 +108,6 @@ if(WMOPS) add_definitions("-DWMOPS=1") endif() if(DEC_TO_REND_FLOAT_DUMP) add_compile_definitions(DEC_TO_REND_FLOAT_DUMP) endif() project(stereo-evs) set_property(GLOBAL PROPERTY USE_FOLDERS ON) # make Visual Studio projects look nicer include(CTest) Loading Loading @@ -156,14 +152,6 @@ file(GLOB libUtilSrcs "lib_util/*.c") file(GLOB libUtilHeaders "lib_util/*.h") add_library(lib_util ${libUtilSrcs} ${libUtilHeaders}) file(GLOB unitTestCRendSrcs "scripts/ivas_pytests/tests/unit_tests/crend/*.c") file(GLOB unitTestCRendHeaders "scripts/ivas_pytests/tests/unit_tests/crend/*.h") add_executable(IVAS_crend_unit_test ${unitTestCRendSrcs} ${unitTestCRendHeaders}) target_link_libraries(IVAS_crend_unit_test lib_rend lib_dec lib_util lib_com lib_debug) add_executable(renderer_standalone "scripts/td_object_renderer/object_renderer_standalone/object_renderer_standalone/renderer_standalone.c") target_link_libraries(renderer_standalone lib_rend lib_dec lib_util lib_com lib_debug) add_executable(IVAS_cod apps/encoder.c) target_link_libraries(IVAS_cod lib_enc lib_util) if(WIN32) Loading @@ -184,6 +172,7 @@ if(COPY_EXECUTABLES_FROM_BUILD_DIR) add_custom_command(TARGET IVAS_cod POST_BUILD VERBATIM COMMAND "${CMAKE_COMMAND}" -E copy "$<TARGET_FILE:IVAS_cod>" "${CMAKE_CURRENT_SOURCE_DIR}/") add_custom_command(TARGET IVAS_dec POST_BUILD VERBATIM COMMAND "${CMAKE_COMMAND}" -E copy "$<TARGET_FILE:IVAS_dec>" "${CMAKE_CURRENT_SOURCE_DIR}/") add_custom_command(TARGET IVAS_rend POST_BUILD VERBATIM COMMAND "${CMAKE_COMMAND}" -E copy "$<TARGET_FILE:IVAS_rend>" "${CMAKE_CURRENT_SOURCE_DIR}/") add_custom_command(TARGET IVAS_crend_unit_test POST_BUILD VERBATIM COMMAND "${CMAKE_COMMAND}" -E copy "$<TARGET_FILE:IVAS_crend_unit_test>" "${CMAKE_CURRENT_SOURCE_DIR}/scripts/ivas_pytests/tests/unit_tests/crend/") add_custom_command(TARGET renderer_standalone POST_BUILD VERBATIM COMMAND "${CMAKE_COMMAND}" -E copy "$<TARGET_FILE:renderer_standalone>" "${CMAKE_CURRENT_SOURCE_DIR}/scripts/td_object_renderer/object_renderer_standalone/") endif() # Allow creating packages for CMake install install(TARGETS lib_enc lib_dec lib_rend lib_com lib_util ARCHIVE DESTINATION lib) Makefile +1 −28 Original line number Diff line number Diff line Loading @@ -11,15 +11,6 @@ SRC_APP = apps BUILD = build OBJDIR = obj # Dirs for python unittests UTESTS_SCRIPT_DIR = scripts/ivas_pytests UTESTS_DIR = $(UTESTS_SCRIPT_DIR)/tests/unit_tests UTESTS_CREND_DIR = $(UTESTS_DIR)/crend # Source paths for python unittests SRC_UTESTS = $(UTESTS_CREND_DIR) SRC_DIRS = $(sort -u $(SRC_LIBCOM) $(SRC_LIBDEBUG) $(SRC_LIBDEC) $(SRC_LIBENC) $(SRC_LIBREND) $(SRC_LIBUTIL) $(SRC_APP) $(SRC_UTESTS)) # Name of CLI binaries Loading @@ -33,8 +24,6 @@ LIB_LIBENC ?= libivasenc.a LIB_LIBREND ?= libivasrend.a LIB_LIBUTIL ?= libivasutil.a CLI_UTESTS_CREND ?= IVAS_crend_unit_test # Default tool settings CC ?= gcc RM ?= rm -f Loading Loading @@ -131,8 +120,6 @@ SRCS_LIBENC = $(foreach DIR,$(SRC_LIBENC),$(patsubst $(DIR)/%,%,$(wildcard $(D SRCS_LIBREND = $(foreach DIR,$(SRC_LIBREND),$(patsubst $(DIR)/%,%,$(wildcard $(DIR)/*.c))) SRCS_LIBUTIL = $(foreach DIR,$(SRC_LIBUTIL),$(patsubst $(DIR)/%,%,$(wildcard $(DIR)/*.c))) SRCS_UTESTS_CREND = $(foreach DIR,$(UTESTS_CREND_DIR),$(patsubst $(DIR)/%,%,$(wildcard $(DIR)/*.c))) OBJS_LIBCOM = $(addprefix $(OBJDIR)/,$(SRCS_LIBCOM:.c=.o)) OBJS_LIBDEBUG = $(addprefix $(OBJDIR)/,$(SRCS_LIBDEBUG:.c=.o)) OBJS_LIBDEC = $(addprefix $(OBJDIR)/,$(SRCS_LIBDEC:.c=.o)) Loading @@ -143,11 +130,6 @@ OBJS_CLI_APIDEC = $(OBJDIR)/decoder.o OBJS_CLI_APIENC = $(OBJDIR)/encoder.o OBJS_CLI_APPREND = $(OBJDIR)/renderer.o OBJS_CLI_UTESTS_CREND = $(addprefix $(OBJDIR)/,$(SRCS_UTESTS_CREND:.c=.o)) OBJS_UTESTS = $(OBJS_CLI_UTESTS_CREND) DEPS = $(addprefix $(OBJDIR)/,$(SRCS_LIBCOM:.c=.P) $(SRCS_LIBDEBUG:.c=.P) $(SRCS_LIBDEC:.c=.P) \ $(SRCS_LIBENC:.c=.P) $(SRCS_LIBUTIL:.c=.P)) Loading Loading @@ -187,23 +169,14 @@ $(CLI_APIDEC): $(OBJS_CLI_APIDEC) $(LIB_LIBDEC) $(LIB_LIBCOM) $(LIB_LIBUTIL) $(L $(CLI_APIREND): $(OBJS_CLI_APPREND) $(LIB_LIBREND) $(LIB_LIBCOM) $(LIB_LIBUTIL) $(LIB_LIBDEBUG) $(LIB_LIBDEC) $(QUIET_LINK)$(CC) $(LDFLAGS) $(OBJS_CLI_APPREND) -L. -livasrend -livasdec -livasutil -livasdebug -livascom $(LDLIBS) -o $(CLI_APIREND) $(CLI_UTESTS_CREND): $(OBJS_CLI_UTESTS_CREND) $(LIB_LIBDEC) $(LIB_LIBCOM) $(LIB_LIBUTIL) $(LIB_LIBDEBUG) $(QUIET_LINK)$(CC) $(LDFLAGS) $(OBJS_CLI_UTESTS_CREND) -L. -livasdec -livascom -livasutil -livasdebug $(LDLIBS) -o $(UTESTS_CREND_DIR)/$(CLI_UTESTS_CREND) unittests: $(CLI_UTESTS_CREND) libs: $(LIB_LIBENC) $(LIB_LIBDEBUG) $(LIB_LIBCOM) $(LIB_LIBDEC) $(LIB_LIBREND) $(LIB_LIBUTIL) clean: clean_unittests clean: $(QUIET)$(RM) $(OBJS_LIBENC) $(OBJS_LIBDEC) $(DEPS) $(QUIET)$(RM) $(DEPS:.P=.d) $(QUIET)test ! -d $(OBJDIR) || rm -rf $(OBJDIR) $(QUIET)$(RM) $(CLI_APIENC) $(CLI_APIDEC) $(CLI_APIREND) $(LIB_LIBENC) $(LIB_LIBDEBUG) $(LIB_LIBCOM) $(LIB_LIBDEC) $(LIB_LIBUTIL) $(LIB_LIBREND) clean_unittests: $(QUIET)$(RM) $(OBJS_UTESTS) $(QUIET)$(RM) $(UTESTS_CREND_DIR)/$(CLI_UTESTS_CREND) $(OBJDIR)/%.o : %.c | $(OBJDIR) $(QUIET_CC)$(CC) $(CFLAGS) -c -MD -o $@ $< @cp $(OBJDIR)/$*.d $(OBJDIR)/$*.P; \ Loading Workspace_msvc/lib_debug.vcxproj +3 −7 Original line number Diff line number Diff line Loading @@ -143,20 +143,16 @@ </ItemDefinitionGroup> <ItemGroup> <ClCompile Include="..\lib_debug\debug.c" /> <ClCompile Include="..\lib_debug\memory.c" /> <ClCompile Include="..\lib_debug\mem_count.c" /> <ClCompile Include="..\lib_debug\segsnr.c" /> <ClCompile Include="..\lib_debug\snr.c" /> <ClCompile Include="..\lib_debug\sba_debug.c" /> <ClCompile Include="..\lib_debug\wmops.c" /> <ClCompile Include="..\lib_debug\wmc_auto.c" /> </ItemGroup> <ItemGroup> <ClInclude Include="..\lib_debug\debug.h" /> <ClInclude Include="..\lib_debug\deb_out.h" /> <ClInclude Include="..\lib_debug\errorhnd.h" /> <ClInclude Include="..\lib_debug\mem_count.h" /> <ClInclude Include="..\lib_debug\sba_debug.h" /> <ClInclude Include="..\lib_debug\wmops.h" /> <ClInclude Include="..\lib_debug\wmc_auto.h" /> </ItemGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <ImportGroup Label="ExtensionTargets"> Loading Loading
.gitignore +5 −0 Original line number Diff line number Diff line Loading @@ -47,6 +47,8 @@ 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 +65,6 @@ __pycache__/ #history .history/ # coan output files that are created when cleaning out switches coan_out_*
.gitlab-ci.yml +45 −109 Original line number Diff line number Diff line Loading @@ -147,7 +147,7 @@ stages: .build-job-linux: stage: build timeout: "2 minutes" timeout: "4 minutes" tags: - ivas-linux Loading Loading @@ -201,26 +201,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 +250,18 @@ 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 with PLC 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 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 +269,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 +280,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 +291,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 +302,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 +313,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 --log-level ERROR -n auto -rA --junit-xml=report-junit.xml tests/renderer/test_renderer.py - 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 @@ -353,19 +335,20 @@ external-renderer-cmake-asan-pytest: - python3 ci/disable_ram_counting.py - cmake -B cmake-build -G "Unix Makefiles" -DCLANG=asan -DCOPY_EXECUTABLES_FROM_BUILD_DIR=true - cmake --build cmake-build -- -j - python3 -m pytest -q --log-level ERROR -n auto -rA --junit-xml=report-junit.xml tests/renderer/test_renderer.py - 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 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 @@ -375,41 +358,20 @@ external-renderer-cmake-msan-pytest: - python3 ci/disable_ram_counting.py - cmake -B cmake-build -G "Unix Makefiles" -DCLANG=msan -DCOPY_EXECUTABLES_FROM_BUILD_DIR=true - cmake --build cmake-build -- -j - python3 -m pytest -q --log-level ERROR -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 cmake msan pytest results" reports: junit: - report-junit.xml - python3 -m pytest -q -n auto -rA --junit-xml=report-junit.xml tests/renderer/test_renderer.py # 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 --log-level ERROR -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" expose_as: "renderer msan pytest 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 @@ -457,7 +419,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 @@ -558,6 +520,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 @@ -911,12 +884,17 @@ 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 Loading Loading @@ -963,6 +941,7 @@ coverage-test-on-main-scheduled: - sed -i "s/IVAS FORMAT/IVAS $in_format to $out_format/g" ${public_dir}/index.html # do separately here to avoid overwrite complaints by mv - mv -f ci/complexity_measurements/style.css ${public_dir}/ - ls $public_dir .complexity-template: extends: Loading Loading @@ -1076,57 +1055,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
CMakeLists.txt +3 −14 Original line number Diff line number Diff line Loading @@ -108,10 +108,6 @@ if(WMOPS) add_definitions("-DWMOPS=1") endif() if(DEC_TO_REND_FLOAT_DUMP) add_compile_definitions(DEC_TO_REND_FLOAT_DUMP) endif() project(stereo-evs) set_property(GLOBAL PROPERTY USE_FOLDERS ON) # make Visual Studio projects look nicer include(CTest) Loading Loading @@ -156,14 +152,6 @@ file(GLOB libUtilSrcs "lib_util/*.c") file(GLOB libUtilHeaders "lib_util/*.h") add_library(lib_util ${libUtilSrcs} ${libUtilHeaders}) file(GLOB unitTestCRendSrcs "scripts/ivas_pytests/tests/unit_tests/crend/*.c") file(GLOB unitTestCRendHeaders "scripts/ivas_pytests/tests/unit_tests/crend/*.h") add_executable(IVAS_crend_unit_test ${unitTestCRendSrcs} ${unitTestCRendHeaders}) target_link_libraries(IVAS_crend_unit_test lib_rend lib_dec lib_util lib_com lib_debug) add_executable(renderer_standalone "scripts/td_object_renderer/object_renderer_standalone/object_renderer_standalone/renderer_standalone.c") target_link_libraries(renderer_standalone lib_rend lib_dec lib_util lib_com lib_debug) add_executable(IVAS_cod apps/encoder.c) target_link_libraries(IVAS_cod lib_enc lib_util) if(WIN32) Loading @@ -184,6 +172,7 @@ if(COPY_EXECUTABLES_FROM_BUILD_DIR) add_custom_command(TARGET IVAS_cod POST_BUILD VERBATIM COMMAND "${CMAKE_COMMAND}" -E copy "$<TARGET_FILE:IVAS_cod>" "${CMAKE_CURRENT_SOURCE_DIR}/") add_custom_command(TARGET IVAS_dec POST_BUILD VERBATIM COMMAND "${CMAKE_COMMAND}" -E copy "$<TARGET_FILE:IVAS_dec>" "${CMAKE_CURRENT_SOURCE_DIR}/") add_custom_command(TARGET IVAS_rend POST_BUILD VERBATIM COMMAND "${CMAKE_COMMAND}" -E copy "$<TARGET_FILE:IVAS_rend>" "${CMAKE_CURRENT_SOURCE_DIR}/") add_custom_command(TARGET IVAS_crend_unit_test POST_BUILD VERBATIM COMMAND "${CMAKE_COMMAND}" -E copy "$<TARGET_FILE:IVAS_crend_unit_test>" "${CMAKE_CURRENT_SOURCE_DIR}/scripts/ivas_pytests/tests/unit_tests/crend/") add_custom_command(TARGET renderer_standalone POST_BUILD VERBATIM COMMAND "${CMAKE_COMMAND}" -E copy "$<TARGET_FILE:renderer_standalone>" "${CMAKE_CURRENT_SOURCE_DIR}/scripts/td_object_renderer/object_renderer_standalone/") endif() # Allow creating packages for CMake install install(TARGETS lib_enc lib_dec lib_rend lib_com lib_util ARCHIVE DESTINATION lib)
Makefile +1 −28 Original line number Diff line number Diff line Loading @@ -11,15 +11,6 @@ SRC_APP = apps BUILD = build OBJDIR = obj # Dirs for python unittests UTESTS_SCRIPT_DIR = scripts/ivas_pytests UTESTS_DIR = $(UTESTS_SCRIPT_DIR)/tests/unit_tests UTESTS_CREND_DIR = $(UTESTS_DIR)/crend # Source paths for python unittests SRC_UTESTS = $(UTESTS_CREND_DIR) SRC_DIRS = $(sort -u $(SRC_LIBCOM) $(SRC_LIBDEBUG) $(SRC_LIBDEC) $(SRC_LIBENC) $(SRC_LIBREND) $(SRC_LIBUTIL) $(SRC_APP) $(SRC_UTESTS)) # Name of CLI binaries Loading @@ -33,8 +24,6 @@ LIB_LIBENC ?= libivasenc.a LIB_LIBREND ?= libivasrend.a LIB_LIBUTIL ?= libivasutil.a CLI_UTESTS_CREND ?= IVAS_crend_unit_test # Default tool settings CC ?= gcc RM ?= rm -f Loading Loading @@ -131,8 +120,6 @@ SRCS_LIBENC = $(foreach DIR,$(SRC_LIBENC),$(patsubst $(DIR)/%,%,$(wildcard $(D SRCS_LIBREND = $(foreach DIR,$(SRC_LIBREND),$(patsubst $(DIR)/%,%,$(wildcard $(DIR)/*.c))) SRCS_LIBUTIL = $(foreach DIR,$(SRC_LIBUTIL),$(patsubst $(DIR)/%,%,$(wildcard $(DIR)/*.c))) SRCS_UTESTS_CREND = $(foreach DIR,$(UTESTS_CREND_DIR),$(patsubst $(DIR)/%,%,$(wildcard $(DIR)/*.c))) OBJS_LIBCOM = $(addprefix $(OBJDIR)/,$(SRCS_LIBCOM:.c=.o)) OBJS_LIBDEBUG = $(addprefix $(OBJDIR)/,$(SRCS_LIBDEBUG:.c=.o)) OBJS_LIBDEC = $(addprefix $(OBJDIR)/,$(SRCS_LIBDEC:.c=.o)) Loading @@ -143,11 +130,6 @@ OBJS_CLI_APIDEC = $(OBJDIR)/decoder.o OBJS_CLI_APIENC = $(OBJDIR)/encoder.o OBJS_CLI_APPREND = $(OBJDIR)/renderer.o OBJS_CLI_UTESTS_CREND = $(addprefix $(OBJDIR)/,$(SRCS_UTESTS_CREND:.c=.o)) OBJS_UTESTS = $(OBJS_CLI_UTESTS_CREND) DEPS = $(addprefix $(OBJDIR)/,$(SRCS_LIBCOM:.c=.P) $(SRCS_LIBDEBUG:.c=.P) $(SRCS_LIBDEC:.c=.P) \ $(SRCS_LIBENC:.c=.P) $(SRCS_LIBUTIL:.c=.P)) Loading Loading @@ -187,23 +169,14 @@ $(CLI_APIDEC): $(OBJS_CLI_APIDEC) $(LIB_LIBDEC) $(LIB_LIBCOM) $(LIB_LIBUTIL) $(L $(CLI_APIREND): $(OBJS_CLI_APPREND) $(LIB_LIBREND) $(LIB_LIBCOM) $(LIB_LIBUTIL) $(LIB_LIBDEBUG) $(LIB_LIBDEC) $(QUIET_LINK)$(CC) $(LDFLAGS) $(OBJS_CLI_APPREND) -L. -livasrend -livasdec -livasutil -livasdebug -livascom $(LDLIBS) -o $(CLI_APIREND) $(CLI_UTESTS_CREND): $(OBJS_CLI_UTESTS_CREND) $(LIB_LIBDEC) $(LIB_LIBCOM) $(LIB_LIBUTIL) $(LIB_LIBDEBUG) $(QUIET_LINK)$(CC) $(LDFLAGS) $(OBJS_CLI_UTESTS_CREND) -L. -livasdec -livascom -livasutil -livasdebug $(LDLIBS) -o $(UTESTS_CREND_DIR)/$(CLI_UTESTS_CREND) unittests: $(CLI_UTESTS_CREND) libs: $(LIB_LIBENC) $(LIB_LIBDEBUG) $(LIB_LIBCOM) $(LIB_LIBDEC) $(LIB_LIBREND) $(LIB_LIBUTIL) clean: clean_unittests clean: $(QUIET)$(RM) $(OBJS_LIBENC) $(OBJS_LIBDEC) $(DEPS) $(QUIET)$(RM) $(DEPS:.P=.d) $(QUIET)test ! -d $(OBJDIR) || rm -rf $(OBJDIR) $(QUIET)$(RM) $(CLI_APIENC) $(CLI_APIDEC) $(CLI_APIREND) $(LIB_LIBENC) $(LIB_LIBDEBUG) $(LIB_LIBCOM) $(LIB_LIBDEC) $(LIB_LIBUTIL) $(LIB_LIBREND) clean_unittests: $(QUIET)$(RM) $(OBJS_UTESTS) $(QUIET)$(RM) $(UTESTS_CREND_DIR)/$(CLI_UTESTS_CREND) $(OBJDIR)/%.o : %.c | $(OBJDIR) $(QUIET_CC)$(CC) $(CFLAGS) -c -MD -o $@ $< @cp $(OBJDIR)/$*.d $(OBJDIR)/$*.P; \ Loading
Workspace_msvc/lib_debug.vcxproj +3 −7 Original line number Diff line number Diff line Loading @@ -143,20 +143,16 @@ </ItemDefinitionGroup> <ItemGroup> <ClCompile Include="..\lib_debug\debug.c" /> <ClCompile Include="..\lib_debug\memory.c" /> <ClCompile Include="..\lib_debug\mem_count.c" /> <ClCompile Include="..\lib_debug\segsnr.c" /> <ClCompile Include="..\lib_debug\snr.c" /> <ClCompile Include="..\lib_debug\sba_debug.c" /> <ClCompile Include="..\lib_debug\wmops.c" /> <ClCompile Include="..\lib_debug\wmc_auto.c" /> </ItemGroup> <ItemGroup> <ClInclude Include="..\lib_debug\debug.h" /> <ClInclude Include="..\lib_debug\deb_out.h" /> <ClInclude Include="..\lib_debug\errorhnd.h" /> <ClInclude Include="..\lib_debug\mem_count.h" /> <ClInclude Include="..\lib_debug\sba_debug.h" /> <ClInclude Include="..\lib_debug\wmops.h" /> <ClInclude Include="..\lib_debug\wmc_auto.h" /> </ItemGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <ImportGroup Label="ExtensionTargets"> Loading