Commit 317ed8b0 authored by Jan Kiene's avatar Jan Kiene
Browse files

Merge branch 'switch-basop-reference-to-ivas-codec-repo' into 'main'

Switch basop reference to ivas codec repo

See merge request !54
parents 316806ee f0c3102b
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -2,4 +2,3 @@ variables:
  FLOAT_REF_COMMIT_FILE: "float-ref-git-sha.txt"
  MERGE_SOURCE_FLOAT_REF_COMMIT_FILE: "merge-source-float-ref-git-sha.txt"
  MERGE_TARGET_COMMIT_FILE: "merge-target-git-sha.txt"
  FLOAT_REF_COMMIT: "ivas-float-update"
+0 −1
Original line number Diff line number Diff line
@@ -9,7 +9,6 @@ variables:
  GIT_CLEAN_FLAGS: -ffdxq
  TESTCASE_TIMEOUT_STV_SANITIZERS: 240
  TESTCASE_TIMEOUT_LTV_SANITIZERS: 2400
  BASOP_REFERENCE_BRANCH: "ivas-float-update"
  SCALE_FACTOR: "3.162"
  BASOP_CI_BRANCH_PC_REPO: "basop-ci-branch"
  PYTEST_ADDOPTS: ""
+29 −47
Original line number Diff line number Diff line
@@ -254,8 +254,8 @@ workflow:
    - if [ ! -d "$TESTV_DIR" ]; then mkdir -p $TESTV_DIR; fi
    - cp -r scripts/testv/* $TESTV_DIR/

# This anchor is the basis for manual and scheduled tests comparing to float ref (ivas-float-update)
.ivas-pytest-anchor: &ivas-pytest-anchor
# This anchor is the basis for manual and scheduled tests comparing to float ref (ivas-codec main branch)
.compare-to-ref-anchor: &compare-to-ref-anchor
  stage: test
  needs: ["build-codec-linux-make", "pytest-to-ref-pre"]
  timeout: "480 minutes"
@@ -293,8 +293,6 @@ workflow:
    -   BUILD_WITH_DEBUG_MODE_INFO="true"
    - fi

    - export PYTEST_ADDOPTS="${PYTEST_ADDOPTS} -k 'not rtpdump'"

    - INV_LEVEL_SCALING=$(awk "BEGIN {print 1.0 / $LEVEL_SCALING}")
    - comp_args="--mld --ssnr --odg --scalefac $INV_LEVEL_SCALING"
    - summary_args="MLD DIFF SSNR ODG"
@@ -434,14 +432,9 @@ workflow:
    -   bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/basop/apply-testv-scaling.sh
    - fi

    # TODO: remove once ref branch is switched
    - export PYTEST_ADDOPTS="${PYTEST_ADDOPTS} -k 'not rtpdump'"

    - echo "$FLOAT_REF_BRANCH - $FLOAT_REF_BRANCH_MERGE_SOURCE - $CI_MERGE_REQUEST_TARGET_BRANCH_NAME - $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME"
    # build merge target branch and correpsonding float reference
    - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/basop/build-binaries.sh float-ref
    - source "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/basop/build-merge-target-binaries.sh
    - echo "$FLOAT_REF_BRANCH - $FLOAT_REF_BRANCH_MERGE_SOURCE - $CI_MERGE_REQUEST_TARGET_BRANCH_NAME - $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME"
    # build to-be-merged branch and corresponding float ref branch
    - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/basop/build-binaries.sh dut
    - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/basop/build-binaries.sh float-ref-merge-source
@@ -562,9 +555,6 @@ workflow:
    -   bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/basop/apply-testv-scaling.sh
    - fi

    # TODO: remove once ref branch is switched
    - export PYTEST_ADDOPTS="${PYTEST_ADDOPTS} -k 'not rtpdump'"

    # check MR title for flag that allows regressions to be mergable
    - echo $CI_MERGE_REQUEST_TITLE > tmp.txt
    - allow_regressions_flag=$(grep -c --ignore-case "\[allow[ -]*regression\]" tmp.txt) || true
@@ -857,6 +847,7 @@ branch-is-up-to-date-with-target-pre:
  tags:
    - ivas-basop-linux
  script:
    - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/basop/update-scripts-repo.sh
    - source "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/basop/branch-is-up-to-date-with-target-pre.sh
  artifacts:
    paths:
@@ -933,15 +924,18 @@ clang-format-check:


# This job runs in manual jobs and scheduled jobs that compares to the float reference.
# It fetches the latest commit of ivas-float-update and stores in FLOAT_COMMIT_REF
# It fetches the latest commit of ivas-codec main and stores in FLOAT_COMMIT_REF
pytest-to-ref-pre:
  extends:
    - .job-linux
    - .rules-pytest-to-ref-pre
  stage: prevalidate
  script:
    - git fetch origin ivas-float-update
    - FLOAT_REF_COMMIT="$(git rev-parse "origin/ivas-float-update")"
    - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/print-common-info.sh
    - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/basop/update-scripts-repo.sh
    - pushd "${SCRIPTS_DIR}"
    - FLOAT_REF_COMMIT="$(git rev-parse "origin/main")"
    - popd
    - echo "$FLOAT_REF_COMMIT" > $FLOAT_REF_COMMIT_FILE
  artifacts:
    paths:
@@ -1364,10 +1358,6 @@ ivas-pytest-on-merge-request:
    -   export PYTEST_ADDOPTS="${PYTEST_ADDOPTS} -k 'not model'"
    - fi

    - if [ "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" == "ivas-float-update" ]; then
    -   export PYTEST_ADDOPTS="${PYTEST_ADDOPTS} -k 'not rtpdump'"
    - fi

    ### prepare pytest
    # create references
    - python3 -m pytest "$TESTS_DIR_CODEC_BE_ON_MR"/"$PYTEST_SCRIPT" -v --update_ref 1
@@ -1576,10 +1566,6 @@ ivas-interop-on-merge-request:
    - source "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/merge-request-comparison-setup-codec.sh
    - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/basop/merge-request-print-pinned-commits.sh

    - if [ "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" == "ivas-float-update" ]; then
    -   export PYTEST_ADDOPTS="${PYTEST_ADDOPTS} -k 'not rtpdump'"
    - fi

    # some helper variables - "|| true" to prevent failures from grep not finding anything
    # write to temporary file as workaround for failures observed with piping echo
    - echo $CI_MERGE_REQUEST_TITLE > tmp.txt
@@ -1812,10 +1798,6 @@ renderer-usan:
    -   export PYTEST_ADDOPTS="${PYTEST_ADDOPTS} -k 'not model'"
    - fi

    - if [ "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" == "ivas-float-update" ]; then
    -   export PYTEST_ADDOPTS="${PYTEST_ADDOPTS} -k 'not rtpdump'"
    - fi

    - make_args="CLANG=$CLANG_NUM"
    # for MRs to main, the whole sanitizer test takes too long (even with stv set of inputs)
    # shorten files to 1s for that case
@@ -1909,7 +1891,7 @@ ivas-pytest-compare_to_ref-short-enc:
    - DUT_DECODER_PATH=./$REF_DECODER_PATH
    - TEST_SUITE="$SHORT_TEST_SUITE_ENCODER"
    - LEVEL_SCALING=1.0
  <<: *ivas-pytest-anchor
  <<: *compare-to-ref-anchor

ivas-pytest-compare_to_ref-short-enc-lev-10:
  extends:
@@ -1921,7 +1903,7 @@ ivas-pytest-compare_to_ref-short-enc-lev-10:
    - DUT_DECODER_PATH=./$REF_DECODER_PATH
    - TEST_SUITE="$SHORT_TEST_SUITE_ENCODER"
    - LEVEL_SCALING=0.3162
  <<: *ivas-pytest-anchor
  <<: *compare-to-ref-anchor

ivas-pytest-compare_to_ref-short-enc-lev+10:
  extends:
@@ -1933,7 +1915,7 @@ ivas-pytest-compare_to_ref-short-enc-lev+10:
    - DUT_DECODER_PATH=./$REF_DECODER_PATH
    - TEST_SUITE="$SHORT_TEST_SUITE_ENCODER"
    - LEVEL_SCALING=3.162
  <<: *ivas-pytest-anchor
  <<: *compare-to-ref-anchor

# encoder dmx comparison jobs
ivas-pytest-compare_to_ref-dmx-short-enc:
@@ -1947,7 +1929,7 @@ ivas-pytest-compare_to_ref-dmx-short-enc:
    - DUT_DECODER_PATH=./$REF_DECODER_PATH
    - TEST_SUITE="$SHORT_TEST_SUITE_ENCODER"
    - LEVEL_SCALING=1.0
  <<: *ivas-pytest-anchor
  <<: *compare-to-ref-anchor

ivas-pytest-compare_to_ref-dmx-short-enc-lev-10:
  extends:
@@ -1960,7 +1942,7 @@ ivas-pytest-compare_to_ref-dmx-short-enc-lev-10:
    - DUT_DECODER_PATH=./$REF_DECODER_PATH
    - TEST_SUITE="$SHORT_TEST_SUITE_ENCODER"
    - LEVEL_SCALING=0.3162
  <<: *ivas-pytest-anchor
  <<: *compare-to-ref-anchor

ivas-pytest-compare_to_ref-dmx-short-enc-lev+10:
  extends:
@@ -1973,7 +1955,7 @@ ivas-pytest-compare_to_ref-dmx-short-enc-lev+10:
    - DUT_DECODER_PATH=./$REF_DECODER_PATH
    - TEST_SUITE="$SHORT_TEST_SUITE_ENCODER"
    - LEVEL_SCALING=3.162
  <<: *ivas-pytest-anchor
  <<: *compare-to-ref-anchor

### jobs that test flt encoder -> fx decoder
ivas-pytest-compare_to_ref-short-dec:
@@ -1985,7 +1967,7 @@ ivas-pytest-compare_to_ref-short-dec:
    - DUT_ENCODER_PATH=./$REF_ENCODER_PATH
    - TEST_SUITE="$SHORT_TEST_SUITE"
    - LEVEL_SCALING=1.0
  <<: *ivas-pytest-anchor
  <<: *compare-to-ref-anchor
  
ivas-pytest-compare_to_ref-short-dec-lev-10:
  extends:
@@ -1996,7 +1978,7 @@ ivas-pytest-compare_to_ref-short-dec-lev-10:
    - DUT_ENCODER_PATH=./$REF_ENCODER_PATH
    - TEST_SUITE="$SHORT_TEST_SUITE"
    - LEVEL_SCALING=0.3162
  <<: *ivas-pytest-anchor
  <<: *compare-to-ref-anchor
  
ivas-pytest-compare_to_ref-short-dec-lev+10:
  extends:
@@ -2007,7 +1989,7 @@ ivas-pytest-compare_to_ref-short-dec-lev+10:
    - DUT_ENCODER_PATH=./$REF_ENCODER_PATH
    - TEST_SUITE="$SHORT_TEST_SUITE"
    - LEVEL_SCALING=3.162
  <<: *ivas-pytest-anchor
  <<: *compare-to-ref-anchor

### jobs that compare the output synthesis to the input files directly
ivas-pytest-compare-to-input-short-dec:
@@ -2046,7 +2028,7 @@ ivas-pytest-compare_ref-long-enc:
    - TEST_SUITE="$LONG_TEST_SUITE_ENCODER"
    - LEVEL_SCALING=1.0
    - SPLIT_COMPARISON="true"
  <<: *ivas-pytest-anchor
  <<: *compare-to-ref-anchor
  
ivas-pytest-compare_ref-long-dec:
  extends:
@@ -2061,7 +2043,7 @@ ivas-pytest-compare_ref-long-dec:
    - TEST_SUITE="$LONG_TEST_SUITE"
    - LEVEL_SCALING=1.0
    - SPLIT_COMPARISON="true"
  <<: *ivas-pytest-anchor
  <<: *compare-to-ref-anchor
  
ivas-pytest-compare_ref-long-enc-lev-10:
  extends:
@@ -2073,7 +2055,7 @@ ivas-pytest-compare_ref-long-enc-lev-10:
    - TEST_SUITE="$LONG_TEST_SUITE_ENCODER"
    - LEVEL_SCALING=0.3162
    - SPLIT_COMPARISON="true"
  <<: *ivas-pytest-anchor
  <<: *compare-to-ref-anchor
  
ivas-pytest-compare_ref-long-dec-lev-10:
  extends:
@@ -2088,7 +2070,7 @@ ivas-pytest-compare_ref-long-dec-lev-10:
    - TEST_SUITE="$LONG_TEST_SUITE"
    - LEVEL_SCALING=0.3162
    - SPLIT_COMPARISON="true"
  <<: *ivas-pytest-anchor
  <<: *compare-to-ref-anchor

ivas-pytest-compare_ref-long-enc-lev+10:
  extends:
@@ -2100,7 +2082,7 @@ ivas-pytest-compare_ref-long-enc-lev+10:
    - TEST_SUITE="$LONG_TEST_SUITE_ENCODER"
    - LEVEL_SCALING=3.162
    - SPLIT_COMPARISON="true"
  <<: *ivas-pytest-anchor
  <<: *compare-to-ref-anchor
  
ivas-pytest-compare_ref-long-dec-lev+10:
  extends:
@@ -2115,7 +2097,7 @@ ivas-pytest-compare_ref-long-dec-lev+10:
    - TEST_SUITE="$LONG_TEST_SUITE"
    - LEVEL_SCALING=3.162
    - SPLIT_COMPARISON="true"
  <<: *ivas-pytest-anchor
  <<: *compare-to-ref-anchor

ivas-pytest-compare_ref-long-fx-fx:
  extends:
@@ -2129,7 +2111,7 @@ ivas-pytest-compare_ref-long-fx-fx:
    - TEST_SUITE="$LONG_TEST_SUITE_NO_RENDERER"
    - LEVEL_SCALING=1.0
    - SPLIT_COMPARISON="true"
  <<: *ivas-pytest-anchor
  <<: *compare-to-ref-anchor

ivas-pytest-compare_ref-long-fx-fx-lev-10:
  extends:
@@ -2143,7 +2125,7 @@ ivas-pytest-compare_ref-long-fx-fx-lev-10:
    - TEST_SUITE="$LONG_TEST_SUITE_NO_RENDERER"
    - LEVEL_SCALING=0.3162
    - SPLIT_COMPARISON="true"
  <<: *ivas-pytest-anchor
  <<: *compare-to-ref-anchor

ivas-pytest-compare_ref-long-fx-fx-lev+10:
  extends:
@@ -2157,7 +2139,7 @@ ivas-pytest-compare_ref-long-fx-fx-lev+10:
    - TEST_SUITE="$LONG_TEST_SUITE_NO_RENDERER"
    - LEVEL_SCALING=3.162
    - SPLIT_COMPARISON="true"
  <<: *ivas-pytest-anchor
  <<: *compare-to-ref-anchor

### These next 3 jobs run three different sanitizers for fx -> fx codec chain usin

@@ -2447,7 +2429,7 @@ ivas-pytest-renderer:
    - USE_LTV=0
    - TEST_SUITE="tests/renderer"
    - LEVEL_SCALING=1.0
  <<: *ivas-pytest-anchor
  <<: *compare-to-ref-anchor

peaq-enc-passthrough:
  extends:
@@ -2460,7 +2442,7 @@ peaq-enc-passthrough:
    - TEST_SUITE="tests/test_enc_passthrough.py"
    - DELTA_ODG="true"
    - LEVEL_SCALING=1.0
  <<: *ivas-pytest-anchor
  <<: *compare-to-ref-anchor

# ---------------------------------------------------------------
# Various other tests
+0 −2
Original line number Diff line number Diff line
@@ -2,8 +2,6 @@

set -euxo pipefail

cd "${CI_PROJECT_DIR}"

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
+22 −14
Original line number Diff line number Diff line
@@ -30,42 +30,50 @@

set -euxo pipefail

float_ref_branchname="ivas-float-update"
float_ref_branchname_in_ivas_codec="main"
exit_code_follows_naming_conventions=0
# if branch does not follow the convention, there will be a printout which is irrelevant here, so redirect it to null
bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/basop/branch-follows-porting-naming-convention.sh $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME >>/dev/null || exit_code_follows_naming_conventions=$?
# if this branch follows the naming convetions, we can try to get the corresponding float MR branch
# if this branch does NOT follow the porting naming convention, the float ref is just ivas-float-update, so skip everything
# if this branch does NOT follow the porting naming convention, the float ref is just ivas-codec main, so skip everything
if [[ "$exit_code_follows_naming_conventions" == "0" ]]; then
  float_ref_branchname=$(${CI_PROJECT_DIR}/ivas-codec-ci/snippets/basop/get-float-ref-branch-name.sh $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME)
  float_ref_branchname_in_ivas_codec=$(${CI_PROJECT_DIR}/ivas-codec-ci/snippets/basop/get-float-ref-branch-name.sh $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME)
fi

# fetch all needed branches
# fetch merge target and check if we are up-to-date
git fetch origin "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME"
git fetch origin ivas-float-update
git fetch origin "$float_ref_branchname"

# then check if we are behind the merge target
commits_behind_count="$(bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/get-commits-behind-count.sh)"
if [ $commits_behind_count -ne 0 ]; then
  echo -e "Your branch is $commits_behind_count commits behind the target branch, run\n\tgit pull origin $CI_MERGE_REQUEST_TARGET_BRANCH_NAME\nto update."
  exit 1
fi

# if we are up-to-date, store the commit SHA for all branches

MERGE_TARGET_COMMIT="$(git rev-parse "origin/$CI_MERGE_REQUEST_TARGET_BRANCH_NAME")"
# to get the commit SHAs for the float reference branches, we need to get the main branch from float repo
# below here we will be in the float repo!
pushd "${SCRIPTS_DIR}"
git remote set-branches --add origin "$float_ref_branchname_in_ivas_codec"
git fetch origin "$float_ref_branchname_in_ivas_codec"

MERGE_SOURCE_FLOAT_REF_COMMIT="$(git rev-parse "origin/$float_ref_branchname_in_ivas_codec")"
FLOAT_REF_COMMIT="$(git rev-parse "origin/main")"
popd

# stop echoing from here on, this is anyway only dbg printout
set +x

# if we are up-to-date, store the commit SHA's for all branches
MERGE_TARGET_COMMIT="$(git rev-parse "origin/$CI_MERGE_REQUEST_TARGET_BRANCH_NAME")"
echo "MERGE_TARGET_COMMIT is $MERGE_TARGET_COMMIT"
echo "CI_COMMIT_SHA (on this branch $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME) is $CI_COMMIT_SHA"

echo "MERGE_TARGET_COMMIT (on branch $CI_MERGE_REQUEST_TARGET_BRANCH_NAME) is $MERGE_TARGET_COMMIT"
echo "$MERGE_TARGET_COMMIT" >"$MERGE_TARGET_COMMIT_FILE"

MERGE_SOURCE_FLOAT_REF_COMMIT="$(git rev-parse "origin/$float_ref_branchname")"
echo "MERGE_SOURCE_FLOAT_REF_COMMIT is $MERGE_SOURCE_FLOAT_REF_COMMIT"
echo "MERGE_SOURCE_FLOAT_REF_COMMIT (on branch $float_ref_branchname_in_ivas_codec in ivas-codec repo) is $MERGE_SOURCE_FLOAT_REF_COMMIT"
echo "$MERGE_SOURCE_FLOAT_REF_COMMIT" >"$MERGE_SOURCE_FLOAT_REF_COMMIT_FILE"

FLOAT_REF_COMMIT="$(git rev-parse "origin/ivas-float-update")"
echo "FLOAT_REF_COMMIT is $FLOAT_REF_COMMIT"
echo "FLOAT_REF_COMMIT (on branch main in ivas-codec repo) is $FLOAT_REF_COMMIT"
echo "$FLOAT_REF_COMMIT" >"$FLOAT_REF_COMMIT_FILE"

# create commits.env file for passing the variables to other jobs
Loading