diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 187703e147e3e79cfb8af1893fb488693c1c7439..7df1635da67e33f778dd607200cb4ece465a33c9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -30,10 +30,14 @@ stages: extends: .test-job tags: - ivas-linux + +# template for test jobs on linux that need the TESTV_DIR +.test-job-linux-needs-testv-dir: + extends: .test-job-linux before_script: - if [ ! -d "$TESTV_DIR" ]; then mkdir -p $TESTV_DIR; fi - cp -r scripts/testv/* $TESTV_DIR/ - + # build all components of the project, i.e. codec itself, the unittests, the prerenderer and the standalone version of the TD object renderer build-all-linux-make: @@ -75,7 +79,7 @@ build-codec-sanitizers-linux: # test that runs all modes with 1s input signals codec-smoke-test: - extends: .test-job-linux + extends: .test-job-linux-needs-testv-dir rules: - if: $CI_PIPELINE_SOURCE == 'merge_request_event' stage: test @@ -104,8 +108,8 @@ self-test-on-merge-request: - cd .. - rm -rf build/* - ### backup testvectors from source branch before switching to arget branch -> makes sure that up-to-date testv folder is used in case the branch makes changes to it - - cp -r scripts/testv scripts/testv.bak + ### store the current commit hash + - source_branch_commit_sha=$(git rev-parse HEAD) ### checkout version to compare against # first delete local target branch to avoid conflicts when branch is cached and there are merge conflicts during fetching @@ -126,10 +130,8 @@ self-test-on-merge-request: - mv IVAS_dec ../IVAS_dec_ref - cd .. - # TODO: instead check out the source commit again - ### restore testv folder from branch - - rm -rf scripts/testv - - cp -r scripts/testv.bak scripts/testv + ### re-checkout the commit from the source branch to have up-to-date self_test.py and scripts/testv (and actually everything) + - git checkout $source_branch_commit_sha ### run selftest - ls -altr scripts/testv diff --git a/Makefile b/Makefile index 0514bf0a0990883467b9e76a158f2604bc1a898f..76c916c1d2cd05f1d4bbc38bbff20f9a9b43ab19 100644 --- a/Makefile +++ b/Makefile @@ -148,7 +148,6 @@ DEPS = $(addprefix $(OBJDIR)/,$(SRCS_LIBCOM:.c=.P) $(SRCS_LIBDEBUG:.c=.P) $(SRCS ############################################################################### .PHONY: all clean clean_unittests clean_all -.NOTPARALLEL: clean clean_unittests clean_all all: $(CLI_APIENC) $(CLI_APIDEC) diff --git a/ci/build_all_linux.sh b/ci/build_all_linux.sh index 53f72ac1eee963a9e47a3807f5b9e694b373f6ce..8a5c4add940549511dd244d1bfa25160d383158d 100755 --- a/ci/build_all_linux.sh +++ b/ci/build_all_linux.sh @@ -6,13 +6,11 @@ if [ ! -d "lib_com" ]; then fi # first build codec, everything else needs this anyway -make clean all +make clean all -j # build unittests -make unittests +make unittests -j # build prerenderer -cd scripts/prerenderer -make +make -C scripts/prerenderer -j # build standalone TD object renderer -cd .. -cd td_object_renderer/object_renderer_standalone -make +make -C scripts/td_object_renderer/object_renderer_standalone -j + diff --git a/ci/build_codec_instrumented_linux.sh b/ci/build_codec_instrumented_linux.sh index 37ac65c2c00775c9f5e281d283c66525d7e72953..e98547c5fa667f65fcf9380fba294784ebd6e6dd 100755 --- a/ci/build_codec_instrumented_linux.sh +++ b/ci/build_codec_instrumented_linux.sh @@ -8,4 +8,4 @@ fi cd scripts ./prepare_instrumentation.sh cd c-code_instrument -make +make -j diff --git a/ci/build_codec_sanitizers_linux.sh b/ci/build_codec_sanitizers_linux.sh index 054127dab261a89e5582637e756a6ba8321fdd75..65c520d25a42a444b78ced332e076495d4d732f3 100755 --- a/ci/build_codec_sanitizers_linux.sh +++ b/ci/build_codec_sanitizers_linux.sh @@ -8,8 +8,8 @@ fi # CI linux container would do this, can stay commented if clang (v13) is in your path #PATH=$PATH:/usr/lib/llvm-13/bin make clean -make CLANG=1 +make CLANG=1 -j make clean -make CLANG=2 +make CLANG=2 -j make clean -make CLANG=3 +make CLANG=3 -j diff --git a/ci/smoke_test.sh b/ci/smoke_test.sh index 108e68585b1b79025d4f39e7fde0d4c21240086d..9c423d4eece0ddba6716fcab32562d800a627a29 100755 --- a/ci/smoke_test.sh +++ b/ci/smoke_test.sh @@ -5,8 +5,9 @@ if [ ! -d "lib_com" ]; then exit 1 fi -make clean all +make clean +make all -j # get all modes except SBA rate switching (which is broken currently) list=$(./scripts/runIvasCodec.py -l | grep -v "SBA.*rs") -./scripts/runIvasCodec.py -p ./scripts/config/docker_linux.json -m $list -U 1 +./scripts/runIvasCodec.py -p ./scripts/config/ci_linux.json -m $list -U 1 diff --git a/ci/ubuntu_22.04.dockerfile b/ci/ubuntu_22.04.dockerfile deleted file mode 100644 index 00f1afcfabeeb2e79503bfb4de5f14d5d7e7e440..0000000000000000000000000000000000000000 --- a/ci/ubuntu_22.04.dockerfile +++ /dev/null @@ -1,23 +0,0 @@ -FROM ubuntu:22.04 - -RUN ln -snf /bin/bash /bin/sh - -# To avoid problems with Dialog and curses wizards -ENV DEBIAN_FRONTEND noninteractive - -# install dependencies -RUN apt-get update && apt-get install -y \ - build-essential clang-13 lldb-13 lld-13 clang-format-13 \ - valgrind git cmake \ - python3 python3-pip \ - wine wine-binfmt zip - -# for the wmc tool -RUN dpkg --add-architecture i386 && apt-get update -RUN apt-get install -y wine32 - -# cleanup -RUN rm -rf /usr/share/doc /var/lib/apt/lists/* - -RUN pip3 install --upgrade pip -RUN pip3 install numpy scipy pytest pytest-xdist diff --git a/scripts/config/ci_linux.json b/scripts/config/ci_linux.json new file mode 100644 index 0000000000000000000000000000000000000000..e8db23c8ea6516be42070fdc6cb818eac4b30396 --- /dev/null +++ b/scripts/config/ci_linux.json @@ -0,0 +1,25 @@ +{ + "afspPath": "not_needed", + "utilPath": "not_needed", + "inpaths": { + "MONO": "/usr/local/testv/all_mono.wav", + "STEREO": "/usr/local/testv/all_stereo_speech_ITU_concat.wav", + "FOA": "/usr/local/testv/test_FOA_v3.wav", + "HOA2": "/usr/local/testv/test_HOA2_v3.wav", + "HOA3": "/usr/local/testv/test_HOA3_v3.wav", + "SBA": "/usr/local/testv/test_HOA3_v3.wav", + "MASA1TC1DIR": "/usr/local/testv/test_HOA3_v3_1dir_MASA1TC.wav", + "MASA1TC2DIR": "/usr/local/testv/test_HOA3_v3_2dir_MASA1TC.wav", + "MASA2TC1DIR": "/usr/local/testv/test_HOA3_v3_1dir_MASA2TC.wav", + "MASA2TC2DIR": "/usr/local/testv/test_HOA3_v3_2dir_MASA2TC.wav", + "5_1": "/usr/local/testv/test_MC51.wav", + "5_1_2": "/usr/local/testv/test_MC51p2.wav", + "5_1_4": "/usr/local/testv/test_MC51p4.wav", + "7_1": "/usr/local/testv/test_MC71.wav", + "7_1_4": "/usr/local/testv/test_MC71p4.wav", + "ISM1": "/usr/local/testv/test_ISM_1obj.wav", + "ISM2": "/usr/local/testv/test_ISM_2obj.wav", + "ISM3": "/usr/local/testv/test_ISM_3obj.wav", + "ISM4": "/usr/local/testv/test_ISM_4obj.wav" + } +} diff --git a/scripts/config/docker_linux.json b/scripts/config/docker_linux.json deleted file mode 100644 index fdf7bb3d13161ade8bbcd4a4411bb6e096c9eb65..0000000000000000000000000000000000000000 --- a/scripts/config/docker_linux.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "afspPath": "not_needed", - "utilPath": "not_needed", - "inpaths": { - "MONO": "scripts/testv/all_mono.wav", - "STEREO": "scripts/testv/all_stereo_speech_ITU_concat.wav", - "FOA": "scripts/testv/test_FOA_v3.wav", - "HOA2": "scripts/testv/test_HOA2_v3.wav", - "HOA3": "scripts/testv/test_HOA3_v3.wav", - "SBA": "scripts/testv/test_HOA3_v3.wav", - "MASA1TC1DIR": "scripts/testv/test_HOA3_v3_1dir_MASA1TC.wav", - "MASA1TC2DIR": "scripts/testv/test_HOA3_v3_2dir_MASA1TC.wav", - "MASA2TC1DIR": "scripts/testv/test_HOA3_v3_1dir_MASA2TC.wav", - "MASA2TC2DIR": "scripts/testv/test_HOA3_v3_2dir_MASA2TC.wav", - "5_1": "scripts/testv/test_MC51.wav", - "5_1_2": "scripts/testv/test_MC51p2.wav", - "5_1_4": "scripts/testv/test_MC51p4.wav", - "7_1": "scripts/testv/test_MC71.wav", - "7_1_4": "scripts/testv/test_MC71p4.wav", - "ISM1": "scripts/testv/test_ISM_1obj.wav", - "ISM2": "scripts/testv/test_ISM_2obj.wav", - "ISM3": "scripts/testv/test_ISM_3obj.wav", - "ISM4": "scripts/testv/test_ISM_4obj.wav" - } -} diff --git a/scripts/prerenderer/Makefile b/scripts/prerenderer/Makefile index dae07e041140c7424f94ea8d384d16ec22211508..4201cd75e35fcddb78bb4f2a7532f018fc34c5b2 100644 --- a/scripts/prerenderer/Makefile +++ b/scripts/prerenderer/Makefile @@ -128,7 +128,6 @@ DEPS = $(addprefix $(OBJDIR)/,$(SRCS_LIBCOM:.c=.P) $(SRCS_LIBDEBUG:.c=.P) $(SRCS ############################################################################### .PHONY: all clean clean_all -.NOTPARALLEL: clean clean_all all: $(CLI_PRD) @@ -155,8 +154,6 @@ $(CLI_PRD): $(LIB_LIBENC) $(LIB_LIBDEC) $(LIB_LIBDEBUG) $(LIB_LIBCOM) $(LIB_LIB libs: $(LIB_LIBENC) $(LIB_LIBDEBUG) $(LIB_LIBCOM) $(LIB_LIBDEC) $(LIB_LIBUTIL) -#.NOTPARALLEL: clean clean_all - clean: $(QUIET)$(RM) $(OBJS_LIBENC) $(OBJS_LIBDEC) $(OBJS_CLI_APPPRD) $(DEPS) $(QUIET)$(RM) $(DEPS:.P=.d) diff --git a/scripts/td_object_renderer/object_renderer_standalone/Makefile b/scripts/td_object_renderer/object_renderer_standalone/Makefile index b5d5ac8b143d66251fe44712510caa4432a1b8ff..1f7571b867e318bdaad6dff6aaff15ae2deb69b6 100644 --- a/scripts/td_object_renderer/object_renderer_standalone/Makefile +++ b/scripts/td_object_renderer/object_renderer_standalone/Makefile @@ -133,7 +133,6 @@ DEPS = $(addprefix $(OBJDIR)/,$(SRCS_LIBCOM:.c=.P) $(SRCS_LIBDEBUG:.c=.P) $(SRCS ############################################################################### .PHONY: all clean clean_all -.NOTPARALLEL: clean clean_all all: $(CLI_REN) @@ -160,8 +159,6 @@ $(CLI_REN): $(LIB_LIBENC) $(LIB_LIBDEC) $(LIB_LIBDEBUG) $(LIB_LIBCOM) $(LIB_LIB libs: $(LIB_LIBENC) $(LIB_LIBDEBUG) $(LIB_LIBCOM) $(LIB_LIBDEC) $(LIB_LIBUTIL) -#.NOTPARALLEL: clean clean_all - clean: $(QUIET)$(RM) $(OBJS_LIBENC) $(OBJS_LIBDEC) $(OBJS_REN) $(DEPS) $(QUIET)$(RM) $(DEPS:.P=.d)