diff options
author | Matthias Clasen <mclasen@redhat.com> | 2020-11-01 14:47:02 -0500 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2020-11-01 23:09:26 -0500 |
commit | 403a70ca89d9666c4eff1554455eb4e22b120dbf (patch) | |
tree | 73121fcd12b900d9bf87782b62476b59dd97d45b | |
parent | 44b36b632123bac043c4d5d607de275b900bca46 (diff) | |
download | gtk+-403a70ca89d9666c4eff1554455eb4e22b120dbf.tar.gz |
testsuite: Add tests for gtk4-builder-tool validate
-rw-r--r-- | testsuite/tools/meson.build | 3 | ||||
-rw-r--r-- | testsuite/tools/validate-data/invalid1.expected | 1 | ||||
-rw-r--r-- | testsuite/tools/validate-data/invalid1.ui | 5 | ||||
-rw-r--r-- | testsuite/tools/validate-data/invalid2.expected | 1 | ||||
-rw-r--r-- | testsuite/tools/validate-data/invalid2.ui | 6 | ||||
-rw-r--r-- | testsuite/tools/validate-data/invalid3.expected | 1 | ||||
-rw-r--r-- | testsuite/tools/validate-data/invalid3.ui | 4 | ||||
-rw-r--r-- | testsuite/tools/validate-data/invalid4.expected | 1 | ||||
-rw-r--r-- | testsuite/tools/validate-data/invalid4.ui | 7 | ||||
-rw-r--r-- | testsuite/tools/validate-data/valid1.expected | 0 | ||||
-rw-r--r-- | testsuite/tools/validate-data/valid1.ui | 3 | ||||
-rw-r--r-- | testsuite/tools/validate-data/valid2.expected | 0 | ||||
-rw-r--r-- | testsuite/tools/validate-data/valid2.ui | 4 | ||||
-rwxr-xr-x | testsuite/tools/validate.in | 35 |
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 |