From: Jeremy Bicha Date: Thu, 12 Jan 2023 13:47:54 +0000 (-0500) Subject: Revert "build: Drop the install-tests option" X-Git-Tag: archive/raspbian/4.12.3+ds-1+rpi1~1^2^2~11 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=50344dfbc0595d821a738344d9cd0c0529f35b82;p=gtk4.git Revert "build: Drop the install-tests option" Debian and Ubuntu uses these installed tests as part of their autopkgtest system This reverts commit 3121f88265ac61733e257f5335473d6f139f158c. Gbp-Pq: Name Revert-build-Drop-the-install-tests-option.patch --- diff --git a/meson.build b/meson.build index 66545a5b08..eca29d107b 100644 --- a/meson.build +++ b/meson.build @@ -913,6 +913,7 @@ summary('Documentation', get_option('documentation'), section: 'Build') summary('Man pages', get_option('man-pages'), section: 'Build') summary('Testsuite', get_option('build-testsuite'), section: 'Build') summary('Tests', get_option('build-tests'), section: 'Build') +summary('Install tests', get_option('install-tests'), section: 'Build') summary('Demos', get_option('build-demos'), section: 'Build') summary('Examples', get_option('build-examples'), section: 'Build') diff --git a/meson_options.txt b/meson_options.txt index 4b794e7814..a3e0f5ed81 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -158,3 +158,8 @@ option('build-tests', type: 'boolean', value: true, description : 'Build tests') + +option('install-tests', + type: 'boolean', + value: false, + description : 'Install tests') diff --git a/testsuite/a11y/meson.build b/testsuite/a11y/meson.build index 2686d6c31f..e70522d4ad 100644 --- a/testsuite/a11y/meson.build +++ b/testsuite/a11y/meson.build @@ -1,3 +1,6 @@ +testexecdir = join_paths(installed_test_bindir, 'gtk') +testdatadir = join_paths(installed_test_datadir, 'gtk') + # Available keys for each test: # # - 'name': the test name; used for the test and to determine the base @@ -67,11 +70,12 @@ foreach t : tests test_extra_suites = t.get('suites', []) test_timeout = 60 - test_exe = executable(test_name, - sources: test_srcs, + test_exe = executable(test_name, test_srcs, c_args: test_cargs + test_extra_cargs, link_args: test_extra_ldflags, dependencies: libgtk_dep, + install: get_option('install-tests'), + install_dir: testexecdir, ) if test_extra_suites.contains('slow') diff --git a/testsuite/css/change/meson.build b/testsuite/css/change/meson.build index f78d27e372..e0ef9d4bb8 100644 --- a/testsuite/css/change/meson.build +++ b/testsuite/css/change/meson.build @@ -6,10 +6,17 @@ changetest_env.set('G_TEST_BUILDDIR', meson.current_build_dir()) changetest_env.set('GSETTINGS_BACKEND', 'memory') changetest_env.set('G_ENABLE_DIAGNOSTIC', '0') -test_change = executable('test-css-change', - sources: ['test-css-change.c', '../../testutils.c'], +testexecdir = join_paths(installed_test_bindir, 'css', 'change') +testdatadir = join_paths(installed_test_datadir, 'css') + +test_change = executable( + 'test-css-change', + 'test-css-change.c', + '../../testutils.c', c_args: common_cflags, dependencies: libgtk_dep, + install: get_option('install-tests'), + install_dir: testexecdir, ) test('change', test_change, @@ -18,3 +25,22 @@ test('change', test_change, env: changetest_env, suite: 'css', ) + +test_data = [ + 'test1.css', 'test1.ui', 'test1.nodes', + 'test2.css', 'test2.ui', 'test2.nodes', + 'test3.css', 'test3.ui', 'test3.nodes', + 'test4.css', 'test4.ui', 'test4.nodes', +] + +if get_option('install-tests') + conf = configuration_data() + conf.set('libexecdir', gtk_libexecdir) + configure_file(input: 'change.test.in', + output: 'change.test', + configuration: conf, + install_dir: testdatadir) + + install_data(test_data, install_dir: testexecdir) + +endif diff --git a/testsuite/css/meson.build b/testsuite/css/meson.build index 746b042203..c3ed7172ac 100644 --- a/testsuite/css/meson.build +++ b/testsuite/css/meson.build @@ -12,10 +12,14 @@ subdir('nodes') subdir('style') subdir('change') -test_api = executable('api', - sources: ['api.c'], +testexecdir = join_paths(installed_test_bindir, 'css') +testdatadir = join_paths(installed_test_datadir, 'css') + +test_api = executable('api', 'api.c', c_args: common_cflags, dependencies: libgtk_dep, + install: get_option('install-tests'), + install_dir: testexecdir, ) test('api', test_api, @@ -25,11 +29,12 @@ test('api', test_api, suite: 'css', ) -test_data = executable('data', - sources: ['data.c'], +test_data = executable('data', 'data.c', c_args: common_cflags + ['-DGTK_COMPILATION'], include_directories: [confinc, ], dependencies: libgtk_static_dep, + install: get_option('install-tests'), + install_dir: testexecdir, ) test('data', test_data, @@ -39,10 +44,11 @@ test('data', test_data, suite: 'css', ) -transition = executable('transition', - sources: ['transition.c'], +transition = executable('transition', 'transition.c', c_args: common_cflags + ['-DGTK_COMPILATION'], dependencies: libgtk_static_dep, + install: get_option('install-tests'), + install_dir: testexecdir, ) test('transition', transition, @@ -52,6 +58,24 @@ test('transition', transition, suite: 'css' ) +if get_option('install-tests') + conf = configuration_data() + conf.set('libexecdir', gtk_libexecdir) + configure_file(input: 'api.test.in', + output: 'api.test', + configuration: conf, + install_dir: testdatadir, + ) + + conf = configuration_data() + conf.set('libexecdir', gtk_libexecdir) + configure_file(input: 'data.test.in', + output: 'data.test', + configuration: conf, + install_dir: testdatadir, + ) +endif + if false and get_option ('profiler') adwaita_env = csstest_env diff --git a/testsuite/css/nodes/meson.build b/testsuite/css/nodes/meson.build index f682cdbb01..a7cb3e2010 100644 --- a/testsuite/css/nodes/meson.build +++ b/testsuite/css/nodes/meson.build @@ -6,15 +6,81 @@ nodetest_env.set('G_TEST_BUILDDIR', meson.current_build_dir()) nodetest_env.set('GSETTINGS_BACKEND', 'memory') nodetest_env.set('G_ENABLE_DIAGNOSTIC', '0') -test_nodes = executable('test-css-nodes', - sources: ['test-css-nodes.c', '../../testutils.c'], - c_args: common_cflags, - dependencies: libgtk_dep, -) +testexecdir = join_paths(installed_test_bindir, 'css', 'nodes') +testdatadir = join_paths(installed_test_datadir, 'css') +test_nodes = executable('test-css-nodes', 'test-css-nodes.c', '../../testutils.c', + c_args: common_cflags, + install: get_option('install-tests'), + install_dir: testexecdir, + dependencies: libgtk_dep) test('nodes', test_nodes, args: [ '--tap', '-k' ], protocol: 'tap', env: nodetest_env, suite: 'css', ) + +test_data = [ + 'box.ltr.nodes', + 'box.ltr.ui', + 'box.rtl.nodes', + 'box.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('install-tests') + conf = configuration_data() + conf.set('libexecdir', gtk_libexecdir) + configure_file(input: 'nodes.test.in', + output: 'nodes.test', + configuration: conf, + install_dir: testdatadir) + + install_data(test_data, install_dir: testexecdir) +endif diff --git a/testsuite/css/parser/meson.build b/testsuite/css/parser/meson.build index b05efb7fd2..bfb9936017 100644 --- a/testsuite/css/parser/meson.build +++ b/testsuite/css/parser/meson.build @@ -1,8 +1,11 @@ -test_parser = executable('test-css-parser', - sources: ['test-css-parser.c', '../../testutils.c'], - c_args: common_cflags, - dependencies: libgtk_dep, -) +testexecdir = join_paths(installed_test_bindir, 'css', 'parser') +testdatadir = join_paths(installed_test_datadir, 'css') + +test_parser = executable('test-css-parser', 'test-css-parser.c', '../../testutils.c', + c_args: common_cflags, + install: get_option('install-tests'), + install_dir: testexecdir, + dependencies: libgtk_dep) test_data = [ 'animation-crash-3.12.css', @@ -623,3 +626,15 @@ foreach testname : test_data suite: 'css') endif endforeach + +if get_option('install-tests') + conf = configuration_data() + conf.set('libexecdir', gtk_libexecdir) + configure_file(input: 'parser.test.in', + output: 'parser.test', + configuration: conf, + install_dir: testdatadir) + + install_data(test_data, install_dir: testexecdir) + +endif diff --git a/testsuite/css/style/meson.build b/testsuite/css/style/meson.build index 7fc4036bfa..52c962ce1a 100644 --- a/testsuite/css/style/meson.build +++ b/testsuite/css/style/meson.build @@ -6,21 +6,73 @@ styletest_env.set('G_TEST_BUILDDIR', meson.current_build_dir()) styletest_env.set('GSETTINGS_BACKEND', 'memory') styletest_env.set('G_ENABLE_DIAGNOSTIC', '0') +testexecdir = join_paths(installed_test_bindir, 'css', 'style') +testdatadir = join_paths(installed_test_datadir, 'css') + cssresources = gnome.compile_resources( 'cssresources', 'test-css-style.gresource.xml', source_dir: meson.current_source_dir(), ) -test_style = executable('test-css-style', - sources: ['test-css-style.c', '../../testutils.c', cssresources], +test_style = executable( + 'test-css-style', + 'test-css-style.c', + '../../testutils.c', + cssresources, c_args: common_cflags, dependencies: libgtk_dep, + install: get_option('install-tests'), + install_dir: testexecdir, ) - test('style', test_style, args: [ '--tap', '-k' ], protocol: 'tap', env: styletest_env, suite: 'css', ) + +test_data = [ + 'adjacent-states.css', + 'adjacent-states.nodes', + 'adjacent-states.ui', + 'bloomfilter-not.css', + 'bloomfilter-not.nodes', + 'bloomfilter-not.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', + 'gtk.css', + 'inherit.css', + 'inherit.nodes', + 'inherit.ui', + 'label.css', + 'label.nodes', + 'label.ui', + 'misc.css', + 'misc.nodes', + 'misc.ui', + 'nth-child.css', + 'nth-child.nodes', + 'nth-child.ui', +] + +if get_option('install-tests') + conf = configuration_data() + conf.set('libexecdir', gtk_libexecdir) + configure_file(input: 'style.test.in', + output: 'style.test', + configuration: conf, + install_dir: testdatadir) + + install_data(test_data, install_dir: testexecdir) +endif diff --git a/testsuite/gdk/meson.build b/testsuite/gdk/meson.build index 2cc27d5eb7..92dc6abe7f 100644 --- a/testsuite/gdk/meson.build +++ b/testsuite/gdk/meson.build @@ -1,10 +1,13 @@ +testexecdir = join_paths(installed_test_bindir, 'gdk') +testdatadir = join_paths(installed_test_datadir, 'gdk') + clipboard_client = executable('clipboard-client', - sources: ['clipboard-client.c'], - include_directories: [confinc], - c_args: common_cflags, - dependencies: [ libgtk_dep ], - install: false, -) + sources: ['clipboard-client.c'], + include_directories: [confinc], + c_args: common_cflags, + dependencies: [ libgtk_dep ], + install: get_option('install-tests'), + install_dir: testexecdir) tests = [ { 'name': 'array' }, @@ -33,7 +36,8 @@ foreach t : tests sources: '@0@.c'.format(test_name), c_args: common_cflags, dependencies: libgtk_dep, - install: false, + install: get_option('install-tests'), + install_dir: testexecdir, ) suites = ['gdk'] + t.get('suites', []) @@ -61,7 +65,8 @@ foreach t : internal_tests test_exe = executable(t, '@0@.c'.format(t), c_args: common_cflags + ['-DGTK_COMPILATION'], dependencies: libgtk_static_dep, - install: false, + install: get_option('install-tests'), + install_dir: testexecdir, ) test(t, test_exe, @@ -75,3 +80,28 @@ foreach t : internal_tests suite: 'gdk', ) endforeach + + +if get_option('install-tests') + foreach t : tests + test_name = t.get('name') + suites = t.get('suites', []) + + if suites.contains('flaky') or suites.contains('failing') + continue + endif + + test_cdata = configuration_data() + test_cdata.set('testexecdir', testexecdir) + test_cdata.set('test', test_name) + configure_file(input: 'gdk.test.in', + output: '@0@.test'.format(test_name), + configuration: test_cdata, + install: true, + install_dir: testdatadir, + ) + endforeach + + install_subdir('clipboard-data', install_dir: testexecdir) + install_subdir('image-data', install_dir: testexecdir) +endif diff --git a/testsuite/gsk/meson.build b/testsuite/gsk/meson.build index cd1a32c331..35b07f2f0c 100644 --- a/testsuite/gsk/meson.build +++ b/testsuite/gsk/meson.build @@ -1,12 +1,22 @@ -compare_render = executable('compare-render', +testexecdir = join_paths(installed_test_bindir, 'gsk') +testdatadir = join_paths(installed_test_datadir, 'gsk') + +compare_render = executable( + 'compare-render', ['compare-render.c', '../reftests/reftest-compare.c'], dependencies: libgtk_dep, c_args: common_cflags, + install: get_option('install-tests'), + install_dir: testexecdir ) -node_parser = executable('node-parser', 'node-parser.c', +node_parser = executable( + 'node-parser', + ['node-parser.c'], dependencies: libgtk_dep, c_args: common_cflags, + install: get_option('install-tests'), + install_dir: testexecdir ) compare_render_tests = [ @@ -378,9 +388,11 @@ foreach t : tests test_extra_ldflags = t.get(3, []) test_exe = executable(test_name, test_srcs, - dependencies : libgtk_dep, c_args : test_cargs + test_extra_cargs + common_cflags, link_args : test_extra_ldflags, + dependencies : libgtk_dep, + install: get_option('install-tests'), + install_dir: testexecdir, ) test(test_name, test_exe, @@ -409,11 +421,12 @@ foreach t : internal_tests test_extra_cargs = t.get(2, []) test_extra_ldflags = t.get(3, []) - test_exe = executable(test_name, - sources: test_srcs, - dependencies : libgtk_static_dep, + test_exe = executable(test_name, test_srcs, c_args : test_cargs + test_extra_cargs + common_cflags + ['-DGTK_COMPILATION'], link_args : test_extra_ldflags, + dependencies : libgtk_static_dep, + install: get_option('install-tests'), + install_dir: testexecdir, ) test(test_name, test_exe, diff --git a/testsuite/gtk/meson.build b/testsuite/gtk/meson.build index 12b025f317..f7700bb3da 100644 --- a/testsuite/gtk/meson.build +++ b/testsuite/gtk/meson.build @@ -1,3 +1,6 @@ +testexecdir = join_paths(installed_test_bindir, 'gtk') +testdatadir = join_paths(installed_test_datadir, 'gtk') + gtk_tests_export_dynamic_ldflag = [] if cc.get_id() != 'msvc' @@ -167,6 +170,8 @@ foreach t : tests c_args: test_cargs + test_extra_cargs, link_args: test_extra_ldflags, dependencies: libgtk_dep, + install: get_option('install-tests'), + install_dir: testexecdir, ) if test_extra_suites.contains('slow') @@ -195,6 +200,8 @@ foreach t : internal_tests c_args: test_cargs + test_extra_cargs + ['-DGTK_COMPILATION'], link_args: test_extra_ldflags, dependencies: libgtk_static_dep, + install: get_option('install-tests'), + install_dir: testexecdir, ) if test_extra_suites.contains('slow') @@ -213,8 +220,10 @@ endforeach # FIXME: if objc autotestkeywords_CPPFLAGS += -DHAVE_OBJC=1 -x objective-c++ if add_languages('cpp', required: false, native: false) test_exe = executable('autotestkeywords', - sources: ['autotestkeywords.cc'], + sources: 'autotestkeywords.cc', dependencies: libgtk_dep, + install: get_option('install-tests'), + install_dir: testexecdir, ) test('c++ keywords', test_exe, args: [ '--tap', '-k' ], @@ -222,6 +231,16 @@ if add_languages('cpp', required: false, native: false) env: test_env, suite: 'gtk', ) + if get_option('install-tests') + conf = configuration_data() + conf.set('testexecdir', testexecdir) + conf.set('test', 'autotestkeywords') + configure_file(input: 'gtk.test.in', + output: 'autotestkeywords.test', + configuration: conf, + install_dir: testdatadir, + ) + endif endif @@ -247,10 +266,13 @@ focus_chain_tests = [ #[ 'widget-factory3', 'tab-backward' ], ] -focus_chain = executable('test-focus-chain', +focus_chain = executable( + 'test-focus-chain', sources: ['test-focus-chain.c', '../testutils.c'], dependencies: libgtk_dep, c_args: common_cflags, + install: get_option('install-tests'), + install_dir: testexecdir ) foreach test : focus_chain_tests @@ -273,6 +295,30 @@ test('potfiles', make_pot, workdir: meson.project_source_root(), suite: ['gtk', 'translations' ]) +if get_option('install-tests') + foreach t : tests + test_name = t.get('name') + suites = t.get('suites', []) + + if suites.contains('flaky') or suites.contains('failing') + continue + endif + + conf = configuration_data() + conf.set('testexecdir', testexecdir) + conf.set('test', test_name) + configure_file(input: 'gtk.test.in', + output: '@0@.test'.format(test_name), + configuration: conf, + install_dir: testdatadir, + ) + endforeach + + install_subdir('icons', install_dir: testexecdir) + install_subdir('icons2', install_dir: testexecdir) + install_subdir('ui', install_dir: testexecdir) +endif + if false and get_option ('profiler') performance_env = test_env diff --git a/testsuite/tools/meson.build b/testsuite/tools/meson.build index e19a8195d6..54ede78118 100644 --- a/testsuite/tools/meson.build +++ b/testsuite/tools/meson.build @@ -1,12 +1,23 @@ +testexecdir = join_paths(installed_test_bindir, 'tools') +testdatadir = join_paths(installed_test_datadir, 'tools') + bash = find_program('bash', required : false) if bash.found() test_env = environment() foreach t : ['simplify', 'simplify-3to4', 'validate', 'enumerate', 'settings'] - configure_file(output: t, - input: '@0@.in'.format(t), - copy: true, - ) + if get_option('install-tests') + configure_file(output: t, + 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, args: t, workdir: meson.current_build_dir(), @@ -23,3 +34,20 @@ if bash.found() ) endforeach endif + +if get_option('install-tests') + foreach t : ['simplify', '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-data', install_dir: testexecdir) + install_subdir('simplify-data-3to4', install_dir: testexecdir) + install_subdir('validate-data', install_dir: testexecdir) +endif