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.
114 lines
2.6 KiB
Meson
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
|