Files
gtk/testsuite/tools/validate
Simon McVittie 5c3ea03dca testsuite: If validation result is not as expected, log the diff
It's easier to diagnose test failures if everything (within reason)
is in the build log.

Signed-off-by: Simon McVittie <smcv@debian.org>
2024-09-03 02:49:06 +01:00

42 lines
884 B
Bash
Executable File

#! /bin/bash
GTK_BUILDER_TOOL=${GTK_BUILDER_TOOL:-gtk4-builder-tool}
TEST_DATA_DIR=${G_TEST_SRCDIR:-.}/validate-data
TEST_RESULT_DIR=${TEST_RESULT_DIR:-/tmp}/validate
# https://gitlab.freedesktop.org/mesa/mesa/-/issues/10293
export LIBGL_ALWAYS_SOFTWARE=true
mkdir -p "$TEST_RESULT_DIR"
shopt -s nullglob
TESTS=( "$TEST_DATA_DIR"/*.ui )
echo "1..${#TESTS[*]}"
I=1
for t in ${TESTS[*]}; do
name=$(basename $t .ui)
expected="$TEST_DATA_DIR/$name.expected"
result="$TEST_RESULT_DIR/$name.out"
diff="$TEST_RESULT_DIR/$name.diff"
ref="$TEST_RESULT_DIR/$name.ref"
cd $TEST_DATA_DIR
$GTK_BUILDER_TOOL validate --deprecations $(basename $t) 2>$result
cd $OLDPWD
if diff -u "$expected" "$result" > "$diff"; then
echo "ok $I $name"
rm "$diff"
else
sed -e 's/^/# /' < "$diff"
echo "not ok $I $name"
cp "$expected" "$ref"
fi
I=$((I+1))
done