summaryrefslogtreecommitdiffstats
path: root/testfiles/rendering_tests/test.sh
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-13 11:50:49 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-13 11:50:49 +0000
commitc853ffb5b2f75f5a889ed2e3ef89b818a736e87a (patch)
tree7d13a0883bb7936b84d6ecdd7bc332b41ed04bee /testfiles/rendering_tests/test.sh
parentInitial commit. (diff)
downloadinkscape-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-xtestfiles/rendering_tests/test.sh66
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