Merge branch 'gtk3-installed-tests' into 'gtk-3-24'

gtk3/meson: port installed tests and reftests

See merge request GNOME/gtk!1110
This commit is contained in:
Christoph Reiter 2019-11-15 16:32:30 +00:00
commit c3c8ea3e88
22 changed files with 1317 additions and 14 deletions

View File

@ -21,6 +21,7 @@ fedora-meson:
name: "gtk3-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}" name: "gtk3-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
paths: paths:
- "_build/meson-logs" - "_build/meson-logs"
- "_build/testsuite/reftests/output"
msys2-mingw32-meson: msys2-mingw32-meson:
variables: variables:

View File

@ -12,6 +12,7 @@ python3 -m pip install --user meson==0.49.2
meson \ meson \
-Dgtk_doc=true \ -Dgtk_doc=true \
-Dman=true \ -Dman=true \
-Dinstalled_tests=true \
-Dbroadway_backend=true \ -Dbroadway_backend=true \
-Dxinerama=yes \ -Dxinerama=yes \
-Dprint_backends="file,lpr,test,cloudprint,cups" \ -Dprint_backends="file,lpr,test,cloudprint,cups" \

View File

@ -46,6 +46,8 @@ skipped_tests = [
a11y_dump_bin = executable('accessibility-dump', a11y_dump_bin = executable('accessibility-dump',
'accessibility-dump.c', 'accessibility-dump.c',
dependencies: libgtk_dep, dependencies: libgtk_dep,
install: get_option('installed_tests'),
install_dir: installed_test_bindir,
) )
foreach t: a11y_state_tests foreach t: a11y_state_tests
@ -85,6 +87,8 @@ foreach t: a11y_tests
test (t, test (t,
executable (t, '@0@.c'.format(t), executable (t, '@0@.c'.format(t),
install: get_option('installed_tests'),
install_dir: installed_test_bindir,
dependencies: libgtk_dep), dependencies: libgtk_dep),
args: [ '--tap', '-k', ], args: [ '--tap', '-k', ],
timeout: 120, timeout: 120,
@ -99,4 +103,106 @@ foreach t: a11y_tests
suite: 'a11y') suite: 'a11y')
endforeach endforeach
installed_test_data = [
'hello-world.ui',
'hello-world.txt',
'mnemonic.ui',
'mnemonic.txt',
'accessible-name.ui',
'accessible-name.txt',
'notebook.ui',
'notebook.txt',
'range.ui',
'range.txt',
'link.ui',
'link.txt',
'text.ui',
'text.txt',
'buttons.ui',
'buttons.txt',
'colorchooser.ui',
'colorchooser.txt',
'about.ui',
'about.txt',
'messagedialog.ui',
'messagedialog.txt',
'expander.ui',
'expander.txt',
'assistant.ui',
'assistant.txt',
'pickers.ui',
'pickers.txt',
'label.ui',
'label.txt',
'lockbutton.ui',
'lockbutton.txt',
'spinner.ui',
'spinner.txt',
'progress.ui',
'progress.txt',
'infobar.ui',
'infobar.txt',
'calendar.ui',
'calendar.txt',
'statusbar.ui',
'statusbar.txt',
'paned.ui',
'paned.txt',
'iconview.ui',
'iconview.txt',
'entries.ui',
'entries.txt',
'scale-drawvalue.ui',
'scale-drawvalue.txt',
'placeholder-text.ui',
'placeholder-text.txt',
'menu.ui',
'menu.txt',
'menubutton.ui',
'menubutton.txt',
'menubutton2.ui',
'menubutton2.txt',
'menubutton3.ui',
'menubutton3.txt',
'combos.ui',
'combos.txt',
'listbox.ui',
'listbox.txt',
'stack.ui',
'stack.txt',
'headerbar.ui',
'headerbar.txt',
'tree.ui',
'tree.txt',
'actionbar.ui',
'actionbar.txt',
'tooltips.ui',
'tooltips.txt',
]
a11y_installed_tests = [
'a11ytests.test',
'a11ychildren.test',
'a11ytree.test',
'a11yvalue.test',
'a11yderive.test',
'a11ytext.test',
'a11yutil.test',
'a11ymisc.test',
]
if get_option('installed_tests')
test_cdata = configuration_data()
test_cdata.set('libexecdir', gtk_libexecdir)
foreach t: a11y_installed_tests
configure_file(input: '@0@.in'.format(t),
output: t,
configuration: test_cdata,
install_dir: installed_test_datadir)
endforeach
install_data(installed_test_data, install_dir: join_paths(installed_test_bindir, 'a11ytests'))
endif
subdir('state') subdir('state')

View File

@ -28,7 +28,9 @@ testdata = \
focus1.ui focus1.in focus1.out \ focus1.ui focus1.in focus1.out \
focus2.ui focus2.in focus2.out focus2.ui focus2.in focus2.out
EXTRA_DIST += $(testdata) meson.build EXTRA_DIST += $(testdata) \
meson.build \
a11ystate.test.in
if BUILDOPT_INSTALL_TESTS if BUILDOPT_INSTALL_TESTS
insttestdir = $(libexecdir)/installed-tests/$(PACKAGE) insttestdir = $(libexecdir)/installed-tests/$(PACKAGE)

View File

@ -0,0 +1,4 @@
[Test]
Type=session-exclusive
Output=TAP
Exec=env G_ENABLE_DIAGNOSTIC=0 @libexecdir@/installed-tests/gtk+/state-record --tap --directory @libexecdir@/installed-tests/gtk+/state

View File

@ -1,4 +1,35 @@
a11y_state_record_bin = executable('state-record', a11y_state_record_bin = executable('state-record',
'state-record.c', 'state-record.c',
dependencies: libgtk_dep, dependencies: libgtk_dep,
install: get_option('installed_tests'),
install_dir: installed_test_bindir,
) )
test_data = [
'focus1.in',
'focus1.out',
'focus1.ui',
'focus2.in',
'focus2.out',
'focus2.ui',
]
a11y_installed_tests = [
'a11ystate.test',
]
if get_option('installed_tests')
test_cdata = configuration_data()
test_cdata.set('libexecdir', gtk_libexecdir)
foreach t: a11y_installed_tests
configure_file(input: '@0@.in'.format(t),
output: t,
configuration: test_cdata,
install: true,
install_dir: installed_test_datadir)
endforeach
install_data(test_data, install_dir: join_paths(installed_test_bindir, 'state'))
endif

View File

@ -2,5 +2,20 @@ subdir('parser')
subdir('nodes') subdir('nodes')
subdir('style') subdir('style')
test_api = executable('api', 'api.c', dependencies: libgtk_dep) testexecdir = join_paths(installed_test_bindir, 'css')
testdatadir = join_paths(installed_test_datadir, 'css')
test_api = executable('api', 'api.c',
dependencies: libgtk_dep,
install: get_option('installed_tests'),
install_dir: testexecdir)
test('css/api', test_api) test('css/api', test_api)
if get_option('installed_tests')
conf = configuration_data()
conf.set('libexecdir', gtk_libexecdir)
configure_file(input: 'api.test.in',
output: 'api.test',
configuration: conf,
install_dir: testdatadir)
endif

View File

@ -1,3 +1,76 @@
testexecdir = join_paths(installed_test_bindir, 'css', 'nodes')
testdatadir = join_paths(installed_test_datadir, 'css', 'nodes')
test_nodes = executable('test-css-nodes', 'test-css-nodes.c', dependencies: libgtk_dep) test_nodes = executable('test-css-nodes', 'test-css-nodes.c',
install: get_option('installed_tests'),
install_dir: testexecdir,
dependencies: libgtk_dep)
test('css/nodes/test-nodes', test_nodes) test('css/nodes/test-nodes', test_nodes)
test_data = [
'box.ltr.nodes',
'box.ltr.ui',
'box.rtl.nodes',
'box.rtl.ui',
'box-packing.ltr.nodes',
'box-packing.ltr.ui',
'box-packing.rtl.nodes',
'box-packing.rtl.ui',
'buttons.nodes',
'buttons.ui',
'checkbutton.ltr.nodes',
'checkbutton.ltr.ui',
'checkbutton.rtl.nodes',
'checkbutton.rtl.ui',
'combobox.nodes',
'combobox.ui',
'entries.nodes',
'entries.ui',
'expander.ltr.nodes',
'expander.ltr.ui',
'expander.rtl.nodes',
'expander.rtl.ui',
'levelbar.ltr.nodes',
'levelbar.ltr.ui',
'levelbar.rtl.nodes',
'levelbar.rtl.ui',
'notebook-arrows2.nodes',
'notebook-arrows2.ui',
'notebook-arrows.nodes',
'notebook-arrows.ui',
'notebook.bottom.ltr.nodes',
'notebook.bottom.ltr.ui',
'notebook.bottom.rtl.nodes',
'notebook.bottom.rtl.ui',
'notebook.left.ltr.nodes',
'notebook.left.ltr.ui',
'notebook.left.rtl.nodes',
'notebook.left.rtl.ui',
'notebook.right.ltr.nodes',
'notebook.right.ltr.ui',
'notebook.right.rtl.nodes',
'notebook.right.rtl.ui',
'notebook.top.ltr.nodes',
'notebook.top.ltr.ui',
'notebook.top.rtl.nodes',
'notebook.top.rtl.ui',
'paned.ltr.nodes',
'paned.ltr.ui',
'paned.rtl.nodes',
'paned.rtl.ui',
'progressbar.nodes',
'progressbar.ui',
'scale.nodes',
'scale.ui',
]
if get_option('installed_tests')
conf = configuration_data()
conf.set('libexecdir', gtk_libexecdir)
configure_file(input: 'test-css-nodes.test.in',
output: 'test-css-nodes.test',
configuration: conf,
install_dir: testdatadir)
install_data(test_data, install_dir: testexecdir)
endif

View File

@ -334,6 +334,11 @@ test_data = \
declarations-valid-24.ref.css \ declarations-valid-24.ref.css \
declarations-valid-25.css \ declarations-valid-25.css \
declarations-valid-25.ref.css \ declarations-valid-25.ref.css \
declarations-valid-26.css \
declarations-valid-26.ref.css \
deprecated.css \
deprecated.errors \
deprecated.ref.css \
does-not-exist.css \ does-not-exist.css \
does-not-exist.errors \ does-not-exist.errors \
does-not-exist.ref.css \ does-not-exist.ref.css \

View File

@ -1,3 +1,467 @@
testexecdir = join_paths(installed_test_bindir, 'css', 'parser')
testdatadir = join_paths(installed_test_datadir, 'css', 'parser')
test_parser = executable('test-css-parser', 'test-css-parser.c', dependencies: libgtk_dep) test_parser = executable('test-css-parser', 'test-css-parser.c',
install: get_option('installed_tests'),
install_dir: testexecdir,
dependencies: libgtk_dep)
test('css/parser/css-parser', test_parser) test('css/parser/css-parser', test_parser)
test_data = [
'animation-crash-3.12.css',
'animation-crash-3.12.errors',
'animation-crash-3.12.ref.css',
'animation-delay.css',
'animation-delay.ref.css',
'animation-direction.css',
'animation-direction.ref.css',
'animation-duration.css',
'animation-duration.ref.css',
'animation-fill-mode.css',
'animation-fill-mode.ref.css',
'animation-iteration-count.css',
'animation-iteration-count.ref.css',
'animation-name.css',
'animation-name.ref.css',
'animation-play-state.css',
'animation-play-state.ref.css',
'animation-shorthand-crash.css',
'animation-shorthand-crash.ref.css',
'animation-timing-function.css',
'animation-timing-function.ref.css',
'at-invalid-01.css',
'at-invalid-01.errors',
'at-invalid-01.ref.css',
'at-invalid-02.css',
'at-invalid-02.errors',
'at-invalid-02.ref.css',
'at-invalid-03.css',
'at-invalid-03.errors',
'at-invalid-03.ref.css',
'at-invalid-04.css',
'at-invalid-04.errors',
'at-invalid-04.ref.css',
'at-invalid-05.css',
'at-invalid-05.errors',
'at-invalid-05.ref.css',
'at-invalid-06.css',
'at-invalid-06.errors',
'at-invalid-06.ref.css',
'at-invalid-07.css',
'at-invalid-07.errors',
'at-invalid-07.ref.css',
'at-invalid-08.css',
'at-invalid-08.errors',
'at-invalid-08.ref.css',
'at-invalid-09.css',
'at-invalid-09.errors',
'at-invalid-09.ref.css',
'at-invalid-10.css',
'at-invalid-10.errors',
'at-invalid-10.ref.css',
'at-invalid-11.css',
'at-invalid-11.errors',
'at-invalid-11.ref.css',
'at-invalid-12.css',
'at-invalid-12.errors',
'at-invalid-12.ref.css',
'at-invalid-13.css',
'at-invalid-13.errors',
'at-invalid-13.ref.css',
'at-invalid-14.css',
'at-invalid-14.errors',
'at-invalid-14.ref.css',
'at-invalid-15.css',
'at-invalid-15.errors',
'at-invalid-15.ref.css',
'at-invalid-16.css',
'at-invalid-16.errors',
'at-invalid-16.ref.css',
'at-invalid-17.css',
'at-invalid-17.errors',
'at-invalid-17.ref.css',
'at-invalid-18.css',
'at-invalid-18.errors',
'at-invalid-18.ref.css',
'at-invalid-19.css',
'at-invalid-19.errors',
'at-invalid-19.ref.css',
'at-invalid-20.css',
'at-invalid-20.errors',
'at-invalid-20.ref.css',
'at-invalid-21.css',
'at-invalid-21.errors',
'at-invalid-21.ref.css',
'at-invalid-22.css',
'at-invalid-22.errors',
'at-invalid-22.ref.css',
'at-invalid-23.css',
'at-invalid-23.errors',
'at-invalid-23.ref.css',
'at-invalid-24.css',
'at-invalid-24.errors',
'at-invalid-24.ref.css',
'at-invalid-25.css',
'at-invalid-25.errors',
'at-invalid-25.ref.css',
'at-invalid-26.css',
'at-invalid-26.errors',
'at-invalid-26.ref.css',
'at-invalid-27.css',
'at-invalid-27.errors',
'at-invalid-27.ref.css',
'at-valid-01.css',
'at-valid-01.ref.css',
'at-valid-02.css',
'at-valid-02.ref.css',
'at-valid-03.css',
'at-valid-03.ref.css',
'at-valid-04.css',
'at-valid-04.ref.css',
'at-valid-05.css',
'at-valid-05.ref.css',
'at-valid-06.css',
'at-valid-06.ref.css',
'at-valid-07.css',
'at-valid-08.css',
'at-valid-08.ref.css',
'at-valid-09.css',
'at-valid-09.ref.css',
'at-valid-10.css',
'at-valid-10.ref.css',
'at-valid-11.css',
'at-valid-11.ref.css',
'at-valid-12.css',
'at-valid-12.ref.css',
'at-valid-13.css',
'at-valid-13.ref.css',
'at-valid-14.css',
'at-valid-14.ref.css',
'at-valid-15.css',
'at-valid-15.ref.css',
'at-valid-16.css',
'at-valid-16.ref.css',
'at-valid-17.css',
'at-valid-18.css',
'at-valid-18.ref.css',
'at-valid-19.css',
'at-valid-19.errors',
'at-valid-19.ref.css',
'at-valid-20.css',
'at-valid-20.errors',
'at-valid-20.ref.css',
'at-valid-21.css',
'at-valid-21.errors',
'at-valid-21.ref.css',
'background-blend-mode.css',
'background-blend-mode.ref.css',
'background-clip.css',
'background-clip.ref.css',
'background-image.css',
'background-image.ref.css',
'background-origin.css',
'background-origin.ref.css',
'background-position-errors.css',
'background-position-errors.errors',
'background-position-errors.ref.css',
'background-position.css',
'background-position.errors',
'background-position.ref.css',
'background-repeat.css',
'background-repeat.ref.css',
'background-shorthand-single.css',
'background-shorthand-single.ref.css',
'background-shorthand.css',
'background-shorthand.ref.css',
'background-size.css',
'background-size.ref.css',
'background-win32-color-is-no-error.css',
'background-win32-color-is-no-error.ref.css',
'border-color-currentcolor.css',
'border-color-currentcolor.ref.css',
'border-color.css',
'border-color.ref.css',
'border-image-repeat.css',
'border-image-repeat.ref.css',
'border-image-slice.css',
'border-image-slice.ref.css',
'border-image-source.css',
'border-image-source.ref.css',
'border-image-width.css',
'border-image-width.ref.css',
'border-infloop-3.12.css',
'border-infloop-3.12.errors',
'border-infloop-3.12.ref.css',
'border-radius-shorthand.css',
'border-radius-shorthand.errors',
'border-radius-shorthand.ref.css',
'border-radius.css',
'border-radius.ref.css',
'border-shorthand.css',
'border-shorthand.ref.css',
'border-style.css',
'border-style.ref.css',
'border-width.css',
'border-width.ref.css',
'border.css',
'border.errors',
'border.ref.css',
'box-shadow.css',
'box-shadow.ref.css',
'calc-errors.css',
'calc-errors.errors',
'calc-errors.ref.css',
'calc-simple.css',
'calc-simple.ref.css',
'calc.css',
'calc.ref.css',
'close-at-end-of-file.css',
'close-at-end-of-file.errors',
'close-at-end-of-file.ref.css',
'color.css',
'color.ref.css',
'colors-errors.css',
'colors-errors.errors',
'colors-errors.ref.css',
'colors-red.css',
'colors-red.ref.css',
'comment-detection.css',
'comment-detection.ref.css',
'cross-fade-basic.css',
'css-21-malformed-declarations.css',
'css-21-malformed-declarations.errors',
'css-21-malformed-declarations.ref.css',
'css-21-malformed-statements.css',
'css-21-malformed-statements.errors',
'css-21-malformed-statements.ref.css',
'currentcolor-everywhere.css',
'declarations-invalid-01.css',
'declarations-invalid-01.errors',
'declarations-invalid-01.ref.css',
'declarations-invalid-02.css',
'declarations-invalid-02.errors',
'declarations-invalid-02.ref.css',
'declarations-invalid-03.css',
'declarations-invalid-03.errors',
'declarations-invalid-03.ref.css',
'declarations-invalid-04.css',
'declarations-invalid-04.errors',
'declarations-invalid-04.ref.css',
'declarations-invalid-05.css',
'declarations-invalid-05.errors',
'declarations-invalid-05.ref.css',
'declarations-invalid-06.css',
'declarations-invalid-06.errors',
'declarations-invalid-06.ref.css',
'declarations-invalid-07.css',
'declarations-invalid-07.errors',
'declarations-invalid-07.ref.css',
'declarations-invalid-08.css',
'declarations-invalid-08.errors',
'declarations-invalid-08.ref.css',
'declarations-valid-01.css',
'declarations-valid-01.ref.css',
'declarations-valid-02.css',
'declarations-valid-02.ref.css',
'declarations-valid-03.css',
'declarations-valid-03.ref.css',
'declarations-valid-04.css',
'declarations-valid-04.ref.css',
'declarations-valid-05.css',
'declarations-valid-05.ref.css',
'declarations-valid-06.css',
'declarations-valid-06.ref.css',
'declarations-valid-07.css',
'declarations-valid-07.ref.css',
'declarations-valid-08.css',
'declarations-valid-08.ref.css',
'declarations-valid-09.css',
'declarations-valid-09.ref.css',
'declarations-valid-10.css',
'declarations-valid-10.ref.css',
'declarations-valid-11.css',
'declarations-valid-11.ref.css',
'declarations-valid-12.css',
'declarations-valid-12.ref.css',
'declarations-valid-13.css',
'declarations-valid-13.ref.css',
'declarations-valid-14.css',
'declarations-valid-14.ref.css',
'declarations-valid-15.css',
'declarations-valid-15.ref.css',
'declarations-valid-16.css',
'declarations-valid-16.ref.css',
'declarations-valid-17.css',
'declarations-valid-17.ref.css',
'declarations-valid-18.css',
'declarations-valid-18.ref.css',
'declarations-valid-19.css',
'declarations-valid-19.ref.css',
'declarations-valid-20.css',
'declarations-valid-20.ref.css',
'declarations-valid-21.css',
'declarations-valid-21.ref.css',
'declarations-valid-22.css',
'declarations-valid-22.ref.css',
'declarations-valid-23.css',
'declarations-valid-23.ref.css',
'declarations-valid-24.css',
'declarations-valid-24.ref.css',
'declarations-valid-25.css',
'declarations-valid-25.ref.css',
'declarations-valid-26.css',
'declarations-valid-26.ref.css',
'declarations.css',
'declarations.errors',
'declarations.ref.css',
'deprecated.css',
'deprecated.errors',
'deprecated.ref.css',
'does-not-exist.css',
'does-not-exist.errors',
'does-not-exist.ref.css',
'doubled.css',
'doubled.ref.css',
'empty.css',
'font-family.css',
'font-family.ref.css',
'font-size.css',
'font-size.ref.css',
'font-stretch.css',
'font-stretch.ref.css',
'font-style.css',
'font-style.ref.css',
'font-variant.css',
'font-variant.ref.css',
'font-weight.css',
'font-weight.ref.css',
'freed-string-in-error-messages.css',
'freed-string-in-error-messages.errors',
'freed-string-in-error-messages.ref.css',
'import-cyclic-1.css',
'import-cyclic-1.errors',
'import-cyclic-1.ref.css',
'import-cyclic-2.css',
'import-cyclic-2.errors',
'import-cyclic-2.ref.css',
'import-cyclic-3.css',
'import-cyclic-3.errors',
'import-cyclic-3.ref.css',
'import-nonexistant.css',
'import-nonexistant.errors',
'import-nonexistant.ref.css',
'import-recursive.css',
'import-recursive.errors',
'import-recursive.ref.css',
'integer.css',
'integer.errors',
'integer.ref.css',
'keyframes-empty.css',
'keyframes-empty.ref.css',
'keyframes-ordering.css',
'keyframes-ordering.ref.css',
'letter-spacing.css',
'letter-spacing.ref.css',
'linear-gradient.css',
'linear-gradient.ref.css',
'margin.css',
'margin.ref.css',
'min-height.css',
'min-height.ref.css',
'min-width.css',
'min-width.ref.css',
'no-semicolon.css',
'no-semicolon.ref.css',
'not.css',
'not.ref.css',
'nth-child.css',
'nth-child.ref.css',
'opacity.css',
'opacity.ref.css',
'outline-color.css',
'outline-color.ref.css',
'outline-offset.css',
'outline-offset.ref.css',
'outline-radius.css',
'outline-radius.ref.css',
'outline-style.css',
'outline-style.ref.css',
'outline-width.css',
'outline-width.ref.css',
'padding.css',
'padding.ref.css',
'property-name-errors.css',
'property-name-errors.errors',
'property-name-errors.ref.css',
'pseudo-classes-known.css',
'pseudo-classes-known.errors',
'pseudo-classes-known.ref.css',
'pseudo-classes-unknown.css',
'pseudo-classes-unknown.errors',
'pseudo-classes-unknown.ref.css',
'radial-background-position-error.css',
'radial-background-position-error.errors',
'radial-background-position-error.ref.css',
'radial-positions.css',
'radial-positions.errors',
'radial-positions.ref.css',
'radial.css',
'radial.ref.css',
'selector.css',
'selector.ref.css',
'shadow.css',
'shadow.ref.css',
'shorthand.css',
'shorthand.ref.css',
'simple.css',
'single-slash.css',
'single-slash.errors',
'single-slash.ref.css',
'string-values.css',
'string-values.ref.css',
'test.png',
'text-decoration-color.css',
'text-decoration-color.ref.css',
'text-decoration-line.css',
'text-decoration-line.ref.css',
'text-decoration-style.css',
'text-decoration-style.ref.css',
'text-shadow-invalid-but-worked-in-3.12.css',
'text-shadow-invalid-but-worked-in-3.12.errors',
'text-shadow-invalid-but-worked-in-3.12.ref.css',
'text-shadow.css',
'text-shadow.ref.css',
'transition-delay.css',
'transition-delay.ref.css',
'transition-duration.css',
'transition-duration.ref.css',
'transition-property.css',
'transition-property.ref.css',
'transition-timing-function.css',
'transition-timing-function.ref.css',
'transition.css',
'transition.ref.css',
'value-inherit-shorthand.css',
'value-inherit-shorthand.ref.css',
'value-inherit.css',
'value-inherit.errors',
'value-initial-shorthand.css',
'value-initial-shorthand.ref.css',
'value-initial.css',
'value-initial.errors',
'value-none.css',
'value-none.errors',
'value-none.ref.css',
'widget-style-property.css',
]
if get_option('installed_tests')
conf = configuration_data()
conf.set('libexecdir', gtk_libexecdir)
configure_file(input: 'test-css-parser.test.in',
output: 'test-css-parser.test',
configuration: conf,
install_dir: testdatadir)
install_data(test_data, install_dir: testexecdir)
endif

View File

@ -1,3 +1,5 @@
testexecdir = join_paths(installed_test_bindir, 'css', 'style')
testdatadir = join_paths(installed_test_datadir, 'css', 'style')
cssresources = gnome.compile_resources( cssresources = gnome.compile_resources(
'cssresources', 'cssresources',
@ -10,5 +12,45 @@ test_style = executable(
'test-css-style.c', 'test-css-style.c',
cssresources, cssresources,
dependencies: libgtk_dep, dependencies: libgtk_dep,
install: get_option('installed_tests'),
install_dir: testexecdir,
) )
test('css/style/test-style', test_style) test('css/style/test-style', test_style)
test_data = [
'adjacent-states.css',
'adjacent-states.nodes',
'adjacent-states.ui',
'colornames.css',
'colornames.nodes',
'colornames.ui',
'currentcolor.css',
'currentcolor.nodes',
'currentcolor.ui',
'font.css',
'font.nodes',
'font.ui',
'gradient.css',
'gradient.nodes',
'gradient.ui',
'inherit.css',
'inherit.nodes',
'inherit.ui',
'label.css',
'label.nodes',
'label.ui',
'nth-child.css',
'nth-child.nodes',
'nth-child.ui',
]
if get_option('installed_tests')
conf = configuration_data()
conf.set('libexecdir', gtk_libexecdir)
configure_file(input: 'test-css-style.test.in',
output: 'test-css-style.test',
configuration: conf,
install_dir: testdatadir)
install_data(test_data, install_dir: testexecdir)
endif

View File

@ -11,7 +11,9 @@ tests = [
foreach t : tests foreach t : tests
test_exe = executable(t, '@0@.c'.format(t), test_exe = executable(t, '@0@.c'.format(t),
dependencies: libgtk_dep) dependencies: libgtk_dep,
install: get_option('installed_tests'),
install_dir: installed_test_bindir)
test(t, test_exe, test(t, test_exe,
args: [ '--tap', '-k' ], args: [ '--tap', '-k' ],

View File

@ -266,6 +266,7 @@ EXTRA_DIST += \
$(test_icontheme) \ $(test_icontheme) \
$(test_ui) \ $(test_ui) \
meson.build \ meson.build \
gtk.test.in \
$(NULL) $(NULL)
GTK_GSETTINGS_SCHEMAS = \ GTK_GSETTINGS_SCHEMAS = \

View File

@ -0,0 +1,4 @@
[Test]
Type=session
Output=TAP
Exec=env G_ENABLE_DIAGNOSTIC=0 @testexecdir@/@test@ --tap

View File

@ -73,7 +73,9 @@ foreach t : tests
test_exe = executable(test_name, test_srcs, test_exe = executable(test_name, test_srcs,
c_args : test_cargs + test_extra_cargs, c_args : test_cargs + test_extra_cargs,
link_args : test_extra_ldflags, link_args : test_extra_ldflags,
dependencies : libgtk_dep) dependencies : libgtk_dep,
install: get_option('installed_tests'),
install_dir: installed_test_bindir)
test(test_name, test_exe, test(test_name, test_exe,
args: [ '--tap', '-k' ], args: [ '--tap', '-k' ],
@ -95,7 +97,9 @@ if add_languages('cpp', required: false)
test_exe = executable('autotestkeywords', test_exe = executable('autotestkeywords',
'autotestkeywords.cc', 'autotestkeywords.cc',
c_args : test_cargs + ['-Idummy-headers'], c_args : test_cargs + ['-Idummy-headers'],
dependencies : libgtk_dep) dependencies : libgtk_dep,
install: get_option('installed_tests'),
install_dir: installed_test_bindir)
test('c++ keywords', test_exe, test('c++ keywords', test_exe,
args: [ '--tap', '-k' ], args: [ '--tap', '-k' ],
env: [ 'GIO_USE_VOLUME_MONITOR=unix', env: [ 'GIO_USE_VOLUME_MONITOR=unix',
@ -107,4 +111,32 @@ if add_languages('cpp', required: false)
'GSETTINGS_SCHEMA_DIR=@0@'.format(gtk_schema_build_dir), 'GSETTINGS_SCHEMA_DIR=@0@'.format(gtk_schema_build_dir),
], ],
suite: 'gtk') suite: 'gtk')
if get_option('installed_tests')
conf = configuration_data()
conf.set('testexecdir', installed_test_bindir)
conf.set('test', 'autotestkeywords')
configure_file(input: 'gtk.test.in',
output: 'autotestkeywords.test',
configuration: conf,
install_dir: installed_test_datadir)
endif
endif endif
if get_option('installed_tests')
foreach t : tests
test_name = t.get(0)
conf = configuration_data()
conf.set('testexecdir', installed_test_bindir)
conf.set('test', test_name)
configure_file(input: 'gtk.test.in',
output: '@0@.test'.format(test_name),
configuration: conf,
install_dir: installed_test_datadir)
endforeach
install_subdir('icons', install_dir: installed_test_bindir)
install_subdir('icons2', install_dir: installed_test_bindir)
install_subdir('ui', install_dir: installed_test_bindir)
endif

View File

@ -1,9 +1,10 @@
if get_option('installed_tests') gtk_libexecdir = join_paths(gtk_prefix, get_option('libexecdir'))
error('installed tests haven\'t been ported to meson yet') installed_test_bindir = join_paths(gtk_libexecdir, 'installed-tests', 'gtk+')
endif installed_test_datadir = join_paths(gtk_datadir, 'installed-tests', 'gtk+')
subdir('gtk') subdir('gtk')
subdir('gdk') subdir('gdk')
subdir('css') subdir('css')
subdir('a11y') subdir('a11y')
subdir('tools') subdir('tools')
subdir('reftests')

View File

@ -68,6 +68,7 @@ clean-local:
EXTRA_DIST += \ EXTRA_DIST += \
align-expand.sh \ align-expand.sh \
meson.build \
$(NULL) $(NULL)
testdata = \ testdata = \

View File

@ -78,7 +78,8 @@ parse_command_line (int *argc, char ***argv)
/* g_test_build_filename must be called after gtk_test_init */ /* g_test_build_filename must be called after gtk_test_init */
schema_dir = g_test_build_filename (G_TEST_BUILT, "", NULL); schema_dir = g_test_build_filename (G_TEST_BUILT, "", NULL);
g_setenv ("GSETTINGS_SCHEMA_DIR", schema_dir, TRUE); if (g_getenv ("GTK_TEST_MESON") == NULL)
g_setenv ("GSETTINGS_SCHEMA_DIR", schema_dir, TRUE);
g_free (schema_dir); g_free (schema_dir);
if (g_strcmp0 (arg_direction, "rtl") == 0) if (g_strcmp0 (arg_direction, "rtl") == 0)
@ -88,6 +89,8 @@ parse_command_line (int *argc, char ***argv)
else if (arg_direction != NULL) else if (arg_direction != NULL)
g_printerr ("Invalid argument passed to --direction argument. Valid arguments are 'ltr' and 'rtl'\n"); g_printerr ("Invalid argument passed to --direction argument. Valid arguments are 'ltr' and 'rtl'\n");
g_type_ensure (G_TYPE_THEMED_ICON);
return TRUE; return TRUE;
} }

View File

@ -0,0 +1,486 @@
testexecdir = join_paths(installed_test_bindir, 'reftests')
libgtkreftestprivate = shared_library('gtkreftestprivate', [
'reftest-compare.c',
'reftest-module.c',
'reftest-snapshot.c'],
dependencies : libgtk_dep)
libreftest = shared_library('reftest',
[ 'expand-expander.c',
'frame-inhibitor.c',
'image-recording-surface.c',
'letter-spacing.c',
'set-default-direction.c',
'statusbar-remove-all.c',
'textview-border-windows.c',
'textview-tags.c',
'animation-direction.c',
],
link_with: libgtkreftestprivate,
dependencies : libgtk_dep)
gtk_reftest = executable('gtk-reftest', 'gtk-reftest.c',
link_with : [libgtkreftestprivate, libreftest],
dependencies : libgtk_dep,
install: get_option('installed_tests'),
install_dir: installed_test_bindir)
test_data = [
'721800-0px-dotted-border.css',
'721800-0px-dotted-border.ref.ui',
'721800-0px-dotted-border.ui',
'actionbar.css',
'actionbar.ref.ui',
'actionbar.ui',
'alignment-props.css',
'alignment-props.ref.ui',
'alignment-props.ui',
'animation-direction.css',
'animation-direction.ref.ui',
'animation-direction.ui',
'animation-fill-mode-iteration-count.css',
'animation-fill-mode-iteration-count.ref.ui',
'animation-fill-mode-iteration-count.ui',
'background-area.css',
'background-area.ref.ui',
'background-area.ui',
'background-blend-mode-clip-interaction.css',
'background-blend-mode-clip-interaction.ref.ui',
'background-blend-mode-clip-interaction.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-positioning-area-empty.ref.ui',
'background-positioning-area-empty.ui',
'background-position.css',
'background-position.ref.ui',
'background-position.ui',
'background-position-repeat.css',
'background-position-repeat.ref.ui',
'background-position-repeat.ui',
'background-position-repeat-bg.png',
'background-position-simple.css',
'background-position-simple.ref.ui',
'background-position-simple.ui',
'background-size.css',
'background-size.ref.ui',
'background-size.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-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',
'reference-background-origin.png',
'border-color-default.css',
'border-color-default.ref.ui',
'border-color-default.ui',
'border-corner-zero-width-rendering.css',
'border-corner-zero-width-rendering.ref.ui',
'border-corner-zero-width-rendering.ui',
'border-half-pixel.css',
'border-half-pixel.ref.ui',
'border-half-pixel.ui',
'border-image-ball-green.png',
'border-image-ball-red.png',
'border-image-ball-yellow.png',
'border-image-balls.png',
'border-image-3-balls-green.png',
'border-image-3-balls-green-squished.png',
'border-image-3-balls-yellow.png',
'border-image-3-balls-yellow-squished.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',
'border-image-url-scaled.ref.ui',
'border-image-url-scaled.ui',
'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',
'border-rgb@2.png',
'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',
'box-child-expand.ui',
'box-order.css',
'box-order.ref.ui',
'box-order.ui',
'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-changes-modify-clip.css',
'box-shadow-changes-modify-clip.ref.ui',
'box-shadow-changes-modify-clip.ui',
'box-shadow-spec-inset.css',
'box-shadow-spec-inset.ref.ui',
'box-shadow-spec-inset.ui',
'box-shadow-spread.css',
'box-shadow-spread.ref.ui',
'box-shadow-spread.ui',
'box-shadow-with-blend-mode.css',
'box-shadow-with-blend-mode.ref.ui',
'box-shadow-with-blend-mode.ui',
'button-wrapping.ui',
'button-wrapping.ref.ui',
'cellrenderer-pixbuf-stock-rtl.css',
'cellrenderer-pixbuf-stock-rtl.ui',
'cellrenderer-pixbuf-stock-rtl.ref.ui',
'color-transition.css',
'color-transition.ref.ui',
'color-transition.ui',
'css-em-label-size.css',
'css-em-label-size.ui',
'css-em-label-size.ref.ui',
'css-currentcolor-alpha.css',
'css-currentcolor-alpha.ui',
'css-currentcolor-alpha.ref.ui',
'css-image-aspect-ratio.css',
'css-image-aspect-ratio.ui',
'css-image-aspect-ratio.ref.ui',
'css-image-color-aspect-ratio.css',
'css-image-color-aspect-ratio.ui',
'css-image-color-aspect-ratio.ref.ui',
'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.css',
'css-match-import-import.css',
'css-match-import.ui',
'css-match-import.ref.ui',
'css-match-inherit.css',
'css-match-inherit.ref.ui',
'css-match-inherit.ui',
'css-match-inherit-different-state.css',
'css-match-inherit-different-state.ref.ui',
'css-match-inherit-different-state.ui',
'css-match-name.css',
'css-match-name.ref.ui',
'css-match-name.ui',
'css-match-siblings.css',
'css-match-siblings.ref.ui',
'css-match-siblings.ui',
'css-match-type.css',
'css-match-type.ref.ui',
'css-match-type.ui',
'css-multi-state.css',
'css-multi-state.ref.ui',
'css-multi-state.ui',
'fixed-widget-stacking.ref.ui',
'fixed-widget-stacking.ui',
'flipping-icons.ref.ui',
'flipping-icons.ui',
'font-sizes-names.css',
'font-sizes-names.ref.ui',
'font-sizes-names.ui',
'gtk-image-effect-inherit.css',
'gtk-image-effect-inherit.ref.ui',
'gtk-image-effect-inherit.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-wfh.ui',
'grid-wfh.ref.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',
'gtk-icontheme-sizing.css',
'gtk-icontheme-sizing.ref.ui',
'gtk-icontheme-sizing.ui',
'icon-effect-missing.css',
'icon-effect-missing.ref.ui',
'icon-effect-missing.ui',
'icon-shadow-no-transform.css',
'icon-shadow-no-transform.ref.ui',
'icon-shadow-no-transform.ui',
'icon-style-basics.css',
'icon-style-basics.ref.ui',
'icon-style-basics.ui',
'icon-vfuncs.css',
'icon-vfuncs.ref.ui',
'icon-vfuncs.ui',
'iconview-empty.css',
'iconview-empty.ui',
'iconview-empty.ref.ui',
'image-icon-name-use-fallback.ui',
'image-icon-name-use-fallback.ref.ui',
'image-icon-shadow-clipping.css',
'image-icon-shadow-clipping.ref.ui',
'image-icon-shadow-clipping.ui',
'image-load-from-file.css',
'image-load-from-file.ref.ui',
'image-load-from-file.ui',
'image-recording-surface.ref.ui',
'image-recording-surface.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',
'inherit-and-initial.ui',
'label-attribute-preference.css',
'label-attribute-preference.ref.ui',
'label-attribute-preference.ui',
'label-background.css',
'label-background.ref.ui',
'label-background.ui',
'label-box-shadow-clip.css',
'label-box-shadow-clip.ref.ui',
'label-box-shadow-clip.ui',
'label-clipping.css',
'label-clipping.ref.ui',
'label-clipping.ui',
'label-ellipsize-small.ref.ui',
'label-ellipsize-small.ui',
'label-ellipsize-with-big.ref.ui',
'label-ellipsize-with-big.ui',
'label-fonts.css',
'label-fonts.ref.ui',
'label-fonts.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-text-shadow-clipping.css',
'label-text-shadow-clipping.ref.ui',
'label-text-shadow-clipping.ui',
'label-text-shadow-changes-modify-clip.css',
'label-text-shadow-changes-modify-clip.ref.ui',
'label-text-shadow-changes-modify-clip.ui',
'label-width-chars-dont-shrink.ref.ui',
'label-width-chars-dont-shrink.ui',
'label-wrap-justify.ref.ui',
'label-wrap-justify.ui',
'letter-spacing.css',
'letter-spacing.ui',
'letter-spacing.ref.ui',
'linear-gradient.css',
'linear-gradient.ref.ui',
'linear-gradient.ui',
'linear-gradient-transition-to-other.css',
'linear-gradient-transition-to-other.ref.ui',
'linear-gradient-transition-to-other.ui',
'link-coloring.css',
'link-coloring.ref.ui',
'link-coloring.ui',
'marble.xpm',
'messagedialog-secondarytext.ui',
'messagedialog-secondarytext.ref.ui',
'misc-alignment.css',
'misc-alignment.ref.ui',
'misc-alignment.ui',
'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.ui',
'notebook-childproperties.ref.ui',
'notebook-tab-position.css',
'notebook-tab-position.ui',
'notebook-tab-position.ref.ui',
'nth-child.css',
'nth-child.ref.ui',
'nth-child.ui',
'opacity.css',
'opacity.ui',
'opacity.ref.ui',
'opacity-initial.css',
'opacity-initial.ref.ui',
'opacity-initial.ui',
'overlay-no-main-widget.ref.ui',
'overlay-no-main-widget.ui',
'paned-undersized.css',
'paned-undersized.ref.ui',
'paned-undersized.ui',
'pseudoclass-on-box.css',
'pseudoclass-on-box.ref.ui',
'pseudoclass-on-box.ui',
'pseudoclass-on-parent.css',
'pseudoclass-on-parent.ref.ui',
'pseudoclass-on-parent.ui',
'quit-mnemonic.css',
'quit-mnemonic.ref.ui',
'quit-mnemonic.ui',
'reset-to-defaults.css',
'revealer-extra-size.ref.ui',
'revealer-extra-size.ui',
'revealer-wrappable-contents.ref.ui',
'revealer-wrappable-contents.ui',
'rotated-layout.ref.ui',
'rotated-layout.ui',
'separator-size.css',
'separator-size.ref.ui',
'separator-size.ui',
'set-default-direction.ui',
'set-default-direction.ref.ui',
'shadow-clip-rounding.css',
'shadow-clip-rounding.ref.ui',
'shadow-clip-rounding.ui',
'shorthand-entry-border.css',
'shorthand-entry-border.ref.ui',
'shorthand-entry-border.ui',
'sibling-pseudoclasses.css',
'sibling-pseudoclasses.ref.ui',
'sibling-pseudoclasses.ui',
'simple.ref.ui',
'simple.ui',
'sizegroups-basics.css',
'sizegroups-basics.ui',
'sizegroups-basics.ref.ui',
'sizegroups-evolution-identity-page.ui',
'sizegroups-evolution-identity-page.ref.ui',
'sizegroups-get-preferred-null.ui',
'sizegroups-get-preferred-null.ref.ui',
'statusbar-remove-all.ref.ui',
'statusbar-remove-all.ui',
'style-context-save-inheritance.css',
'style-context-save-inheritance.ref.ui',
'style-context-save-inheritance.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',
'symbolic-icon-translucent-color.ref.ui',
'symbolic-icon-translucent-color.ui',
'textview-border-windows.css',
'textview-border-windows.ref.ui',
'textview-border-windows.ui',
'textview-margins.css',
'textview-margins.ref.ui',
'textview-margins.ui',
'textview-tags.ref.ui',
'textview-tags.ui',
'toplevel-vs-popup.ref.ui',
'toplevel-vs-popup.ui',
'treeview-crash-too-wide.ref.ui',
'treeview-crash-too-wide.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',
'window-height-for-width.ui',
'window-show-contents-on-map.ref.ui',
'window-show-contents-on-map.ui',
]
# Depending on the environment these fail, feel free to fix them
somehow_broken = [
'label-sizing.ui',
'flipping-icons.ui',
'window-height-for-width.ui',
'cellrenderer-pixbuf-stock-rtl.ui',
'label-wrap-justify.ui',
'symbolic-icon-translucent-color.ui',
]
foreach testname : test_data
if testname.endswith('.ui') and not testname.endswith('.ref.ui')
# reftests fail when multiple windows open at the same time stealing the focus,
# so set is_parallel to false
test('reftest ' + testname, gtk_reftest,
args: [ '--tap',
'-k',
'--verbose',
'-o', join_paths(meson.current_build_dir(), 'output'),
join_paths(meson.current_source_dir(), testname),
],
env: [ 'GTK_IM_MODULE=gtk-im-context-simple',
'GSETTINGS_BACKEND=memory',
'GSETTINGS_SCHEMA_DIR=@0@'.format(gtk_schema_build_dir),
'GTK_TEST_MESON=1',
'GTK_CSD=0',
'G_ENABLE_DIAGNOSTIC=0',
'G_TEST_SRCDIR=@0@'.format(meson.current_source_dir()),
'G_TEST_BUILDDIR=@0@'.format(meson.current_build_dir()),
'REFTEST_MODULE_DIR=@0@'.format(meson.current_build_dir()),
],
suite: 'reftest',
should_fail: somehow_broken.contains(testname),
is_parallel: false)
endif
endforeach
reftests_installed_tests = [
'reftests-dark.test',
'reftests-hc.test',
'reftests-hci.test',
'reftests.test',
]
if get_option('installed_tests')
test_cdata = configuration_data()
test_cdata.set('libexecdir', gtk_libexecdir)
foreach t: reftests_installed_tests
configure_file(input: '@0@.in'.format(t),
output: t,
configuration: test_cdata,
install_dir: installed_test_datadir)
endforeach
install_data(test_data, install_dir: testexecdir)
endif

View File

@ -17,6 +17,7 @@ EXTRA_DIST += \
$(test_simplify) \ $(test_simplify) \
test-simplify.in \ test-simplify.in \
test-settings.in \ test-settings.in \
tools.test.in \
meson.build \ meson.build \
$(NULL) $(NULL)

View File

@ -1,11 +1,21 @@
testexecdir = join_paths(installed_test_bindir)
testdatadir = join_paths(installed_test_datadir)
bash = find_program('bash', required : false) bash = find_program('bash', required : false)
if bash.found() if bash.found()
test_env = environment() test_env = environment()
foreach t : ['test-simplify', 'test-settings'] foreach t : ['test-simplify', 'test-settings']
configure_file(output: t, if get_option('installed_tests')
input: '@0@.in'.format(t), configure_file(output: t,
copy: true) input: '@0@.in'.format(t),
copy: true,
install_dir: testexecdir)
else
configure_file(output: t,
input: '@0@.in'.format(t),
copy: true)
endif
test(t, bash, test(t, bash,
args: t, args: t,
workdir: meson.current_build_dir(), workdir: meson.current_build_dir(),
@ -21,3 +31,17 @@ if bash.found()
suite: 'tools') suite: 'tools')
endforeach endforeach
endif endif
if get_option('installed_tests')
foreach t : ['test-simplify', 'test-settings']
test_conf = configuration_data()
test_conf.set('testexecdir', testexecdir)
test_conf.set('test', t)
configure_file(output: '@0@.test'.format(t),
input: 'tools.test.in',
configuration: test_conf,
install_dir: testdatadir)
endforeach
install_subdir('simplify', install_dir: testexecdir)
endif

View File

@ -0,0 +1,4 @@
[Test]
Type=session
Output=TAP
Exec=env G_ENABLE_DIAGNOSTIC=0 TEST_DATA_DIR="@testexecdir@/simplify" @testexecdir@/@test@