tests: Enable unit test on Windows

Allow run some unit tests on Windows.
* Remove hardcoded path separator in whitelist env for Meson to choose
  OS-specific separator automatically (i.e., ';' for windows and ':' for *nix)
* Add dependency explicitly for some test cases, otherwise plugins couldn't be
  loaded on uninstalled environment of Windows.
This commit is contained in:
Seungha Yang 2018-12-07 21:46:12 +09:00
parent 16af121a86
commit 7aebe60809
3 changed files with 62 additions and 62 deletions

View file

@ -240,12 +240,9 @@ gstnet_dep = dependency('gstreamer-net-1.0', version : gst_req,
fallback : ['gstreamer', 'gst_net_dep'])
gstcontroller_dep = dependency('gstreamer-controller-1.0', version : gst_req,
fallback : ['gstreamer', 'gst_controller_dep'])
if host_system != 'windows'
gstcheck_dep = dependency('gstreamer-check-1.0', version : gst_req,
required : get_option('tests'),
fallback : ['gstreamer', 'gst_check_dep'])
endif
gstcheck_dep = dependency('gstreamer-check-1.0', version : gst_req,
required : get_option('tests'),
fallback : ['gstreamer', 'gst_check_dep'])
gstpbutils_dep = dependency('gstreamer-pbutils-1.0', version : gst_req,
fallback : ['gst-plugins-base', 'pbutils_dep'])
gstallocators_dep = dependency('gstreamer-allocators-1.0', version : gst_req,

View file

@ -15,17 +15,13 @@ libparser_dep = declare_dependency(link_with : libparser,
# name, condition when to skip the test and extra dependencies
good_tests = [
[ 'elements/audioamplify' ],
[ 'elements/audiochebband' ],
[ 'elements/audiocheblimit' ],
[ 'elements/audiodynamic' ],
[ 'elements/audioecho' ],
[ 'elements/audiofirfilter' ],
[ 'elements/audioiirfilter' ],
[ 'elements/audioinvert' ],
[ 'elements/audiopanorama' ],
[ 'elements/audiowsincband' ],
[ 'elements/audiowsinclimit' ],
[ 'elements/audiochebband', false, [gstfft_dep] ],
[ 'elements/audiocheblimit', false, [gstfft_dep] ],
[ 'elements/audioecho', false, [gstfft_dep] ],
[ 'elements/audiofirfilter', false, [gstfft_dep] ],
[ 'elements/audioiirfilter', false, [gstfft_dep] ],
[ 'elements/audiowsincband', false, [gstfft_dep] ],
[ 'elements/audiowsinclimit', false, [gstfft_dep] ],
[ 'elements/alphacolor' ],
[ 'elements/alpha' ],
[ 'elements/aacparse', false, [libparser_dep] ],
@ -33,40 +29,23 @@ good_tests = [
[ 'elements/amrparse', false, [libparser_dep] ],
[ 'elements/flacparse', false, [libparser_dep] ],
[ 'elements/mpegaudioparse', false, [libparser_dep] ],
[ 'elements/wavpackparse' ],
[ 'elements/autodetect' ],
[ 'elements/avimux' ],
[ 'elements/avisubtitle' ],
[ 'elements/capssetter' ],
[ 'elements/deinterlace' ],
[ 'elements/dtmf' ],
[ 'pipelines/flacdec', not flac_dep.found() ],
[ 'elements/flvdemux' ],
[ 'elements/flvmux' ],
[ 'elements/qtmux' ],
[ 'elements/qtdemux' ],
[ 'elements/mulawdec' ],
[ 'elements/mulawenc' ],
[ 'elements/gdkpixbufsink', not gdkpixbuf_dep.found(), [gdkpixbuf_dep] ],
[ 'elements/gdkpixbufoverlay', not gdkpixbuf_dep.found() ],
[ 'elements/icydemux' ],
[ 'elements/id3demux' ],
[ 'elements/imagefreeze' ],
[ 'elements/deinterleave' ],
[ 'elements/interleave' ],
[ 'elements/jpegdec', not jpeglib.found() ],
[ 'elements/jpegenc', not jpeglib.found() ],
[ 'elements/level' ],
[ 'elements/matroskademux' ],
[ 'elements/matroskamux' ],
[ 'elements/matroskaparse' ],
[ 'elements/mpg123audiodec', not mpg123_dep.found(), [gstfft_dep]],
[ 'elements/multifile' ],
[ 'elements/splitmux' ],
[ 'elements/matroskademux', false, [gstriff_dep] ],
[ 'elements/matroskaparse', false, [gstriff_dep] ],
[ 'elements/rganalysis' ],
[ 'elements/rglimiter' ],
[ 'elements/rgvolume' ],
[ 'elements/rtp-payloading' ],
[ 'elements/rtph261' ],
[ 'elements/rtph263' ],
[ 'elements/rtpvp9' ],
@ -83,31 +62,12 @@ good_tests = [
[ 'elements/rtpred' ],
[ 'elements/rtpulpfec' ],
[ 'elements/rtpssrcdemux' ],
[ 'elements/souphttpsrc', not libsoup_dep.found(), [libsoup_dep] ],
[ 'elements/spectrum' ],
[ 'elements/shapewipe' ],
[ 'elements/id3v2mux', not taglib_dep.found() ],
[ 'elements/apev2mux', not taglib_dep.found() ],
[ 'elements/udpsink' ],
[ 'elements/udpsrc' ],
[ 'elements/videobox' ],
[ 'elements/aspectratiocrop' ],
[ 'elements/videocrop' ],
[ 'elements/videofilter' ],
[ 'elements/videomixer' ],
[ 'elements/vp8enc', not vpx_dep.found() or not have_vp8_encoder ],
[ 'elements/vp8dec', not vpx_dep.found() or not have_vp8_decoder ],
[ 'elements/vp9enc', not vpx_dep.found() or not have_vp9_encoder ],
[ 'pipelines/lame', not lame_dep.found() ],
[ 'pipelines/wavenc' ],
[ 'elements/wavpackdec', not wavpack_dep.found() ],
[ 'elements/wavpackenc', not wavpack_dep.found() ],
[ 'pipelines/wavpack', not wavpack_dep.found() ],
[ 'elements/wavparse' ],
[ 'elements/y4menc' ],
[ 'elements/wavparse', false, [gstriff_dep] ],
[ 'pipelines/effectv' ],
[ 'elements/equalizer' ],
[ 'generic/states' ],
[ 'pipelines/simple-launch-lines' ],
[ 'pipelines/tagschecking' ],
]
@ -115,6 +75,52 @@ good_tests = [
# FIXME: valgrind elements/rtp-payloading - needs fixing
# elements/videocrop should be disabled since it takes way too long in valgrind
# FIXME: unistd dependency or not tested yet on windows
if host_machine.system() != 'windows'
good_tests += [
[ 'elements/audioamplify', not cdata.has('HAVE_UNISTD_H') ],
[ 'elements/audiodynamic', not cdata.has('HAVE_UNISTD_H') ],
[ 'elements/audioinvert', not cdata.has('HAVE_UNISTD_H') ],
[ 'elements/audiopanorama', not cdata.has('HAVE_UNISTD_H') ],
[ 'elements/wavpackparse', not cdata.has('HAVE_UNISTD_H') ],
[ 'elements/avimux', not cdata.has('HAVE_UNISTD_H') ],
[ 'elements/avisubtitle', not cdata.has('HAVE_UNISTD_H') ],
[ 'elements/capssetter', not cdata.has('HAVE_UNISTD_H') ],
[ 'elements/qtmux', not cdata.has('HAVE_UNISTD_H') ],
[ 'elements/qtdemux', not cdata.has('HAVE_UNISTD_H') ],
[ 'pipelines/flacdec', not flac_dep.found() ],
[ 'elements/gdkpixbufsink', not gdkpixbuf_dep.found(), [gdkpixbuf_dep] ],
[ 'elements/gdkpixbufoverlay', not gdkpixbuf_dep.found() ],
[ 'elements/jpegdec', not jpeglib.found() ],
[ 'elements/jpegenc', not jpeglib.found() ],
[ 'elements/level', not cdata.has('HAVE_UNISTD_H') ],
[ 'elements/matroskamux', not cdata.has('HAVE_UNISTD_H') ],
[ 'elements/mpg123audiodec', not mpg123_dep.found(), [gstfft_dep]],
[ 'elements/multifile', not cdata.has('HAVE_UNISTD_H') ],
[ 'elements/splitmux', not cdata.has('HAVE_UNISTD_H') ],
[ 'elements/rtp-payloading', not cdata.has('HAVE_UNISTD_H') ],
[ 'elements/souphttpsrc', not libsoup_dep.found(), [libsoup_dep] ],
[ 'elements/spectrum', not cdata.has('HAVE_UNISTD_H') ],
[ 'elements/shapewipe', not cdata.has('HAVE_UNISTD_H') ],
[ 'elements/id3v2mux', not taglib_dep.found() ],
[ 'elements/apev2mux', not taglib_dep.found() ],
[ 'elements/udpsrc', not cdata.has('HAVE_UNISTD_H') ],
[ 'elements/videobox', not cdata.has('HAVE_UNISTD_H') ],
[ 'elements/videocrop', not cdata.has('HAVE_UNISTD_H') ],
[ 'elements/videofilter', not cdata.has('HAVE_UNISTD_H') ],
[ 'elements/videomixer', not cdata.has('HAVE_UNISTD_H') ],
[ 'elements/vp8enc', not vpx_dep.found() or not have_vp8_encoder ],
[ 'elements/vp8dec', not vpx_dep.found() or not have_vp8_decoder ],
[ 'elements/vp9enc', not vpx_dep.found() or not have_vp9_encoder ],
[ 'pipelines/lame', not lame_dep.found() ],
[ 'elements/wavpackdec', not wavpack_dep.found() ],
[ 'elements/wavpackenc', not wavpack_dep.found() ],
[ 'pipelines/wavpack', not wavpack_dep.found() ],
[ 'elements/y4menc', not cdata.has('HAVE_UNISTD_H') ],
[ 'generic/states', not cdata.has('HAVE_UNISTD_H')],
]
endif
foo='''
if HAVE_ORC
check_orc = orc/deinterlace orc/videomixer orc/videobox
@ -179,7 +185,7 @@ foreach t : good_tests
env.set('GST_STATE_IGNORE_ELEMENTS', state_ignore_elements)
env.set('CK_DEFAULT_TIMEOUT', '20')
env.set('GST_PLUGIN_LOADING_WHITELIST', 'gstreamer', 'gst-plugins-base',
'gst-plugins-good@' + meson.build_root(), separator: ':')
'gst-plugins-good@' + meson.build_root())
env.set('GST_PLUGIN_PATH_1_0', [meson.build_root()] + pluginsdirs)
env.set('GSETTINGS_BACKEND', 'memory')

View file

@ -1,8 +1,5 @@
# FIXME: make check work on windows
if host_system != 'windows'
if not get_option('tests').disabled() and gstcheck_dep.found()
subdir('check')
endif
if not get_option('tests').disabled() and gstcheck_dep.found()
subdir('check')
endif
subdir('icles')