gtk/testsuite/reftests
Matthias Clasen b86f5a4086 Add a way to delay snapshots in reftests
This adds an inhibit api that code from the reftest module
can use to delay the taking of the snapshot. Also refactor
the code in gtk-reftest to use the inhibit mechanism for
its own delaying of the snapshot until after the first
expose.
2014-06-02 22:35:59 -04:00
..
721800-0px-dotted-border.css reftests: Add reftest for 0px border fix 2014-01-14 03:38:04 +01:00
721800-0px-dotted-border.ref.ui reftests: Add reftest for 0px border fix 2014-01-14 03:38:04 +01:00
721800-0px-dotted-border.ui reftests: Add reftest for 0px border fix 2014-01-14 03:38:04 +01:00
actionbar.css Make the action bar reftest reliable 2014-01-14 14:05:37 -05:00
actionbar.ref.ui Adjust action ref test to new realities 2014-02-16 23:03:38 -05:00
actionbar.ui Adjust action ref test to new realities 2014-02-16 23:03:38 -05:00
align-expand.sh
alignment-props.css
alignment-props.ref.ui
alignment-props.ui Replace all margin-left and margin-right with margin-start and margin-end 2013-11-15 02:54:35 +01:00
background-area.css reftests: Fix background-area test 2014-05-22 17:38:50 +02:00
background-area.ref.ui
background-area.ui
background-color-transparent.css
background-color-transparent.ref.ui
background-color-transparent.ui
background-image-multiple.css
background-image-multiple.ref.ui
background-image-multiple.ui
background-origin.css
background-origin.ref.ui
background-origin.ui
background-position-repeat-bg.png
background-position-repeat.css
background-position-repeat.ref.ui
background-position-repeat.ui
background-position-simple.css
background-position-simple.ref.ui
background-position-simple.ui
background-position.css
background-position.ref.ui
background-position.ui
background-positioning-area-empty.ref.ui
background-positioning-area-empty.ui
background-repeat.css reftests: Fix some more easy GtkButton shadow cases 2014-05-22 11:46:07 -04:00
background-repeat.ref.ui
background-repeat.ui
background-size-keywords.css
background-size-keywords.ref.ui
background-size-keywords.ui
background-size-zero.css
background-size-zero.ref.ui
background-size-zero.ui
background-size.css
background-size.ref.ui
background-size.ui
background-window-transparent.css
background-window-transparent.ref.ui
background-window-transparent.ui
bad-color-names.css
bad-color-names.ref.ui
bad-color-names.ui
border-color-default.css
border-color-default.ref.ui
border-color-default.ui
border-half-pixel.css
border-half-pixel.ref.ui
border-half-pixel.ui
border-image-3-balls-green-squished.png reftests: Fix rendering issues with border-image reftest 2013-11-19 02:29:48 +01:00
border-image-3-balls-green.png
border-image-3-balls-yellow-squished.png reftests: Fix rendering issues with border-image reftest 2013-11-19 02:29:48 +01:00
border-image-3-balls-yellow.png
border-image-ball-green.png
border-image-ball-red.png
border-image-ball-yellow.png
border-image-balls.png
border-image-excess-size.css
border-image-excess-size.ref.ui
border-image-excess-size.ui
border-image-gradient.css
border-image-gradient.ref.ui
border-image-gradient.ui
border-image-url-scaled.css reftest: Add reftest for scaled image borders - fails on GDK_SCALE=2 2013-07-05 15:21:55 +02:00
border-image-url-scaled.ref.ui reftest: Add reftest for scaled image borders - fails on GDK_SCALE=2 2013-07-05 15:21:55 +02:00
border-image-url-scaled.ui reftest: Add reftest for scaled image borders - fails on GDK_SCALE=2 2013-07-05 15:21:55 +02:00
border-image-url.css
border-image-url.ref.ui
border-image-url.ui
border-radius-clamp.css
border-radius-clamp.ref.ui
border-radius-clamp.ui
border-rgb.png reftest: Add reftest for scaled image borders - fails on GDK_SCALE=2 2013-07-05 15:21:55 +02:00
border-rgb@2.png reftest: Add reftest for scaled image borders - fails on GDK_SCALE=2 2013-07-05 15:21:55 +02:00
border-style-none.css
border-style-none.ref.ui
border-style-none.ui
border-style.css
border-style.ref.ui
border-style.ui
box-child-expand.ref.ui reftests: Add a reftest for the expand change in GtkBox 2013-06-30 03:39:09 +02:00
box-child-expand.ui reftests: Add a reftest for the expand change in GtkBox 2013-06-30 03:39:09 +02:00
box-packing.css
box-packing.ref.ui
box-packing.ui
box-pseudo-classes.css
box-pseudo-classes.ref.ui
box-pseudo-classes.ui
box-shadow-spec-inset.css reftests: Fix some more easy GtkButton shadow cases 2014-05-22 11:46:07 -04:00
box-shadow-spec-inset.ref.ui
box-shadow-spec-inset.ui
button-wrapping.ref.ui
button-wrapping.ui
cellrenderer-pixbuf-stock-rtl.css reftests: Add a reftest for the cell renderer fix 2013-09-05 18:48:47 +02:00
cellrenderer-pixbuf-stock-rtl.ref.ui reftests: Add a reftest for the cell renderer fix 2013-09-05 18:48:47 +02:00
cellrenderer-pixbuf-stock-rtl.ui reftests: Add a reftest for the cell renderer fix 2013-09-05 18:48:47 +02:00
css-currentcolor-alpha.css reftests: Add test for just fixed Polari crasher 2013-09-06 03:04:44 +02:00
css-currentcolor-alpha.ref.ui reftests: Add test for just fixed Polari crasher 2013-09-06 03:04:44 +02:00
css-currentcolor-alpha.ui reftests: Add test for just fixed Polari crasher 2013-09-06 03:04:44 +02:00
css-match-class.css
css-match-class.ref.ui
css-match-class.ui
css-match-descendant-later.css
css-match-descendant-later.ref.ui
css-match-descendant-later.ui
css-match-exact.css
css-match-exact.ref.ui
css-match-exact.ui
css-match-import-import.css
css-match-import.css
css-match-import.ref.ui
css-match-import.ui
css-match-inherit-different-state.css
css-match-inherit-different-state.ref.ui
css-match-inherit-different-state.ui
css-match-inherit.css
css-match-inherit.ref.ui
css-match-inherit.ui
css-match-name.css
css-match-name.ref.ui
css-match-name.ui
css-match-region-matches-star.css
css-match-region-matches-star.ref.ui
css-match-region-matches-star.ui
css-match-regions.css
css-match-regions.ref.ui
css-match-regions.ui
css-match-siblings.css
css-match-siblings.ref.ui
css-match-siblings.ui
css-match-subtype.css
css-match-subtype.ref.ui
css-match-subtype.ui
css-match-type.css
css-match-type.ref.ui
css-match-type.ui
css-multi-state.css reftests: Fix for state propagation changes 2013-06-13 15:31:35 +02:00
css-multi-state.ref.ui reftests: Fix for state propagation changes 2013-06-13 15:31:35 +02:00
css-multi-state.ui reftests: Fix for state propagation changes 2013-06-13 15:31:35 +02:00
entry-progress-coloring.css reftests: never set interior-focus 2014-05-09 11:02:42 -07:00
entry-progress-coloring.ref.ui
entry-progress-coloring.ui
fixed-widget-stacking.ref.ui reftests: Add a test for a widget stacking regression 2014-02-28 03:08:11 +01:00
fixed-widget-stacking.ui reftests: Add a test for a widget stacking regression 2014-02-28 03:08:11 +01:00
flipping-icons.ref.ui Add a reftest for flipping icons 2014-06-02 21:41:32 -04:00
flipping-icons.ui Add a reftest for flipping icons 2014-06-02 21:41:32 -04:00
font-sizes-names.css
font-sizes-names.ref.ui
font-sizes-names.ui
green-20x20.png
grid-empty-with-spacing.ref.ui
grid-empty-with-spacing.ui
grid-expand.css
grid-expand.ref.ui
grid-expand.ui
grid-homogeneous.css
grid-homogeneous.ref.ui
grid-homogeneous.ui
grid-spacing1.ref.ui
grid-spacing1.ui
grid-spacing2.ref.ui
grid-spacing2.ui
grid-spacing3.css
grid-spacing3.ref.ui
grid-spacing3.ui
grid-wfh.ref.ui
grid-wfh.ui
gtk-image-effect-inherit.css reftests: I can't count in CSS 2013-09-07 00:23:38 +02:00
gtk-image-effect-inherit.ref.ui reftests: Check that -gtk-image-effect is inherited 2013-09-07 00:21:48 +02:00
gtk-image-effect-inherit.ui reftests: Check that -gtk-image-effect is inherited 2013-09-07 00:21:48 +02:00
gtk-reftest.c Add a way to delay snapshots in reftests 2014-06-02 22:35:59 -04:00
gtk-reftest.h Add a way to delay snapshots in reftests 2014-06-02 22:35:59 -04:00
icon-shadow-no-transform.css reftests: Add a test for recent commits 2014-05-14 04:28:35 +02:00
icon-shadow-no-transform.ref.ui reftests: Add a test for recent commits 2014-05-14 04:28:35 +02:00
icon-shadow-no-transform.ui reftests: Add a test for recent commits 2014-05-14 04:28:35 +02:00
icon-style-basics.css reftests: Add a reftest for -gtk-icon-style 2014-05-14 04:28:34 +02:00
icon-style-basics.ref.ui reftests: Add a reftest for -gtk-icon-style 2014-05-14 04:28:34 +02:00
icon-style-basics.ui reftests: Add a reftest for -gtk-icon-style 2014-05-14 04:28:34 +02:00
icon-vfuncs.css reftests: Fix icon-vfuncs reftest 2014-05-22 22:35:08 +02:00
icon-vfuncs.ref.ui reftests: Fix icon-vfuncs reftest 2014-05-22 22:35:08 +02:00
icon-vfuncs.ui reftests: Fix icon-vfuncs reftest 2014-05-22 22:35:08 +02:00
iconview-empty.css
iconview-empty.ref.ui Fix iconview-empty reftest 2013-06-15 21:31:41 -04:00
iconview-empty.ui
image-load-from-file.css
image-load-from-file.ref.ui
image-load-from-file.ui
info-bar-message-types.css
info-bar-message-types.ref.ui
info-bar-message-types.ui
inherit-and-initial.css
inherit-and-initial.ref.ui Replace all margin-left and margin-right with margin-start and margin-end 2013-11-15 02:54:35 +01:00
inherit-and-initial.ui Replace all margin-left and margin-right with margin-start and margin-end 2013-11-15 02:54:35 +01:00
label-attribute-preference.css reftests: Fix CSS for tests after :link introduction 2013-11-09 16:43:06 +01:00
label-attribute-preference.ref.ui
label-attribute-preference.ui
label-ellipsize-small.ref.ui
label-ellipsize-small.ui
label-ellipsize-with-big.ref.ui
label-ellipsize-with-big.ui
label-shadows.css
label-shadows.ref.ui
label-shadows.ui
label-sizing.css
label-sizing.ref.ui
label-sizing.ui
label-small-ellipsized.ref.ui
label-small-ellipsized.ui
label-width-chars-dont-shrink.ref.ui
label-width-chars-dont-shrink.ui
label-wrap-justify.ref.ui
label-wrap-justify.ui
linear-gradient-transition-to-other.css
linear-gradient-transition-to-other.ref.ui
linear-gradient-transition-to-other.ui
linear-gradient.css
linear-gradient.ref.ui
linear-gradient.ui
link-coloring.css reftests: Add test for new :link and :visited 2013-11-04 16:36:11 +01:00
link-coloring.ref.ui reftests: Add test for new :link and :visited 2013-11-04 16:36:11 +01:00
link-coloring.ui reftests: Add test for new :link and :visited 2013-11-04 16:36:11 +01:00
Makefile.am Add a way to delay snapshots in reftests 2014-06-02 22:35:59 -04:00
marble.xpm
messagedialog-secondarytext.ref.ui
messagedialog-secondarytext.ui
misc-alignment.css
misc-alignment.ref.ui
misc-alignment.ui Replace all margin-left and margin-right with margin-start and margin-end 2013-11-15 02:54:35 +01:00
named-colors.css
named-colors.ref.ui
named-colors.ui
no-colors.css
no-colors.ref.ui
no-colors.ui
nonresizable-size.ref.ui
nonresizable-size.ui
notebook-childproperties.css
notebook-childproperties.ref.ui
notebook-childproperties.ui
nth-child.css
nth-child.ref.ui
nth-child.ui
opacity.css
opacity.ref.ui
opacity.ui
paned-undersized.css
paned-undersized.ref.ui
paned-undersized.ui
quit-mnemonic.css
quit-mnemonic.ref.ui
quit-mnemonic.ui
README
reference-background-origin.png
reftest-module.c gtk-reftest: Allow loading code for reftests 2014-05-31 05:19:41 +02:00
reftest-module.h gtk-reftest: Allow loading code for reftests 2014-05-31 05:19:41 +02:00
reftests.test.in testsuite: put installed tests in the right place 2014-05-31 00:16:07 -04:00
reset-to-defaults.css css: Implement "all" shorthand 2014-05-11 03:23:55 +02:00
revealer-extra-size.ref.ui reftests: Add a reftest for the latest fix 2014-02-20 02:10:07 +01:00
revealer-extra-size.ui reftests: Add a reftest for the latest fix 2014-02-20 02:10:07 +01:00
revealer-wrappable-contents.ref.ui reftests: Add reftest for last commit 2014-02-23 15:40:46 +01:00
revealer-wrappable-contents.ui reftests: Add reftest for last commit 2014-02-23 15:40:46 +01:00
rotated-layout.ref.ui
rotated-layout.ui
separator-size.ref.ui Don't use stock APIs in the testsuite 2013-06-24 19:53:08 -04:00
separator-size.ui Don't use stock APIs in the testsuite 2013-06-24 19:53:08 -04:00
set-default-direction.c reftests: Add reftest for direction change 2014-05-31 05:19:41 +02:00
set-default-direction.ref.ui reftests: Add reftest for direction change 2014-05-31 05:19:41 +02:00
set-default-direction.ui reftests: Add reftest for direction change 2014-05-31 05:19:41 +02:00
shorthand-entry-border.css
shorthand-entry-border.ref.ui
shorthand-entry-border.ui
simple.ref.ui
simple.ui
sizegroups-basics.css
sizegroups-basics.ref.ui
sizegroups-basics.ui
sizegroups-evolution-identity-page.ref.ui Replace all margin-left and margin-right with margin-start and margin-end 2013-11-15 02:54:35 +01:00
sizegroups-evolution-identity-page.ui Replace all margin-left and margin-right with margin-start and margin-end 2013-11-15 02:54:35 +01:00
sizegroups-get-preferred-null.ref.ui
sizegroups-get-preferred-null.ui
style-properties-nth-child.css
style-properties-nth-child.ref.ui
style-properties-nth-child.ui
style-properties-only-child.css
style-properties-only-child.ref.ui
style-properties-only-child.ui
symbolic-icon-translucent-color.css reftests: Add a test for the symbolic color fix 2013-10-05 13:57:51 +02:00
symbolic-icon-translucent-color.ref.ui reftests: Add a test for the symbolic color fix 2013-10-05 13:57:51 +02:00
symbolic-icon-translucent-color.ui reftests: Add a test for the symbolic color fix 2013-10-05 13:57:51 +02:00
toplevel-vs-popup.ref.ui
toplevel-vs-popup.ui
treeview-fixed-height.css
treeview-fixed-height.ref.ui
treeview-fixed-height.ui
treeview-headers-hidden.ref.ui
treeview-headers-hidden.ui
unresolvable.css
unresolvable.ref.ui
unresolvable.ui
window-border-width.ref.ui
window-border-width.ui
window-default-size.ref.ui
window-default-size.ui
window-height-for-width.ref.ui reftests: Add test for latest commit 2014-04-29 19:36:26 +02:00
window-height-for-width.ui reftests: Add test for latest commit 2014-04-29 19:36:26 +02:00
window-show-contents-on-map.ref.ui reftests: Add a reftest with signals 2014-05-31 05:19:40 +02:00
window-show-contents-on-map.ui reftests: Add a reftest with signals 2014-05-31 05:19:40 +02:00

gtk-reftest is a new test runner supposed to do a lot of generic tests.
Run it like this:

./gtk-reftest [OPTIONS] TESTFILE [TESTFILES...]

where FILE is a GtkBuilder ui file to run.

For a general test named "test", you want to have the following files:
1) test.ui
2) test.ref.ui
3) test.css (optional)
The test will then check that test.ui and test.ref.ui are rendered
identically with the provided css.

In detail, for every provided TESTFILE the test runner will:
1) Add the css to the default screen
2) Load the test.ui file and the test.ref.ui file
3) Grab the first GtkWindow subclass widget
4) gtk_widget_show() it and take a snapshot image of its contents into
   a cairo surface.
5) Compare the two images to be bitwise identical. If they are not, a
   diff image will be created hilighting the differences.
6) Save the images as png files to the output directory named:
   - test.out.png (rendering of test.ui)
   - test.ref.png (rendering of test.ref.ui)
   - test.diff.png (optional, differences from step 5)
7) Fail the test if the two images are not bitwise identical

Credit for the idea of reftests goes to Mozilla and in particular David
Baron. For a larger introduction of why reftests are useful, see
http://weblogs.mozillazine.org/roc/archives/2008/12/reftests.html