summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmmanuele Bassi <ebassi@gnome.org>2020-02-13 17:01:24 +0000
committerEmmanuele Bassi <ebassi@gnome.org>2020-02-13 17:03:48 +0000
commitf49ef766a82423c6ce3e2697e211523e4391b807 (patch)
treeb7de3c1455df522c05772838d5288b4534642291
parent18cfa2c0e7ce18a70088c2636df515ce527a9ebb (diff)
downloadgtk+-f49ef766a82423c6ce3e2697e211523e4391b807.tar.gz
WIP: Reorganise the testsuitestestsuites-reorg
- Use a dictionary instead of opaque arrays of arrays - Use the environment() object
-rw-r--r--testsuite/gtk/meson.build322
1 files changed, 185 insertions, 137 deletions
diff --git a/testsuite/gtk/meson.build b/testsuite/gtk/meson.build
index 333f4347cb..bdf63a1fe5 100644
--- a/testsuite/gtk/meson.build
+++ b/testsuite/gtk/meson.build
@@ -7,111 +7,161 @@ if cc.get_id() != 'msvc'
gtk_tests_export_dynamic_ldflag = ['-Wl,--export-dynamic']
endif
+is_debug = get_option('buildtype').startswith('debug')
+
+# An array of dictionaries with the following keys:
+#
+# - name: the name of the test; also used to generate the
+# name of the source file with the test (MANDATORY)
+# - sources: an array of additional source files (OPTIONAL)
+# - cflags: an array of additonal compiler flags (OPTIONAL)
+# - ldflags: an array of additional linker flags (OPTIONAL)
+# - suites: an array of additional suite names (OPTIONAL)
+# - xfail: a boolean value indicating whether the test is
+# expected to fail (OPTIONAL)
+#
tests = [
- ['accel'],
- ['accessible'],
- ['action'],
- ['adjustment'],
- ['bitmask', ['../../gtk/gtkallocatedbitmask.c'], ['-DGTK_COMPILATION', '-UG_ENABLE_DEBUG']],
- ['builder', [], [], gtk_tests_export_dynamic_ldflag],
- ['builderparser'],
- ['cellarea'],
- ['check-icon-names'],
- ['constraint-solver', [
+ { 'name': 'accel' },
+ { 'name': 'accessible' },
+ { 'name': 'action' },
+ { 'name': 'adjustment' },
+ { 'name': 'bitmask',
+ 'sources': ['../../gtk/gtkallocatedbitmask.c'],
+ 'cflags': ['-DGTK_COMPILATION', '-UG_ENABLE_DEBUG'],
+ 'suites': ['internals'],
+ },
+ { 'name': 'builder',
+ 'ldflags': gtk_tests_export_dynamic_ldflag,
+ },
+ { 'name': 'builderparser' },
+ { 'name': 'cellarea' },
+ { 'name': 'check-icon-names' },
+ { 'name': 'constraint-solver',
+ 'sources': [
'../../gtk/gtkconstraintsolver.c',
'../../gtk/gtkconstraintexpression.c',
- ], ['-DGTK_COMPILATION', '-UG_ENABLE_DEBUG']
- ],
- ['cssprovider'],
- ['rbtree-crash', ['../../gtk/gtkrbtree.c'], ['-DGTK_COMPILATION', '-UG_ENABLE_DEBUG']],
- ['defaultvalue'],
- ['entry'],
- ['filterlistmodel'],
- ['flattenlistmodel'],
- ['floating'],
- ['focus'],
- ['gestures'],
- ['grid'],
- ['grid-layout'],
- ['icontheme'],
- ['keyhash', ['../../gtk/gtkkeyhash.c', gtkresources, '../../gtk/gtkprivate.c'], gtk_cargs],
- ['listbox'],
- ['main'],
- ['maplistmodel'],
- ['notify'],
- ['no-gtk-init'],
- ['object'],
- ['objects-finalize'],
- ['papersize'],
- ['popover'],
- ['propertylookuplistmodel', ['../../gtk/gtkpropertylookuplistmodel.c'], ['-DGTK_COMPILATION', '-UG_ENABLE_DEBUG']],
- ['rbtree', ['../../gtk/gtktreerbtree.c'], ['-DGTK_COMPILATION', '-UG_ENABLE_DEBUG']],
- ['recentmanager'],
- ['regression-tests'],
- ['scrolledwindow'],
- ['searchbar'],
- ['singleselection'],
- ['slicelistmodel'],
- ['sortlistmodel'],
- ['spinbutton'],
- ['templates'],
- ['textbuffer'],
- ['textiter'],
- ['theme-validate'],
- ['treelistmodel'],
- ['treemodel', ['treemodel.c', 'liststore.c', 'treestore.c', 'filtermodel.c',
- 'modelrefcount.c', 'sortmodel.c', 'gtktreemodelrefcount.c']],
- ['treepath'],
- ['treeview'],
- ['typename'],
- ['window'],
- ['displayclose'],
- ['revealer-size'],
- ['widgetorder'],
-]
-
-# Tests that are expected to fail
-xfail = [
+ ],
+ 'cflags': ['-DGTK_COMPILATION', '-UG_ENABLE_DEBUG'],
+ 'suites': ['internals'],
+ },
+ { 'name': 'cssprovider' },
+ { 'name': 'rbtree-crash',
+ 'sources': ['../../gtk/gtkrbtree.c'],
+ 'cflags': ['-DGTK_COMPILATION', '-UG_ENABLE_DEBUG'],
+ 'suites': ['internals'],
+ },
+ { 'name': 'defaultvalue' },
+ { 'name': 'entry' },
+ { 'name': 'filterlistmodel' },
+ { 'name': 'flattenlistmodel' },
+ { 'name': 'floating' },
+ { 'name': 'focus' },
+ { 'name': 'gestures' },
+ { 'name': 'grid' },
+ { 'name': 'grid-layout' },
+ { 'name': 'icontheme' },
+ { 'name': 'keyhash',
+ 'sources': [
+ '../../gtk/gtkkeyhash.c',
+ gtkresources,
+ '../../gtk/gtkprivate.c',
+ ],
+ 'cflags': gtk_cargs,
+ 'suites': ['internals'],
+ },
+ { 'name': 'listbox' },
+ { 'name': 'main' },
+ { 'name': 'maplistmodel' },
+ { 'name': 'notify' },
+ { 'name': 'no-gtk-init' },
+ { 'name': 'object' },
+ { 'name': 'objects-finalize' },
+ { 'name': 'papersize' },
+ { 'name': 'popover' },
+ { 'name': 'propertylookuplistmodel',
+ 'sources': ['../../gtk/gtkpropertylookuplistmodel.c'],
+ 'cflags': ['-DGTK_COMPILATION', '-UG_ENABLE_DEBUG'],
+ 'suites': ['internals'],
+ },
+ { 'name': 'rbtree',
+ 'sources': ['../../gtk/gtktreerbtree.c'],
+ 'cflags': ['-DGTK_COMPILATION', '-UG_ENABLE_DEBUG'],
+ 'suites': ['internals'],
+ },
+ { 'name': 'recentmanager' },
+ { 'name': 'regression-tests' },
+ { 'name': 'scrolledwindow' },
+ { 'name': 'searchbar' },
+ { 'name': 'singleselection' },
+ { 'name': 'slicelistmodel' },
+ { 'name': 'sortlistmodel' },
+ { 'name': 'spinbutton' },
+ { 'name': 'templates' },
+ { 'name': 'textbuffer' },
+ { 'name': 'textiter' },
+ { 'name': 'theme-validate' },
+ { 'name': 'treelistmodel' },
+ { 'name': 'treemodel',
+ 'sources': [
+ 'treemodel.c',
+ 'liststore.c',
+ 'treestore.c',
+ 'filtermodel.c',
+ 'modelrefcount.c',
+ 'sortmodel.c',
+ 'gtktreemodelrefcount.c',
+ ],
+ },
+ { 'name': 'treepath' },
+ { 'name': 'treeview' },
+ { 'name': 'typename' },
+ { 'name': 'window' },
+ { 'name': 'displayclose' },
+ { 'name': 'revealer-size' },
+ { 'name': 'widgetorder' },
]
-is_debug = get_option('buildtype').startswith('debug')
-
test_cargs = []
if os_unix
- # tests += [['defaultvalue']] # disabled in Makefile.am as well
test_cargs += ['-DHAVE_UNIX_PRINT_WIDGETS']
endif
+test_env = environment()
+test_env.set('GIO_USE_VOLUME_MONITOR', 'unix')
+test_env.set('GSETTINGS_BACKEND', 'memory')
+test_env.set('GDK_DEBUG', 'default-settings')
+test_env.set('GTK_CSD', '1')
+test_env.set('G_ENABLE_DIAGNOSTIC', '0')
+test_env.set('GSK_RENDERER', 'cairo')
+test_env.set('G_TEST_SRCDIR', meson.current_source_dir())
+test_env.set('G_TEST_BUILDDIR', meson.current_build_dir())
+test_env.set('GSETTINGS_SCHEMA_DIR', gtk_schema_build_dir)
+
foreach t : tests
- test_name = t.get(0)
- test_srcs = ['@0@.c'.format(test_name)] + t.get(1, [])
- test_extra_cargs = t.get(2, [])
- test_extra_ldflags = t.get(3, [])
-
- 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)
+ test_name = t['name']
+
+ test_srcs = ['@0@.c'.format(test_name)] + t.get('sources', [])
+ test_extra_cargs = t.get('cflags', [])
+ test_extra_ldflags = t.get('ldflags', [])
+ test_extra_suites = t.get('suites', [])
+ test_xfail = t.get('xfail', false)
- expect_fail = xfail.contains(test_name)
+ 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,
+ )
test(test_name, test_exe,
- args: [ '--tap', '-k' ],
- env: [ 'GIO_USE_VOLUME_MONITOR=unix',
- 'GSETTINGS_BACKEND=memory',
- 'GDK_DEBUG=default-settings',
- 'GTK_CSD=1',
- 'G_ENABLE_DIAGNOSTIC=0',
- 'GSK_RENDERER=cairo',
- 'G_TEST_SRCDIR=@0@'.format(meson.current_source_dir()),
- 'G_TEST_BUILDDIR=@0@'.format(meson.current_build_dir()),
- 'GSETTINGS_SCHEMA_DIR=@0@'.format(gtk_schema_build_dir),
- ],
- suite: 'gtk',
- should_fail: expect_fail,
+ args: [ '--tap', '-k' ],
+ protocol: 'tap',
+ env: test_env,
+ suite: ['gtk'] + test_extra_suites,
+ should_fail: test_xfail,
)
endforeach
@@ -125,15 +175,8 @@ if add_languages('cpp', required: false)
install_dir: testexecdir)
test('c++ keywords', test_exe,
args: [ '--tap', '-k' ],
- env: [ 'GIO_USE_VOLUME_MONITOR=unix',
- 'GSETTINGS_BACKEND=memory',
- 'GDK_DEBUG=default-settings',
- 'GTK_CSD=1',
- 'G_ENABLE_DIAGNOSTIC=0',
- 'G_TEST_SRCDIR=@0@'.format(meson.current_source_dir()),
- 'G_TEST_BUILDDIR=@0@'.format(meson.current_build_dir()),
- 'GSETTINGS_SCHEMA_DIR=@0@'.format(gtk_schema_build_dir),
- ],
+ protocol: 'tap',
+ env: test_env,
suite: 'gtk')
if get_option('install-tests')
conf = configuration_data()
@@ -156,63 +199,68 @@ focus_chain_tests = [
[ 'focusable-container', 'tab-backward' ],
]
-focus_chain = executable(
- 'test-focus-chain',
+focus_chain = executable('test-focus-chain',
['test-focus-chain.c'],
dependencies: libgtk_dep,
install: get_option('install-tests'),
- install_dir: testexecdir
+ install_dir: testexecdir,
)
foreach test : focus_chain_tests
- test(test[0] + ' ' + test[1], focus_chain,
- args: [ join_paths(meson.current_source_dir(), 'focus-chain', test[0] + '.ui'),
- join_paths(meson.current_source_dir(), 'focus-chain', test[0] + '.' + test[1]) ],
- env: [ 'GIO_USE_VOLUME_MONITOR=unix',
- 'GSETTINGS_BACKEND=memory',
- 'GDK_DEBUG=default-settings',
- 'GTK_CSD=1',
- 'G_ENABLE_DIAGNOSTIC=0',
- 'G_TEST_SRCDIR=@0@'.format(meson.current_source_dir()),
- 'G_TEST_BUILDDIR=@0@'.format(meson.current_build_dir())
- ],
- suite: [ 'gtk', 'focus' ])
+ test(test[0] + ' ' + test[1],
+ focus_chain,
+ args: [
+ meson.current_source_dir() / 'focus-chain' / test[0] + '.ui',
+ meson.current_source_dir() / 'focus-chain' / test[0] + '.' + test[1],
+ ],
+ env: test_env,
+ suite: [ 'gtk', 'focus' ],
+ )
endforeach
-
if get_option('install-tests')
- foreach t : tests
+ foreach t: tests
test_name = t.get(0)
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)
+ 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('ui', install_dir: testexecdir)
-
endif
if get_option ('profiler')
+ test('performance-layout',
+ test_performance,
+ args: [
+ '--mark',
+ 'size allocation',
+ meson.current_build_dir() / '../../demos/widget-factory/gtk4-widget-factory',
+ ],
+ env: [
+ 'GTK_THEME=Empty',
+ 'GSETTINGS_SCHEMA_DIR=@0@'.format(gtk_schema_build_dir),
+ ],
+ suite: [ 'gtk' ],
+ )
- test('performance-layout', test_performance,
- args: [ '--mark', 'size allocation', join_paths(meson.current_build_dir(), '../../demos/widget-factory/gtk4-widget-factory') ],
- env: [ 'GTK_THEME=Empty',
- 'GSETTINGS_SCHEMA_DIR=@0@'.format(gtk_schema_build_dir) ],
- suite: [ 'gtk' ])
-
-endif
-
-if get_option ('profiler')
-
- test('performance-snapshot', test_performance,
- args: [ '--mark', 'widget snapshot', join_paths(meson.current_build_dir(), '../../demos/widget-factory/gtk4-widget-factory') ],
- env: [ 'GTK_THEME=Empty',
- 'GSETTINGS_SCHEMA_DIR=@0@'.format(gtk_schema_build_dir) ],
- suite: [ 'gtk' ])
-
+ test('performance-snapshot',
+ test_performance,
+ args: [
+ '--mark', 'widget snapshot',
+ meson.current_build_dir() / '../../demos/widget-factory/gtk4-widget-factory',
+ ],
+ env: [
+ 'GTK_THEME=Empty',
+ 'GSETTINGS_SCHEMA_DIR=@0@'.format(gtk_schema_build_dir),
+ ],
+ suite: [ 'gtk' ],
+ )
endif