summaryrefslogtreecommitdiff
path: root/testsuite/tools/enumerate
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/tools/enumerate')
-rwxr-xr-xtestsuite/tools/enumerate37
1 files changed, 37 insertions, 0 deletions
diff --git a/testsuite/tools/enumerate b/testsuite/tools/enumerate
new file mode 100755
index 0000000000..8abd9d67f1
--- /dev/null
+++ b/testsuite/tools/enumerate
@@ -0,0 +1,37 @@
+#! /bin/bash
+
+GTK_BUILDER_TOOL=${GTK_BUILDER_TOOL:-gtk4-builder-tool}
+TEST_DATA_DIR=${G_TEST_SRCDIR:-.}/enumerate-data
+TEST_RESULT_DIR=${TEST_RESULT_DIR:-/tmp}/enumerate
+
+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 enumerate --callbacks $(basename $t) >$result
+
+ cd $OLDPWD
+
+ if diff -u "$expected" "$result" > "$diff"; then
+ echo "ok $I $name"
+ rm "$diff"
+ else
+ echo "not ok $I $name"
+ cp "$expected" "$ref"
+ fi
+
+ I=$((I+1))
+done