From fd033d23f424758951c23082a1d4d40591bd8b27 Mon Sep 17 00:00:00 2001 From: Jan Kiene Date: Tue, 19 Nov 2024 11:29:38 +0100 Subject: [PATCH 01/10] add --enc_stats to encoder tests --- .gitlab-ci.yml | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4843bd3bf..0ccb57436 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -293,9 +293,12 @@ stages: - fi - *build-and-create-reference-outputs + - comp_args="--mld --ssnr --odg" + - if [ "ENCODER_TEST" = true ]; then comp_args="${comp_args} --enc_stats"; fi + ### run pytest - exit_code=0 - - python3 -m pytest --tb=no $TEST_SUITE -v --create_cut --html=report.html --self-contained-html --junit-xml=report-junit.xml --mld --ssnr --odg -n auto --testcase_timeout $testcase_timeout --ref_encoder_path $REF_ENCODER_PATH --ref_decoder_path $REF_DECODER_PATH --dut_encoder_path $DUT_ENCODER_PATH --dut_decoder_path $DUT_DECODER_PATH || exit_code=$? + - python3 -m pytest --tb=no $TEST_SUITE -v --create_cut --html=report.html --self-contained-html --junit-xml=report-junit.xml $comp_args -n auto --testcase_timeout $testcase_timeout --ref_encoder_path $REF_ENCODER_PATH --ref_decoder_path $REF_DECODER_PATH --dut_encoder_path $DUT_ENCODER_PATH --dut_decoder_path $DUT_DECODER_PATH || exit_code=$? - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true - python3 scripts/parse_xml_report.py report-junit.xml $CSV_ARTIFACT_NAME @@ -771,6 +774,7 @@ ivas-pytest-compare_to_ref-short-enc: - .test-job-linux before_script: - USE_LTV=0 + - ENCODER_TEST=true - DUT_DECODER_PATH=./$REF_DECODER_PATH - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=1.0 @@ -783,6 +787,7 @@ ivas-pytest-compare_to_ref-short-enc-lev-10: - .test-job-linux before_script: - USE_LTV=0 + - ENCODER_TEST=true - DUT_DECODER_PATH=./$REF_DECODER_PATH - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=0.3162 @@ -795,6 +800,7 @@ ivas-pytest-compare_to_ref-short-enc-lev+10: - .test-job-linux before_script: - USE_LTV=0 + - ENCODER_TEST=true - DUT_DECODER_PATH=./$REF_DECODER_PATH - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=3.162 @@ -831,6 +837,7 @@ ivas-pytest-compare_to_ref-short-dec: - .test-job-linux before_script: - USE_LTV=0 + - ENCODER_TEST=false - DUT_ENCODER_PATH=./$REF_ENCODER_PATH - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=1.0 @@ -841,7 +848,8 @@ ivas-pytest-compare_to_ref-short-dec-lev-10: - .rules-pytest-to-ref-short - .test-job-linux before_script: - - USE_LTV=0 + - USE_LTV=0 + - ENCODER_TEST=false - DUT_ENCODER_PATH=./$REF_ENCODER_PATH - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=0.3162 @@ -852,12 +860,14 @@ ivas-pytest-compare_to_ref-short-dec-lev+10: - .rules-pytest-to-ref-short - .test-job-linux before_script: - - USE_LTV=0 + - USE_LTV=0 + - ENCODER_TEST=false - DUT_ENCODER_PATH=./$REF_ENCODER_PATH - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=3.162 <<: *ivas-pytest-anchor +### jobs that compare the output synthesis to the input files directly ivas-pytest-compare-to-input-short-dec: extends: - .rules-pytest-to-input-short -- GitLab From fd6057587d3788ae05eb694077df75708f1cf34f Mon Sep 17 00:00:00 2001 From: Jan Kiene Date: Tue, 19 Nov 2024 12:44:20 +0100 Subject: [PATCH 02/10] add debug printout --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0ccb57436..f61fa619f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -295,6 +295,7 @@ stages: - comp_args="--mld --ssnr --odg" - if [ "ENCODER_TEST" = true ]; then comp_args="${comp_args} --enc_stats"; fi + - echo "$comp_args" ### run pytest - exit_code=0 -- GitLab From a74ef182f25f8e4f0c7ddcc6c631ea5d73e3e48c Mon Sep 17 00:00:00 2001 From: Jan Kiene Date: Tue, 19 Nov 2024 12:48:28 +0100 Subject: [PATCH 03/10] add missing $ --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f61fa619f..a94154265 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -294,7 +294,7 @@ stages: - *build-and-create-reference-outputs - comp_args="--mld --ssnr --odg" - - if [ "ENCODER_TEST" = true ]; then comp_args="${comp_args} --enc_stats"; fi + - if [ "$ENCODER_TEST" = true ]; then comp_args="${comp_args} --enc_stats"; fi - echo "$comp_args" ### run pytest -- GitLab From 559f0e523bddfe973c968e31687ad1176d6df165 Mon Sep 17 00:00:00 2001 From: Jan Kiene Date: Wed, 20 Nov 2024 15:08:17 +0100 Subject: [PATCH 04/10] build with DEBUG_MODE_INFO + create encoder stats for ref --- .gitlab-ci.yml | 51 ++++++++++++++++++++++++++++++-------------------- 1 file changed, 31 insertions(+), 20 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a94154265..3df39d4e9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -28,6 +28,8 @@ variables: CI_REGRESSION_THRESH_ODG: "-0.05" GIT_CLEAN_FLAGS: -ffdxq INSTR_DIR: "scripts/c-code_instrument" + BUILD_WITH_DEBUG_MODE_INFO: "" + ENCODER_TEST: "" MANUAL_PIPELINE_TYPE: description: "Type for the manual pipeline run. Use 'pytest-compare' to run comparison test against reference float codec." value: 'default' @@ -117,25 +119,33 @@ stages: echo "Commit time was $CI_COMMIT_TIMESTAMP" date | xargs echo "System time is" +.activate-debug-mode-info-if-set: &activate-debug-mode-info-if-set + - if [ "$BUILD_WITH_DEBUG_MODE_INFO" = "true ]; then + - sed -i.bak -e "s/\/\*\ *\(#define\ *DEBUGGING\ *\)\*\//\1/g" lib_com/options.h + - sed -i.bak -e "s/\/\*\ *\(#define\ *DEBUG_MODE_INFO\ *\)\*\//\1/g" lib_com/options.h + - fi + .build-reference-binaries: &build-reference-binaries -- current_commit_sha=$(git rev-parse HEAD) -### build reference binaries -- git checkout $REFERENCE_BRANCH -- git pull -- make clean -- make -j -- mv ./IVAS_cod ./$REF_ENCODER_PATH -- mv ./IVAS_dec ./$REF_DECODER_PATH -- mv ./IVAS_rend ./IVAS_rend_ref -### Return to current branch -- git restore . -- git checkout $current_commit_sha + - current_commit_sha=$(git rev-parse HEAD) + ### build reference binaries + - git checkout $REFERENCE_BRANCH + - git pull + - *activate-debug-mode-info-if-set + - make clean + - make -j + - mv ./IVAS_cod ./$REF_ENCODER_PATH + - mv ./IVAS_dec ./$REF_DECODER_PATH + - mv ./IVAS_rend ./IVAS_rend_ref + ### Return to current branch + - git restore . + - git checkout $current_commit_sha .build-reference-and-dut-binaries: &build-reference-and-dut-binaries ### build reference binaries - *build-reference-binaries ### build dut binaries + - *activate-debug-mode-info-if-set - make clean - make -j @@ -147,7 +157,9 @@ stages: - python3 tests/create_short_testvectors.py # create references - exit_code=0 - - python3 -m pytest $TEST_SUITE -v --update_ref 1 --create_ref -n auto --ref_encoder_path $REF_ENCODER_PATH --ref_decoder_path $REF_DECODER_PATH --dut_encoder_path $DUT_ENCODER_PATH --dut_decoder_path $DUT_DECODER_PATH || exit_code=$? + - enc_stats_arg="" + - if [ "$ENCODER_TEST" = "true" ]; then enc_stats_arg="--enc_stats"; fi + - python3 -m pytest $TEST_SUITE -v --update_ref 1 $enc_stats_arg --create_ref -n auto --ref_encoder_path $REF_ENCODER_PATH --ref_decoder_path $REF_DECODER_PATH --dut_encoder_path $DUT_ENCODER_PATH --dut_decoder_path $DUT_DECODER_PATH || exit_code=$? .update-scripts-repo: &update-scripts-repo - cd $SCRIPTS_DIR @@ -291,10 +303,12 @@ stages: - if [ $LEVEL_SCALING != "1.0" ];then - *apply-testv-scaling - fi + + - if [ "$ENCODER_TEST" = "true" ]; then BUILD_WITH_DEBUG_MODE_INFO="true" - *build-and-create-reference-outputs - comp_args="--mld --ssnr --odg" - - if [ "$ENCODER_TEST" = true ]; then comp_args="${comp_args} --enc_stats"; fi + - if [ "$ENCODER_TEST" = "true" ]; then comp_args="${comp_args} --enc_stats"; fi - echo "$comp_args" ### run pytest @@ -775,7 +789,7 @@ ivas-pytest-compare_to_ref-short-enc: - .test-job-linux before_script: - USE_LTV=0 - - ENCODER_TEST=true + - ENCODER_TEST="true" - DUT_DECODER_PATH=./$REF_DECODER_PATH - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=1.0 @@ -788,7 +802,7 @@ ivas-pytest-compare_to_ref-short-enc-lev-10: - .test-job-linux before_script: - USE_LTV=0 - - ENCODER_TEST=true + - ENCODER_TEST="true" - DUT_DECODER_PATH=./$REF_DECODER_PATH - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=0.3162 @@ -801,7 +815,7 @@ ivas-pytest-compare_to_ref-short-enc-lev+10: - .test-job-linux before_script: - USE_LTV=0 - - ENCODER_TEST=true + - ENCODER_TEST="true" - DUT_DECODER_PATH=./$REF_DECODER_PATH - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=3.162 @@ -838,7 +852,6 @@ ivas-pytest-compare_to_ref-short-dec: - .test-job-linux before_script: - USE_LTV=0 - - ENCODER_TEST=false - DUT_ENCODER_PATH=./$REF_ENCODER_PATH - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=1.0 @@ -850,7 +863,6 @@ ivas-pytest-compare_to_ref-short-dec-lev-10: - .test-job-linux before_script: - USE_LTV=0 - - ENCODER_TEST=false - DUT_ENCODER_PATH=./$REF_ENCODER_PATH - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=0.3162 @@ -862,7 +874,6 @@ ivas-pytest-compare_to_ref-short-dec-lev+10: - .test-job-linux before_script: - USE_LTV=0 - - ENCODER_TEST=false - DUT_ENCODER_PATH=./$REF_ENCODER_PATH - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=3.162 -- GitLab From c0a34d48a984078b39e065e30c45bd1ef0dc7909 Mon Sep 17 00:00:00 2001 From: Jan Kiene Date: Wed, 20 Nov 2024 17:20:32 +0100 Subject: [PATCH 05/10] fix if syntax --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 3df39d4e9..1972b230b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -304,7 +304,7 @@ stages: - *apply-testv-scaling - fi - - if [ "$ENCODER_TEST" = "true" ]; then BUILD_WITH_DEBUG_MODE_INFO="true" + - if [ "$ENCODER_TEST" = "true" ]; then BUILD_WITH_DEBUG_MODE_INFO="true" fi - *build-and-create-reference-outputs - comp_args="--mld --ssnr --odg" -- GitLab From 7ee7e85275d951ce82f3208921cfc39a39317d61 Mon Sep 17 00:00:00 2001 From: Jan Kiene Date: Wed, 20 Nov 2024 17:29:49 +0100 Subject: [PATCH 06/10] fix build with DEBUGGING and DEBUG_MODE_INFO active --- lib_enc/speech_music_classif_fx.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib_enc/speech_music_classif_fx.c b/lib_enc/speech_music_classif_fx.c index b7c079905..39ade4f09 100644 --- a/lib_enc/speech_music_classif_fx.c +++ b/lib_enc/speech_music_classif_fx.c @@ -2654,8 +2654,10 @@ Word16 ivas_smc_gmm_fx( mvs2s( &hSpMusClas->past_dec[0], &hSpMusClas->past_dec[1], HANG_LEN - 2 ); hSpMusClas->past_dec[0] = dec; move16(); +#ifndef IVAS_FLOAT_FIXED #ifdef DEBUG_MODE_INFO dbgwrite( &st->hSpMusClas->wdlp_0_95_sp, sizeof( float ), 1, 1, "res/wdlp_0_95_sp.x" ); +#endif #endif return dec; -- GitLab From c99ec0fbfdd6d787efe9a06e4acbe19e7c8bc3b4 Mon Sep 17 00:00:00 2001 From: Jan Kiene Date: Wed, 20 Nov 2024 17:34:16 +0100 Subject: [PATCH 07/10] add build job with DEBUGGING + DEBUG_MODE_INFO and fix typo --- .gitlab-ci.yml | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1972b230b..06f8e357d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -120,7 +120,7 @@ stages: date | xargs echo "System time is" .activate-debug-mode-info-if-set: &activate-debug-mode-info-if-set - - if [ "$BUILD_WITH_DEBUG_MODE_INFO" = "true ]; then + - if [ "$BUILD_WITH_DEBUG_MODE_INFO" = "true" ]; then - sed -i.bak -e "s/\/\*\ *\(#define\ *DEBUGGING\ *\)\*\//\1/g" lib_com/options.h - sed -i.bak -e "s/\/\*\ *\(#define\ *DEBUG_MODE_INFO\ *\)\*\//\1/g" lib_com/options.h - fi @@ -701,6 +701,24 @@ build-codec-linux-instrumented-make: - bash scripts/prepare_instrumentation.sh -m MEM_ONLY -p BASOP - make -j -C $INSTR_DIR +build-codec-linux-debugging-make: + rules: + - if: $CI_PIPELINE_SOURCE == 'web' + - if: $CI_PIPELINE_SOURCE == 'push' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH + - if: $CI_PIPELINE_SOURCE == 'merge_request_event' && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "main" # only have MR pipelines for MRs to main + - if: $CI_PIPELINE_SOURCE == 'schedule' + - if: $CI_PIPELINE_SOURCE == 'push' + when: never + extends: + - .build-job-linux: + timeout: "7 minutes" + variables: + BUILD_WITH_DEBUG_MODE_INFO: "true" + script: + - *print-common-info + - *activate-debug-mode-info-if-set + - make -j + # --------------------------------------------------------------- # Short test jobs that run in merge request pipelines # --------------------------------------------------------------- -- GitLab From e4fc9a1dd9df28183f726cd02e8d823f5a0ce463 Mon Sep 17 00:00:00 2001 From: Jan Kiene Date: Wed, 20 Nov 2024 17:35:12 +0100 Subject: [PATCH 08/10] fix extends section --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 06f8e357d..b74d16660 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -710,7 +710,7 @@ build-codec-linux-debugging-make: - if: $CI_PIPELINE_SOURCE == 'push' when: never extends: - - .build-job-linux: + - .build-job-linux timeout: "7 minutes" variables: BUILD_WITH_DEBUG_MODE_INFO: "true" -- GitLab From 019bd7f0de6e73a6f9d15fbd98af082296dff09e Mon Sep 17 00:00:00 2001 From: Jan Kiene Date: Wed, 20 Nov 2024 17:40:23 +0100 Subject: [PATCH 09/10] fix if again :'-( --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b74d16660..ff44a85ae 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -304,7 +304,7 @@ stages: - *apply-testv-scaling - fi - - if [ "$ENCODER_TEST" = "true" ]; then BUILD_WITH_DEBUG_MODE_INFO="true" fi + - if [ "$ENCODER_TEST" = "true" ]; then BUILD_WITH_DEBUG_MODE_INFO="true"; fi - *build-and-create-reference-outputs - comp_args="--mld --ssnr --odg" -- GitLab From 9c335dd1f8e143dc6705532ae0b30b07f3c7c09d Mon Sep 17 00:00:00 2001 From: Jan Kiene Date: Thu, 21 Nov 2024 18:26:32 +0100 Subject: [PATCH 10/10] use encoder prm file --- .gitlab-ci.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ff44a85ae..e2fdd627b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -10,6 +10,7 @@ variables: LONG_TEST_SUITE: "tests/codec_be_on_mr_nonselection tests/renderer --param_file scripts/config/self_test_ltv.prm --use_ltv" LONG_TEST_SUITE_NO_RENDERER: "tests/codec_be_on_mr_nonselection --param_file scripts/config/self_test_ltv.prm --use_ltv" SHORT_TEST_SUITE: "tests/codec_be_on_mr_nonselection" + ENCODER_TEST_SUITE: "tests/codec_be_on_mr_nonselection/test_param_file.py --param_file scripts/config/self_test_basop_encoder.prm" TEST_SUITE: "" DUT_ENCODER_PATH: "./IVAS_cod" DUT_DECODER_PATH: "./IVAS_dec" @@ -809,7 +810,7 @@ ivas-pytest-compare_to_ref-short-enc: - USE_LTV=0 - ENCODER_TEST="true" - DUT_DECODER_PATH=./$REF_DECODER_PATH - - TEST_SUITE="$SHORT_TEST_SUITE" + - TEST_SUITE="$ENCODER_TEST_SUITE" - LEVEL_SCALING=1.0 <<: *ivas-pytest-anchor @@ -822,7 +823,7 @@ ivas-pytest-compare_to_ref-short-enc-lev-10: - USE_LTV=0 - ENCODER_TEST="true" - DUT_DECODER_PATH=./$REF_DECODER_PATH - - TEST_SUITE="$SHORT_TEST_SUITE" + - TEST_SUITE="$ENCODER_TEST_SUITE" - LEVEL_SCALING=0.3162 <<: *ivas-pytest-anchor @@ -835,7 +836,7 @@ ivas-pytest-compare_to_ref-short-enc-lev+10: - USE_LTV=0 - ENCODER_TEST="true" - DUT_DECODER_PATH=./$REF_DECODER_PATH - - TEST_SUITE="$SHORT_TEST_SUITE" + - TEST_SUITE="$ENCODER_TEST_SUITE" - LEVEL_SCALING=3.162 <<: *ivas-pytest-anchor -- GitLab