Revert "build: Drop the install-tests option"
authorJeremy Bicha <jeremy.bicha@canonical.com>
Thu, 12 Jan 2023 13:47:54 +0000 (08:47 -0500)
committerSimon McVittie <smcv@debian.org>
Mon, 7 Aug 2023 08:35:32 +0000 (09:35 +0100)
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

12 files changed:
meson.build
meson_options.txt
testsuite/a11y/meson.build
testsuite/css/change/meson.build
testsuite/css/meson.build
testsuite/css/nodes/meson.build
testsuite/css/parser/meson.build
testsuite/css/style/meson.build
testsuite/gdk/meson.build
testsuite/gsk/meson.build
testsuite/gtk/meson.build
testsuite/tools/meson.build

index 948dc01041d91a9bd62db99464c1a45b036cb9f0..da59df53918d1ae43e5bd1a6aa583a1b47aa9557 100644 (file)
@@ -902,6 +902,7 @@ summary('Documentation', get_option('gtk_doc'), 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('demos'), section: 'Build')
 summary('Examples', get_option('build-examples'), section: 'Build')
 
index 9f608e9e35fcadd3f2cfddd626477cb68c72a9d4..5e16043420cf6576ca684efa77e6bc27d923caa3 100644 (file)
@@ -133,3 +133,8 @@ option('build-tests',
        type: 'boolean',
        value: true,
        description : 'Build tests')
+
+option('install-tests',
+       type: 'boolean',
+       value: false,
+       description : 'Install tests')
index c43465efb26b5f33b3308c7888c61367bdebcc40..4547b21ba269d734bb1449fad81ce7316bbfab49 100644 (file)
@@ -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
@@ -61,11 +64,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')
index a75b530731ddb758312979e00ae93583c9726c0c..9409f483c1799f45bb49ee179752cd2a1ca5b63f 100644 (file)
@@ -7,10 +7,17 @@ changetest_env.set('GIO_USE_VFS', 'local')
 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,
@@ -19,3 +26,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
index 24084d6b05e26d8bde4996a5b6470baab08e0408..20c031410dc645cc8f3b765cad8dccdecb9ff040 100644 (file)
@@ -13,10 +13,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,
@@ -26,11 +30,12 @@ test('api', test_api,
   suite: 'css',
 )
 
-test_data = executable('data',
-  sources: ['data.c'],
+test_data = executable('data', 'data.c',
   c_args: common_cflags,
   include_directories: [confinc, ],
   dependencies: libgtk_static_dep,
+  install: get_option('install-tests'),
+  install_dir: testexecdir,
 )
 
 test('data', test_data,
@@ -40,10 +45,11 @@ test('data', test_data,
   suite: 'css',
 )
 
-transition = executable('transition',
-  sources: ['transition.c'],
+transition = executable('transition', 'transition.c',
   c_args: common_cflags,
   dependencies: libgtk_static_dep,
+  install: get_option('install-tests'),
+  install_dir: testexecdir,
 )
 
 test('transition', transition,
@@ -53,6 +59,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
index 576b4d8456a947ef98668c7f4d4eb7e82c4b7aef..eb619cf29ce0c9c6775a61cc5d1ac2a6e4afcf53 100644 (file)
@@ -7,15 +7,81 @@ nodetest_env.set('GIO_USE_VFS', 'local')
 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
index 4c13342c54bc4d70a3df677b46f88872c95a9738..2b5547da5782552c05e23dca48a0edeaf4f19479 100644 (file)
@@ -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',
@@ -536,3 +539,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
index a6c5e2edf4132b7c51c8d3a51bc5dc19ee54e33a..6b2d25290febe9433b44d2bcc8f9f7f5d7a564e4 100644 (file)
@@ -7,21 +7,73 @@ styletest_env.set('GIO_USE_VFS', 'local')
 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
index ebaa66fcc935cc3c360786b3890e4e4ea5407b01..98b57cb533285a7b34bbc12bc6b5cd1f51a81fa6 100644 (file)
@@ -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' },
@@ -31,7 +34,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', [])
@@ -58,7 +62,8 @@ foreach t : internal_tests
   test_exe = executable(t, '@0@.c'.format(t),
     c_args: common_cflags,
     dependencies: libgtk_static_dep,
-    install: false,
+    install: get_option('install-tests'),
+    install_dir: testexecdir,
   )
 
   test(t, test_exe,
@@ -72,3 +77,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
index 3fe529521080f72311aba914af1184f39355dfb5..2e1208e89305004a2fc8c389a0774ee5372a3404 100644 (file)
@@ -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 = [
@@ -280,9 +290,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,
@@ -311,11 +323,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,
     link_args : test_extra_ldflags,
+    dependencies : libgtk_static_dep,
+    install: get_option('install-tests'),
+    install_dir: testexecdir,
   )
 
   test(test_name, test_exe,
index a5811561e703e4eb7ffbfaef7b8e92e150dab972..50cab1e8bc8a4f2578a95e59eb69b4d79adbd564 100644 (file)
@@ -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'
@@ -169,6 +172,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')
@@ -197,6 +202,8 @@ foreach t : internal_tests
     c_args: test_cargs + test_extra_cargs,
     link_args: test_extra_ldflags,
     dependencies: libgtk_static_dep,
+    install: get_option('install-tests'),
+    install_dir: testexecdir,
   )
 
   if test_extra_suites.contains('slow')
@@ -215,8 +222,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' ],
@@ -224,6 +233,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
 
 
@@ -249,10 +268,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
@@ -275,6 +297,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
index 986c2d6dcc94b35b4d39bf33db1a23dac9b8528b..582bce6fb808a69f39fb76c9ad6f2523ac0c26b5 100644 (file)
@@ -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', '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