forked from AuroraMiddleware/gtk
240 lines
7.4 KiB
Meson
240 lines
7.4 KiB
Meson
testexecdir = join_paths(installed_test_bindir, 'gtk')
|
|
testdatadir = join_paths(installed_test_datadir, 'gtk')
|
|
|
|
gtk_tests_export_dynamic_ldflag = []
|
|
|
|
if cc.get_id() != 'msvc'
|
|
gtk_tests_export_dynamic_ldflag = ['-Wl,--export-dynamic']
|
|
endif
|
|
|
|
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', [
|
|
'../../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'],
|
|
['flowbox'],
|
|
#['gestures'],
|
|
['grid'],
|
|
['grid-layout'],
|
|
['icontheme'],
|
|
['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'],
|
|
['shortcuts'],
|
|
['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'],
|
|
['displayclose'],
|
|
['revealer-size'],
|
|
['widgetorder'],
|
|
['widget-refcount'],
|
|
]
|
|
|
|
# Tests that are expected to fail
|
|
xfail = [
|
|
# one of the window resizing tests fails after
|
|
# the GdkToplevel refactoring, and needs a big
|
|
# gtkwindow.c configure request cleanup
|
|
'window',
|
|
]
|
|
|
|
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
|
|
|
|
foreach flag: common_cflags
|
|
if flag not in ['-Werror=missing-prototypes', '-Werror=missing-declarations', '-fvisibility=hidden']
|
|
test_cargs += flag
|
|
endif
|
|
endforeach
|
|
|
|
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)
|
|
|
|
expect_fail = xfail.contains(test_name)
|
|
|
|
test(test_name, test_exe,
|
|
args: [ '--tap', '-k' ],
|
|
protocol: 'tap',
|
|
env: [ 'GIO_USE_VOLUME_MONITOR=unix',
|
|
'GSETTINGS_BACKEND=memory',
|
|
'GDK_DEBUG=default-settings',
|
|
'GTK_CSD=1',
|
|
'G_ENABLE_DIAGNOSTIC=0',
|
|
'NO_AT_BRIDGE=1',
|
|
'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,
|
|
)
|
|
endforeach
|
|
|
|
# FIXME: if objc autotestkeywords_CPPFLAGS += -DHAVE_OBJC=1 -x objective-c++
|
|
if add_languages('cpp', required: false)
|
|
test_exe = executable('autotestkeywords',
|
|
'autotestkeywords.cc',
|
|
c_args : test_cargs + ['-Idummy-headers'],
|
|
dependencies : libgtk_dep,
|
|
install: get_option('install-tests'),
|
|
install_dir: testexecdir)
|
|
test('c++ keywords', test_exe,
|
|
args: [ '--tap', '-k' ],
|
|
#protocol: 'tap',
|
|
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),
|
|
],
|
|
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
|
|
|
|
|
|
focus_chain_tests = [
|
|
# test direction
|
|
[ 'basic', 'tab' ],
|
|
[ 'basic', 'tab-backward' ],
|
|
[ 'basic', 'left' ],
|
|
[ 'basic', 'right' ],
|
|
[ 'widget-factory', 'tab' ],
|
|
[ 'widget-factory', 'tab-backward' ],
|
|
[ 'widget-factory', 'up' ],
|
|
[ 'widget-factory', 'down' ],
|
|
[ 'widget-factory', 'left' ],
|
|
[ 'widget-factory', 'right' ],
|
|
[ 'widget-factory2', 'tab' ],
|
|
[ 'widget-factory2', 'tab-backward' ],
|
|
# in ci, we don't show a color picker, so the focus chain
|
|
# for page3 is missing an expected button in the color editor
|
|
#[ 'widget-factory3', 'tab' ],
|
|
#[ 'widget-factory3', 'tab-backward' ],
|
|
]
|
|
|
|
focus_chain = executable(
|
|
'test-focus-chain',
|
|
['test-focus-chain.c'],
|
|
dependencies: libgtk_dep,
|
|
install: get_option('install-tests'),
|
|
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',
|
|
'GSETTINGS_SCHEMA_DIR=@0@'.format(gtk_schema_build_dir),
|
|
'G_TEST_SRCDIR=@0@'.format(meson.current_source_dir()),
|
|
'G_TEST_BUILDDIR=@0@'.format(meson.current_build_dir())
|
|
],
|
|
suite: [ 'gtk', 'focus' ])
|
|
endforeach
|
|
|
|
|
|
if get_option('install-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)
|
|
endforeach
|
|
|
|
install_subdir('icons', install_dir: testexecdir)
|
|
install_subdir('ui', install_dir: testexecdir)
|
|
|
|
endif
|
|
|
|
if false and get_option ('profiler')
|
|
|
|
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' ])
|
|
|
|
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' ])
|
|
|
|
endif
|