gtk3/tests/reftests
Benjamin Otte 769c795d57 reftests: Use an offscreen window to avoid artifacts
When tests are larger than the screen size and no compositing is
enabled, the window will be clipped to the screen size and all areas
outside of the screen have undefined contents.

To avoid this, we can use an offscreen window.
2011-07-05 15:28:18 +02:00
..
align-expand.sh
alignment-props.css
alignment-props.ref.ui
alignment-props.ui
background-area.css reftests: fix background-area reftest after the last commit 2011-06-15 11:25:26 -04:00
background-area.ref.ui reftests: fix background-area reftest after the last commit 2011-06-15 11:25:26 -04:00
background-area.ui reftests: fix background-area reftest after the last commit 2011-06-15 11:25:26 -04:00
border-color-default.css reftests: Check that the default border color is the foreground color 2011-06-13 15:01:52 +02:00
border-color-default.ref.ui reftests: Check that the default border color is the foreground color 2011-06-13 15:01:52 +02:00
border-color-default.ui reftests: Check that the default border color is the foreground color 2011-06-13 15:01:52 +02:00
border-image-3-balls-green.png reftests: Add border-image-repeat 2011-06-09 05:51:54 +02:00
border-image-3-balls-yellow.png reftests: Add border-image-repeat 2011-06-09 05:51:54 +02:00
border-image-ball-green.png reftests: Add border-image-repeat 2011-06-09 05:51:54 +02:00
border-image-ball-red.png reftests: Add border-image-repeat 2011-06-09 05:51:54 +02:00
border-image-ball-yellow.png reftests: Add border-image-repeat 2011-06-09 05:51:54 +02:00
border-image-balls.png reftests: Add border-image-repeat 2011-06-09 05:51:54 +02:00
border-image-excess-size.css reftests: ADd test for overlapping border-image slices 2011-06-09 05:51:55 +02:00
border-image-excess-size.ref.ui reftests: ADd test for overlapping border-image slices 2011-06-09 05:51:55 +02:00
border-image-excess-size.ui reftests: ADd test for overlapping border-image slices 2011-06-09 05:51:55 +02:00
border-image-gradient.css reftests: add reftests for border-image with gradient and url sources 2011-06-09 05:51:54 +02:00
border-image-gradient.ref.ui reftests: add reftests for border-image with gradient and url sources 2011-06-09 05:51:54 +02:00
border-image-gradient.ui reftests: add reftests for border-image with gradient and url sources 2011-06-09 05:51:54 +02:00
border-image-repeat.css reftests: Add border-image-repeat 2011-06-09 05:51:54 +02:00
border-image-repeat.ref.ui reftests: Add border-image-repeat 2011-06-09 05:51:54 +02:00
border-image-repeat.sh reftests: Add border-image-repeat 2011-06-09 05:51:54 +02:00
border-image-repeat.ui reftests: Add border-image-repeat 2011-06-09 05:51:54 +02:00
border-image-url.css reftests: add reftests for border-image with gradient and url sources 2011-06-09 05:51:54 +02:00
border-image-url.ref.ui reftests: add reftests for border-image with gradient and url sources 2011-06-09 05:51:54 +02:00
border-image-url.ui reftests: add reftests for border-image with gradient and url sources 2011-06-09 05:51:54 +02:00
box-expand.css
box-expand.ref.ui
box-expand.ui
box-packing.css
box-packing.ref.ui
box-packing.ui
box-pseudo-classes.css reftests: Test new pseudo-class support in GtkBox 2011-06-02 02:03:50 +02:00
box-pseudo-classes.ref.ui reftests: Test new pseudo-class support in GtkBox 2011-06-02 02:03:50 +02:00
box-pseudo-classes.ui reftests: Test new pseudo-class support in GtkBox 2011-06-02 02:03:50 +02:00
box-shadow-spec-inset.css reftests: fix background-area reftest after the last commit 2011-06-15 11:25:26 -04:00
box-shadow-spec-inset.ref.ui reftests: Add a test for inset box-shadow 2011-06-11 09:29:43 +02:00
box-shadow-spec-inset.ui reftests: Add a test for inset box-shadow 2011-06-11 09:29:43 +02:00
css-match-class.css reftests: Add a test for matching by class 2011-05-18 22:17:56 +02:00
css-match-class.ref.ui reftests: Add a test for matching by class 2011-05-18 22:17:56 +02:00
css-match-class.ui reftests: Add a test for matching by class 2011-05-18 22:17:56 +02:00
css-match-descendant-later.css reftests: Add a test for descendant CSS selectors match 2011-05-18 22:17:56 +02:00
css-match-descendant-later.ref.ui reftests: Add a test for descendant CSS selectors match 2011-05-18 22:17:56 +02:00
css-match-descendant-later.ui reftests: Add a test for descendant CSS selectors match 2011-05-18 22:17:56 +02:00
css-match-exact.css reftests: Add a test ensuring selectors don't match children 2011-05-18 22:17:57 +02:00
css-match-exact.ref.ui reftests: Add a test ensuring selectors don't match children 2011-05-18 22:17:57 +02:00
css-match-exact.ui reftests: Add a test ensuring selectors don't match children 2011-05-18 22:17:57 +02:00
css-match-inherit.css reftests: Check that inherited properties work 2011-05-18 22:17:59 +02:00
css-match-inherit.ref.ui reftests: Check that inherited properties work 2011-05-18 22:17:59 +02:00
css-match-inherit.ui reftests: Check that inherited properties work 2011-05-18 22:17:59 +02:00
css-match-name.css reftests: Add a test for matching by name 2011-05-18 22:17:56 +02:00
css-match-name.ref.ui reftests: Add a test for matching by name 2011-05-18 22:17:56 +02:00
css-match-name.ui reftests: Add a test for matching by name 2011-05-18 22:17:56 +02:00
css-match-region-matches-star.css reftests: Add a test that checks that * matches regions 2011-05-18 22:17:56 +02:00
css-match-region-matches-star.ref.ui reftests: Add a test that checks that * matches regions 2011-05-18 22:17:56 +02:00
css-match-region-matches-star.ui reftests: Add a test that checks that * matches regions 2011-05-18 22:17:56 +02:00
css-match-regions.css reftests: Add a check for matching regions only once 2011-05-18 22:17:56 +02:00
css-match-regions.ref.ui reftests: Add a check for matching regions only once 2011-05-18 22:17:56 +02:00
css-match-regions.ui reftests: Add a check for matching regions only once 2011-05-18 22:17:56 +02:00
css-match-style-property-order.css reftests: Check style property order 2011-05-18 22:17:58 +02:00
css-match-style-property-order.ref.ui reftests: Check style property order 2011-05-18 22:17:58 +02:00
css-match-style-property-order.ui reftests: Check style property order 2011-05-18 22:17:58 +02:00
css-match-subtype.css reftests: Add a test for matching by subtype 2011-05-18 22:17:56 +02:00
css-match-subtype.ref.ui reftests: Add a test for matching by subtype 2011-05-18 22:17:56 +02:00
css-match-subtype.ui reftests: Add a test for matching by subtype 2011-05-18 22:17:56 +02:00
css-match-type.css reftests: Add test to check that matching by type works 2011-05-18 22:17:56 +02:00
css-match-type.ref.ui reftests: Add test to check that matching by type works 2011-05-18 22:17:56 +02:00
css-match-type.ui reftests: Add test to check that matching by type works 2011-05-18 22:17:56 +02:00
entry-progress-coloring.css reftests: Unset background-image in CSS of test 2011-05-18 22:17:56 +02:00
entry-progress-coloring.ref.ui
entry-progress-coloring.ui
green-20x20.png reftests: Add test to check that matching by type works 2011-05-18 22:17:56 +02:00
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 GtkGrid: Fix a size allocation problem 2011-06-07 11:05:50 -04:00
grid-wfh.ui GtkGrid: Fix a size allocation problem 2011-06-07 11:05:50 -04:00
gtk-reftest.c
label-shadows.css reftests: Add label-shadows test 2011-05-22 05:56:12 +02:00
label-shadows.ref.ui reftests: Add label-shadows test 2011-05-22 05:56:12 +02:00
label-shadows.ui reftests: Add label-shadows test 2011-05-22 05:56:12 +02:00
label-sizing.css
label-sizing.ref.ui reftests: Use an offscreen window to avoid artifacts 2011-07-05 15:28:18 +02:00
label-sizing.ui reftests: Use an offscreen window to avoid artifacts 2011-07-05 15:28:18 +02:00
label-small-ellipsized.ref.ui
label-small-ellipsized.ui
label-wrap-justify.ref.ui
label-wrap-justify.ui
Makefile.am reftests: Add test for box brokenness 2011-07-02 01:57:27 +02:00
misc-alignment.css
misc-alignment.ref.ui
misc-alignment.ui
no-colors.css reftests: Add a reftest setting all colors to "none" 2011-06-02 02:03:51 +02:00
no-colors.ref.ui reftests: Add a reftest setting all colors to "none" 2011-06-02 02:03:51 +02:00
no-colors.ui reftests: Add a reftest setting all colors to "none" 2011-06-02 02:03:51 +02:00
nonresizable-size.ref.ui
nonresizable-size.ui
paned-undersized.css
paned-undersized.ref.ui
paned-undersized.ui
quit-mnemonic.ref.ui
quit-mnemonic.ui
README
rotated-layout.ref.ui
rotated-layout.ui
shorthand-entry-border.css reftests: Add a reftest to check shorthands do work 2011-05-22 05:56:12 +02:00
shorthand-entry-border.ref.ui reftests: Add a reftest to check shorthands do work 2011-05-22 05:56:12 +02:00
shorthand-entry-border.ui reftests: Add a reftest to check shorthands do work 2011-05-22 05:56:12 +02:00
simple.ref.ui
simple.ui
style-properties-nth-child.css reftests: Add test for box brokenness 2011-07-02 01:57:27 +02:00
style-properties-nth-child.ref.ui reftests: Add test for box brokenness 2011-07-02 01:57:27 +02:00
style-properties-nth-child.ui reftests: Add test for box brokenness 2011-07-02 01:57:27 +02:00
toplevel-vs-popup.ref.ui
toplevel-vs-popup.ui
unresolvable.css reftests: Add reftest for unresolvable properties 2011-06-11 10:41:17 +02:00
unresolvable.ref.ui reftests: Add reftest for unresolvable properties 2011-06-11 10:41:17 +02:00
unresolvable.ui reftests: Add reftest for unresolvable properties 2011-06-11 10:41:17 +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