diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-13 11:50:49 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-13 11:50:49 +0000 |
commit | c853ffb5b2f75f5a889ed2e3ef89b818a736e87a (patch) | |
tree | 7d13a0883bb7936b84d6ecdd7bc332b41ed04bee /testfiles/rendering_tests/test.sh | |
parent | Initial commit. (diff) | |
download | inkscape-c853ffb5b2f75f5a889ed2e3ef89b818a736e87a.tar.xz inkscape-c853ffb5b2f75f5a889ed2e3ef89b818a736e87a.zip |
Adding upstream version 1.3+ds.upstream/1.3+dsupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testfiles/rendering_tests/test.sh')
-rwxr-xr-x | testfiles/rendering_tests/test.sh | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/testfiles/rendering_tests/test.sh b/testfiles/rendering_tests/test.sh new file mode 100755 index 0000000..658b578 --- /dev/null +++ b/testfiles/rendering_tests/test.sh @@ -0,0 +1,66 @@ +#!/bin/bash +# SPDX-License-Identifier: GPL-2.0-or-later + +MY_LOCATION=$(dirname "$0") +source "${MY_LOCATION}/../utils/functions.sh" + +ensure_command "compare" +ensure_command "bc" + +if [ "$#" -lt 2 ]; then + echo "Pass the path of the inkscape executable as parameter then the name of the test" $# + exit 1 +fi + +INKSCAPE_EXE="$1" +TEST="$2" +FUZZ="$3" +EXIT_STATUS=0 +EXPECTED="$(dirname "$TEST")/expected_rendering/$(basename "$TEST")" +TESTNAME="$(basename "$TEST")" + +if [ "$FUZZ" = "" ]; then + METRIC="AE" +else + METRIC="RMSE" +fi + +perform_test() +{ + local SUFFIX="$1" + local DPI="$2" + ${INKSCAPE_EXE} --export-png-use-dithering false --export-filename="${TESTNAME}${SUFFIX}.png" -d "$DPI" "${TEST}.svg" + + COMPARE_OUTPUT="$(compare -metric "$METRIC" "${TESTNAME}${SUFFIX}.png" "${EXPECTED}${SUFFIX}.png" "${TESTNAME}-compare${SUFFIX}.png" 2>&1)" + + if [ "$FUZZ" = "" ]; then + if [ "$COMPARE_OUTPUT" = 0 ]; then + echo "${TESTNAME}${SUFFIX}" "PASSED; absolute difference is exactly zero." + rm "${TESTNAME}${SUFFIX}.png" "${TESTNAME}-compare${SUFFIX}.png" + else + echo "${TESTNAME} FAILED; absolute difference ${COMPARE_OUTPUT} is greater than zero." + EXIT_STATUS=1 + fi + else + RELATIVE_ERROR=$(get_compare_result "$COMPARE_OUTPUT") + PERCENTAGE_ERROR=$(fraction_to_percentage "$RELATIVE_ERROR") + if (( $(is_relative_error_within_tolerance "$RELATIVE_ERROR" "$FUZZ") )) + then + echo "${TESTNAME}${SUFFIX}" "PASSED; error of ${PERCENTAGE_ERROR}% is within ${FUZZ}% tolerance." + rm "${TESTNAME}${SUFFIX}.png" "${TESTNAME}-compare${SUFFIX}.png" + else + echo "${TESTNAME} FAILED; error of ${PERCENTAGE_ERROR}% exceeds ${FUZZ}% tolerance." + EXIT_STATUS=1 + fi + fi +} + +perform_test "" 96 + +if [ -f "${EXPECTED}-large.png" ]; then + perform_test "-large" 384 +else + echo "${TESTNAME}-large" "SKIPPED" +fi + +exit $EXIT_STATUS |