Gimp/app/tests/meson.build
Jehan c34fe3e94f Issue #15763: disable 2 unit testing files with no replacement.
Looking in these tests, most are hard to test with just the API. These
will need to be properly replaced once we'll make use of a UI testing
framework allowing such tests.
2026-02-03 10:51:00 +01:00

114 lines
2.6 KiB
Meson

apptests_links = [
libappconfig,
libappactions,
libappdialogs,
libappdisplay,
libappgui,
libappmenus,
libapppropgui,
libapptools,
libappwidgets,
libgimpbase,
libgimpcolor,
libgimpconfig,
libgimpmath,
libgimpmodule,
libgimpthumb,
libgimpwidgets,
]
libapptestutils_sources = [
'gimp-app-test-utils.c',
'gimp-test-session-utils.c',
]
libapptestutils = static_library('apptestutils',
libapptestutils_sources,
dependencies: libapp_dep,
link_with: apptests_links,
)
apptests_links += libapptestutils
# TODO: we need to implement proper GUI unit testing, actually based on
# the real GIMP and simulating pointer clicks or keyboard inputs the
# proper way.
app_tests = [
'core',
'gimpidtable',
#'session-2-8-compatibility-multi-window',
#'session-2-8-compatibility-single-window',
#'single-window-mode',
#'tools',
#'ui',
'xcf',
]
# Prevent parallel builds for the tests
# The tests must not be run in parallel or in a different order as specified
prio = 1000
foreach test_name : app_tests
test_exe = executable(test_name,
'test-@0@.c'.format(test_name),
'tests.c',
dependencies: [ libapp_dep, appstream ],
link_with: apptests_links,
)
test(test_name,
test_exe,
env: [
'GIMP_TESTING_ABS_TOP_SRCDIR=' + meson.project_source_root(),
'GIMP_TESTING_ABS_TOP_BUILDDIR='+ meson.project_build_root(),
'GIMP_TESTING_PLUGINDIRS=' + meson.project_build_root()/'plug-ins'/'common',
'UI_TEST=yes',
],
suite: 'app',
timeout: 60,
is_parallel : false,
priority: prio,
)
prio = prio - 10
endforeach
## Newer Tests using GIMP directly ##
if not meson.can_run_host_binaries()
warning('XCF loading unit testing disabled in cross-building or similar environments.')
subdir_done()
endif
tests = [
{
'name': 'save-and-export',
}
]
test_env=gimp_run_env
test_env.set('GIMP_TESTING_ABS_TOP_SRCDIR', meson.project_source_root())
test_env.set('GIMP_TESTING_ABS_TOP_BUILDDIR', meson.project_build_root())
run_python_test = find_program(meson.project_source_root() / 'libgimp/tests/libgimp-run-python-test.py')
foreach testinfo : tests
test_name = testinfo['name']
basename = 'test-' + testinfo['name']
py_test = meson.current_source_dir() / basename + '.py'
if testinfo.has_key('input')
test(test_name, run_python_test,
args: [ gimp_exe.full_path(), py_test, testinfo['input']],
env: test_env,
suite: ['app'],
timeout: 90)
else
test(test_name, run_python_test,
args: [ gimp_exe.full_path(), py_test ],
env: test_env,
suite: ['app'],
timeout: 90)
endif
endforeach