summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2020-11-01 14:47:02 -0500
committerMatthias Clasen <mclasen@redhat.com>2020-11-01 23:09:26 -0500
commit403a70ca89d9666c4eff1554455eb4e22b120dbf (patch)
tree73121fcd12b900d9bf87782b62476b59dd97d45b
parent44b36b632123bac043c4d5d607de275b900bca46 (diff)
downloadgtk+-403a70ca89d9666c4eff1554455eb4e22b120dbf.tar.gz
testsuite: Add tests for gtk4-builder-tool validate
-rw-r--r--testsuite/tools/meson.build3
-rw-r--r--testsuite/tools/validate-data/invalid1.expected1
-rw-r--r--testsuite/tools/validate-data/invalid1.ui5
-rw-r--r--testsuite/tools/validate-data/invalid2.expected1
-rw-r--r--testsuite/tools/validate-data/invalid2.ui6
-rw-r--r--testsuite/tools/validate-data/invalid3.expected1
-rw-r--r--testsuite/tools/validate-data/invalid3.ui4
-rw-r--r--testsuite/tools/validate-data/invalid4.expected1
-rw-r--r--testsuite/tools/validate-data/invalid4.ui7
-rw-r--r--testsuite/tools/validate-data/valid1.expected0
-rw-r--r--testsuite/tools/validate-data/valid1.ui3
-rw-r--r--testsuite/tools/validate-data/valid2.expected0
-rw-r--r--testsuite/tools/validate-data/valid2.ui4
-rwxr-xr-xtestsuite/tools/validate.in35
14 files changed, 70 insertions, 1 deletions
diff --git a/testsuite/tools/meson.build b/testsuite/tools/meson.build
index 1369ccfedc..54b9312e7a 100644
--- a/testsuite/tools/meson.build
+++ b/testsuite/tools/meson.build
@@ -5,7 +5,7 @@ bash = find_program('bash', required : false)
if bash.found()
test_env = environment()
- foreach t : ['simplify', 'simplify-3to4', 'settings']
+ foreach t : ['simplify', 'simplify-3to4', 'validate', 'settings']
if get_option('install-tests')
configure_file(output: t,
input: '@0@.in'.format(t),
@@ -44,4 +44,5 @@ if get_option('install-tests')
install_subdir('simplify-data', install_dir: testexecdir)
install_subdir('simplify-data-3to4', install_dir: testexecdir)
+ install_subdir('validate-data', install_dir: testexecdir)
endif
diff --git a/testsuite/tools/validate-data/invalid1.expected b/testsuite/tools/validate-data/invalid1.expected
new file mode 100644
index 0000000000..77c70ce0dc
--- /dev/null
+++ b/testsuite/tools/validate-data/invalid1.expected
@@ -0,0 +1 @@
+invalid1.ui:3:1 <child> is not a valid tag here
diff --git a/testsuite/tools/validate-data/invalid1.ui b/testsuite/tools/validate-data/invalid1.ui
new file mode 100644
index 0000000000..0b969c34d8
--- /dev/null
+++ b/testsuite/tools/validate-data/invalid1.ui
@@ -0,0 +1,5 @@
+<interface>
+ <child>
+ <object class="GtkLabel"/>
+ </child>
+</interface>
diff --git a/testsuite/tools/validate-data/invalid2.expected b/testsuite/tools/validate-data/invalid2.expected
new file mode 100644
index 0000000000..c05e26fece
--- /dev/null
+++ b/testsuite/tools/validate-data/invalid2.expected
@@ -0,0 +1 @@
+invalid2.ui:4:1 <object> is not a valid tag here
diff --git a/testsuite/tools/validate-data/invalid2.ui b/testsuite/tools/validate-data/invalid2.ui
new file mode 100644
index 0000000000..887b3bcd4b
--- /dev/null
+++ b/testsuite/tools/validate-data/invalid2.ui
@@ -0,0 +1,6 @@
+<interface>
+ <object class="GtkBox">
+ <object class="GtkButton">
+ </object>
+ </object>
+</interface>
diff --git a/testsuite/tools/validate-data/invalid3.expected b/testsuite/tools/validate-data/invalid3.expected
new file mode 100644
index 0000000000..824ce933e6
--- /dev/null
+++ b/testsuite/tools/validate-data/invalid3.expected
@@ -0,0 +1 @@
+invalid3.ui:3:1 <object> requires attribute 'class'
diff --git a/testsuite/tools/validate-data/invalid3.ui b/testsuite/tools/validate-data/invalid3.ui
new file mode 100644
index 0000000000..9deb45b268
--- /dev/null
+++ b/testsuite/tools/validate-data/invalid3.ui
@@ -0,0 +1,4 @@
+<interface>
+ <object>
+ </object>
+</interface>
diff --git a/testsuite/tools/validate-data/invalid4.expected b/testsuite/tools/validate-data/invalid4.expected
new file mode 100644
index 0000000000..7a565ffb3b
--- /dev/null
+++ b/testsuite/tools/validate-data/invalid4.expected
@@ -0,0 +1 @@
+Gtk-WARNING: Failed to find accessible property “text”: Could not parse enum: 'text'
diff --git a/testsuite/tools/validate-data/invalid4.ui b/testsuite/tools/validate-data/invalid4.ui
new file mode 100644
index 0000000000..21e3248b73
--- /dev/null
+++ b/testsuite/tools/validate-data/invalid4.ui
@@ -0,0 +1,7 @@
+<interface>
+ <object class="GtkBox">
+ <accessibility>
+ <property name="text">Download</property>
+ </accessibility>
+ </object>
+</interface>
diff --git a/testsuite/tools/validate-data/valid1.expected b/testsuite/tools/validate-data/valid1.expected
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/testsuite/tools/validate-data/valid1.expected
diff --git a/testsuite/tools/validate-data/valid1.ui b/testsuite/tools/validate-data/valid1.ui
new file mode 100644
index 0000000000..2a9a3f594c
--- /dev/null
+++ b/testsuite/tools/validate-data/valid1.ui
@@ -0,0 +1,3 @@
+<interface>
+ <object class="GtkLabel"/>
+</interface>
diff --git a/testsuite/tools/validate-data/valid2.expected b/testsuite/tools/validate-data/valid2.expected
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/testsuite/tools/validate-data/valid2.expected
diff --git a/testsuite/tools/validate-data/valid2.ui b/testsuite/tools/validate-data/valid2.ui
new file mode 100644
index 0000000000..e0f4cf75df
--- /dev/null
+++ b/testsuite/tools/validate-data/valid2.ui
@@ -0,0 +1,4 @@
+<interface>
+ <template class="GtkEmojiChooser" parent="GtkPopover">
+ </template>
+</interface>
diff --git a/testsuite/tools/validate.in b/testsuite/tools/validate.in
new file mode 100755
index 0000000000..82de80e31d
--- /dev/null
+++ b/testsuite/tools/validate.in
@@ -0,0 +1,35 @@
+#! /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}
+
+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 $(basename $t) 2>$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