meson: Add testsuite
authorThibault Saunier <thibault.saunier@osg.samsung.com>
Thu, 3 Nov 2016 11:36:23 +0000 (08:36 -0300)
committerThibault Saunier <thibault.saunier@osg.samsung.com>
Fri, 4 Nov 2016 14:40:10 +0000 (11:40 -0300)
meson.build
testsuite/meson.build [new file with mode: 0644]
testsuite/runtests.py

index 93b0d4c..cac72e1 100644 (file)
@@ -54,6 +54,7 @@ configinc = include_directories('.')
 
 subdir('gi')
 subdir('plugin')
+subdir('testsuite')
 
 python3 = find_program('python3')
 run_command(python3, '-c', 'import shutil; shutil.copy("hooks/pre-commit.hook", ".git/hooks/pre-commit")')
diff --git a/testsuite/meson.build b/testsuite/meson.build
new file mode 100644 (file)
index 0000000..84c0f3e
--- /dev/null
@@ -0,0 +1,30 @@
+runtests = find_program('runtests.py')
+
+tests = [
+    ['Test gst', 'test_gst.py'],
+    ['Test fractions', 'test_fraction.py']
+]
+
+pluginsdirs = []
+if not meson.is_subproject()
+  pkgconfig = find_program('pkg-config')
+  runcmd = run_command(pkgconfig, '--variable=pluginsdir',
+      'gstreamer-' + api_version)
+  if runcmd.returncode() == 0
+      pluginsdirs = runcmd.stdout().split()
+  else
+    error('Could not determine GStreamer core plugins directory for unit tests.')
+  endif
+endif
+
+foreach i: tests
+    test_name = i.get(0)
+    env = environment()
+    env.set('GST_PLUGIN_PATH_1_0', meson.build_root())
+    env.set('GST_PLUGIN_SYSTEM_PATH_1_0', '')
+    foreach plugindir: pluginsdirs
+      env.append('GST_PLUGIN_PATH_1_0', plugindir)
+    endforeach
+    env.set('GST_REGISTRY', '@0@/@1@.registry'.format(meson.current_build_dir(), i.get(1)))
+    test(test_name, runtests, args: [i.get(1)], env: env)
+endforeach
index 452311f..f84ace2 100644 (file)
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 # -*- Mode: Python -*-
 # vi:si:et:sw=4:sts=4:ts=4
 #