mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-31 11:32:38 +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'])
|
||||
gst_video_dep = dependency('gstreamer-video-' + apiversion, version : gst_req,
|
||||
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)
|
||||
gio_dep = dependency('gio-2.0', version: glib_req)
|
||||
gmodule_dep = dependency('gmodule-2.0', version: glib_req)
|
||||
|
|
|
@ -15,5 +15,5 @@ subdir('launcher')
|
|||
subdir('tools')
|
||||
subdir('docs')
|
||||
subdir('pkgconfig')
|
||||
#subdir('tests')
|
||||
subdir('tests')
|
||||
#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