diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-06 00:55:53 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-06 00:55:53 +0000 |
commit | 3d0386f27ca66379acf50199e1d1298386eeeeb8 (patch) | |
tree | f87bd4a126b3a843858eb447e8fd5893c3ee3882 /tests/deckard/ci/compare-tests.sh | |
parent | Initial commit. (diff) | |
download | knot-resolver-3d0386f27ca66379acf50199e1d1298386eeeeb8.tar.xz knot-resolver-3d0386f27ca66379acf50199e1d1298386eeeeb8.zip |
Adding upstream version 3.2.1.upstream/3.2.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/deckard/ci/compare-tests.sh')
-rwxr-xr-x | tests/deckard/ci/compare-tests.sh | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/deckard/ci/compare-tests.sh b/tests/deckard/ci/compare-tests.sh new file mode 100755 index 0000000..63d8c67 --- /dev/null +++ b/tests/deckard/ci/compare-tests.sh @@ -0,0 +1,30 @@ +#!/bin/bash +set -o nounset -o xtrace -o errexit +source "$(dirname "$0")/common.sh" +TESTRUNNER="$1" +: comparing results from test script "${TESTRUNNER}" + +# Run specified test runner on HEAD and again on merge base for master..HEAD +# Fail if result of any test not modified between master..HEAD changed +# (i.e. any change in Deckard should not change results of non-modified tests) + +function find_modified_tests { + : detect tests affected by current merge request + : store list of modified tests in ${MODIFIED_TESTS_FILE} + git diff --numstat "${MERGEBASE}..${HEAD}" | cut -f 3 | fgrep .rpl > "${MODIFIED_TESTS_FILE}" || : no modified tests detected +} + +MODIFIED_TESTS_FILE="/tmp/modified_tests" +find_modified_tests +LOGS[0]="${MODIFIED_TESTS_FILE}" +LOGS[1]="/tmp/base.xml" +LOGS[2]="/tmp/head.xml" + +: get test results from version under test +"${TESTRUNNER}" -n $(nproc) --junit-xml=/tmp/head.xml || : some tests on HEAD ${HEAD} failed + +: get test results from common ancestor with master branch +git checkout --force --detach "${MERGEBASE}" +git clean -xdf +"${TESTRUNNER}" -n $(nproc) --junit-xml=/tmp/base.xml || : some tests on merge base ${MERGEBASE} failed +"${CIDIR}/junit-compare.py" /tmp/head.xml /tmp/base.xml /tmp/modified_tests && echo "OK, no differences found" |