From 7aebe608099b8f88d3adc1ae837b713d8c7986a7 Mon Sep 17 00:00:00 2001 From: Seungha Yang Date: Fri, 7 Dec 2018 21:46:12 +0900 Subject: [PATCH] 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. --- meson.build | 9 ++-- tests/check/meson.build | 108 +++++++++++++++++++++------------------- tests/meson.build | 7 +-- 3 files changed, 62 insertions(+), 62 deletions(-) diff --git a/meson.build b/meson.build index f3f8800497..0da37dd74a 100644 --- a/meson.build +++ b/meson.build @@ -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, diff --git a/tests/check/meson.build b/tests/check/meson.build index c4e0c8db86..48fbab9ada 100644 --- a/tests/check/meson.build +++ b/tests/check/meson.build @@ -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') diff --git a/tests/meson.build b/tests/meson.build index 55d144fb15..d55175adb0 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -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')