mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-07 15:02:40 +00:00
validate:meson: Add tests
This commit is contained in:
parent
23203ca0bd
commit
9089df6d11
5 changed files with 87 additions and 1 deletions
|
@ -36,6 +36,8 @@ gst_pbutils_dep = dependency('gstreamer-pbutils-' + apiversion, version : gst_re
|
||||||
fallback : ['gst-plugins-base', 'pbutils_dep'])
|
fallback : ['gst-plugins-base', 'pbutils_dep'])
|
||||||
gst_video_dep = dependency('gstreamer-video-' + apiversion, version : gst_req,
|
gst_video_dep = dependency('gstreamer-video-' + apiversion, version : gst_req,
|
||||||
fallback : ['gst-plugins-base', 'video_dep'])
|
fallback : ['gst-plugins-base', 'video_dep'])
|
||||||
|
gstcheck_dep = dependency('gstreamer-check-1.0', version : gst_req,
|
||||||
|
fallback : ['gstreamer', 'gst_check_dep'])
|
||||||
glib_dep = dependency('glib-2.0', version: glib_req)
|
glib_dep = dependency('glib-2.0', version: glib_req)
|
||||||
gio_dep = dependency('gio-2.0', version: glib_req)
|
gio_dep = dependency('gio-2.0', version: glib_req)
|
||||||
gmodule_dep = dependency('gmodule-2.0', version: glib_req)
|
gmodule_dep = dependency('gmodule-2.0', version: glib_req)
|
||||||
|
|
|
@ -15,5 +15,5 @@ subdir('launcher')
|
||||||
subdir('tools')
|
subdir('tools')
|
||||||
subdir('docs')
|
subdir('docs')
|
||||||
subdir('pkgconfig')
|
subdir('pkgconfig')
|
||||||
#subdir('tests')
|
subdir('tests')
|
||||||
#subdir('po')
|
#subdir('po')
|
||||||
|
|
26
validate/tests/check/getpluginsdir
Normal file
26
validate/tests/check/getpluginsdir
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
import subprocess
|
||||||
|
|
||||||
|
builddir = os.environ['MESON_BUILD_ROOT']
|
||||||
|
|
||||||
|
res = ''
|
||||||
|
args = sys.argv[1:]
|
||||||
|
for i in range(0, len(args), 2):
|
||||||
|
project = args[i]
|
||||||
|
pkg_name = args[i + 1]
|
||||||
|
path = os.path.join(builddir, 'subprojects', project)
|
||||||
|
if os.path.exists(path):
|
||||||
|
res += ':' + path
|
||||||
|
else:
|
||||||
|
try:
|
||||||
|
res += ':' + subprocess.check_output(['pkg-config',
|
||||||
|
'--variable=pluginsdir',
|
||||||
|
pkg_name]).decode()
|
||||||
|
except subprocess.CalledProcessError:
|
||||||
|
exit(1)
|
||||||
|
|
||||||
|
print(res.strip(":"))
|
||||||
|
|
54
validate/tests/check/meson.build
Normal file
54
validate/tests/check/meson.build
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
# tests and condition when to skip the test
|
||||||
|
validate_tests = [
|
||||||
|
['validate/padmonitor'],
|
||||||
|
['validate/monitoring'],
|
||||||
|
['validate/reporting'],
|
||||||
|
['validate/overrides']
|
||||||
|
]
|
||||||
|
|
||||||
|
test_defines = [
|
||||||
|
'-UG_DISABLE_ASSERT',
|
||||||
|
'-UG_DISABLE_CAST_CHECKS',
|
||||||
|
'-DGST_CHECK_TEST_ENVIRONMENT_BEACON="GST_STATE_IGNORE_ELEMENTS"',
|
||||||
|
'-DTESTFILE="' + meson.current_source_dir() + '/meson.build"',
|
||||||
|
'-DGST_USE_UNSTABLE_API',
|
||||||
|
]
|
||||||
|
|
||||||
|
getpluginsdir = find_program('getpluginsdir')
|
||||||
|
runcmd = run_command(getpluginsdir, 'gstreamer', 'gstreamer-' + apiversion)
|
||||||
|
if runcmd.returncode() == 0
|
||||||
|
needed_plugins_dirs = runcmd.stdout().strip()
|
||||||
|
message('Using GStreamer plug-ins in ' + needed_plugins_dirs)
|
||||||
|
else
|
||||||
|
error('Could not determine GStreamer core plugins directory for unit tests.')
|
||||||
|
endif
|
||||||
|
|
||||||
|
test_env = [
|
||||||
|
'GST_PLUGIN_SYSTEM_PATH_1_0=',
|
||||||
|
'GST_PLUGIN_PATH_1_0=' + needed_plugins_dirs,
|
||||||
|
'GST_PLUGIN_SCANNER_1_0='+ meson.build_root() + '/libs/gst/helpers/gst-plugin-scanner',
|
||||||
|
'GST_STATE_IGNORE_ELEMENTS=',
|
||||||
|
'CK_DEFAULT_TIMEOUT=20',
|
||||||
|
]
|
||||||
|
|
||||||
|
foreach t : validate_tests
|
||||||
|
test_name = t.get(0)
|
||||||
|
if t.length() == 2
|
||||||
|
skip_test = t.get(1)
|
||||||
|
else
|
||||||
|
skip_test = false
|
||||||
|
endif
|
||||||
|
|
||||||
|
if not skip_test
|
||||||
|
exe = executable(test_name, '@0@.c'.format(test_name),
|
||||||
|
'validate/test-utils.c',
|
||||||
|
c_args : gst_c_args + test_defines,
|
||||||
|
include_directories : [inc_dirs],
|
||||||
|
dependencies : [validate_dep, gstcheck_dep],
|
||||||
|
)
|
||||||
|
test(test_name, exe,
|
||||||
|
env: test_env + ['GST_REGISTRY=@0@/@1@.registry'.format(meson.current_build_dir(), test_name)]
|
||||||
|
)
|
||||||
|
endif
|
||||||
|
endforeach
|
||||||
|
|
4
validate/tests/meson.build
Normal file
4
validate/tests/meson.build
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
# FIXME: make check work on windows
|
||||||
|
if host_machine.system() != 'windows'
|
||||||
|
subdir('check')
|
||||||
|
endif
|
Loading…
Reference in a new issue