+++ /dev/null
-From cf8077a7e3ab0ae236ebde79b7fc0b02eac658de Mon Sep 17 00:00:00 2001
-From: Carlos Rafael Giani <crg7475@mailbox.org>
-Date: Fri, 25 Oct 2019 00:06:26 +0200
-Subject: [PATCH 3/3] meson: Add option for installed tests
-
-This adds an option for producing installed versions of the unit tests.
-These versions don't need meson to run (only a small shell script). This
-makes it easier to run cross compiled tests on a target machine.
-
-Upstream-Status: Pending
-
-Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
----
- build-aux/gen-installed-test-desc.py | 18 ++++++
- build-aux/gen-installed-test-shscript.py | 25 ++++++++
- meson_options.txt | 2 +
- tests/check/meson.build | 46 +++++++++++++-
- tests/files/testfile | 80 ++++++++++++++++++++++++
- 5 files changed, 170 insertions(+), 1 deletion(-)
- create mode 100644 build-aux/gen-installed-test-desc.py
- create mode 100644 build-aux/gen-installed-test-shscript.py
- create mode 100644 tests/files/testfile
-
-diff --git a/build-aux/gen-installed-test-desc.py b/build-aux/gen-installed-test-desc.py
-new file mode 100644
-index 000000000..69e8a0faf
---- /dev/null
-+++ b/build-aux/gen-installed-test-desc.py
-@@ -0,0 +1,18 @@
-+import sys
-+import os
-+import argparse
-+
-+def write_template(filename, data):
-+ with open(filename, 'w') as f:
-+ f.write(data)
-+
-+def build_template(testdir, testname):
-+ return "[Test]\nType=session\nExec={}\n".format(os.path.join(testdir, testname))
-+
-+argparser = argparse.ArgumentParser(description='Generate installed-test data.')
-+argparser.add_argument('--test-execdir', metavar='dir', required=True, help='Installed test directory')
-+argparser.add_argument('--testname', metavar='name', required=True, help='Installed test name')
-+argparser.add_argument('--output', metavar='file', required=True, help='Output file')
-+args = argparser.parse_args()
-+
-+write_template(args.output, build_template(args.test_execdir, args.testname))
-diff --git a/build-aux/gen-installed-test-shscript.py b/build-aux/gen-installed-test-shscript.py
-new file mode 100644
-index 000000000..5da86fb37
---- /dev/null
-+++ b/build-aux/gen-installed-test-shscript.py
-@@ -0,0 +1,25 @@
-+import sys
-+import os
-+import argparse
-+
-+def write_template(filename, data):
-+ with open(filename, 'w') as f:
-+ f.write(data)
-+
-+def build_template(testdir, testname):
-+ return ''.join([
-+ "#!/usr/bin/env sh\n",
-+ "export GST_STATE_IGNORE_ELEMENTS=''\n",
-+ "export CK_DEFAULT_TIMEOUT=20\n",
-+ "export GST_PLUGIN_LOADING_WHITELIST='gstreamer'\n",
-+ "{}\n".format(os.path.join(testdir, testname)),
-+ ])
-+
-+argparser = argparse.ArgumentParser(description='Generate installed-test data.')
-+argparser.add_argument('--test-execdir', metavar='dir', required=True, help='Installed test directory')
-+argparser.add_argument('--testname', metavar='name', required=True, help='Installed test name')
-+argparser.add_argument('--output', metavar='file', required=True, help='Output file')
-+args = argparser.parse_args()
-+
-+write_template(args.output, build_template(args.test_execdir, args.testname))
-+os.chmod(args.output, 0o755)
-diff --git a/meson_options.txt b/meson_options.txt
-index 72c3997e2..346c423d4 100644
---- a/meson_options.txt
-+++ b/meson_options.txt
-@@ -15,6 +15,8 @@ option('poisoning', type : 'boolean', value : false, description : 'Enable poiso
- option('memory-alignment', type: 'combo',
- choices : ['1', '2', '4', '8', '16', '32', '64', '128', '256', '512', '1024', '2048', '4096', '8192', 'malloc', 'pagesize'],
- value: 'malloc')
-+option('installed-tests', type : 'boolean', value : false, description : 'enable installed tests')
-+option('test-files-path', type : 'string', description : 'Path where to find test files')
-
- # Feature options
- option('check', type : 'feature', value : 'auto', description : 'Build unit test libraries')
-diff --git a/tests/check/meson.build b/tests/check/meson.build
-index a617cf159..e629131c5 100644
---- a/tests/check/meson.build
-+++ b/tests/check/meson.build
-@@ -120,11 +120,17 @@ if add_languages('cpp', native: false, required: false)
- ]
- endif
-
-+test_files_path = get_option('test-files-path')
-+if test_files_path == ''
-+ test_files_path = meson.current_source_dir() + '/../files'
-+endif
-+message('Using path "@0@" as the path to read test files from'.format(test_files_path))
-+
- 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"',
-+ '-DTESTFILE="@0@"'.format(test_files_path + '/testfile'),
- '-DGST_DISABLE_DEPRECATED',
- ]
-
-@@ -138,6 +144,14 @@ endif
- glib_deps = [gio_dep, gobject_dep, gmodule_dep, glib_dep]
- gst_deps = [gst_dep, gst_base_dep, gst_check_dep, gst_net_dep, gst_controller_dep]
-
-+installed_tests_datadir = join_paths(prefix, get_option('datadir'), 'installed-tests', 'gstreamer-1.0')
-+installed_tests_execdir = join_paths(prefix, libexecdir, 'installed-tests', 'gstreamer-1.0')
-+installed_tests_enabled = get_option('installed-tests')
-+
-+python = import('python').find_installation()
-+gen_installed_test_desc = files('../../build-aux/gen-installed-test-desc.py')
-+gen_installed_test_shscript = files('../../build-aux/gen-installed-test-shscript.py')
-+
- foreach t : core_tests
- fname = t[0]
- test_name = fname.split('.')[0].underscorify()
-@@ -151,8 +165,38 @@ foreach t : core_tests
- include_directories : [configinc],
- link_with : link_with_libs,
- dependencies : test_deps + glib_deps + gst_deps,
-+ install_dir: installed_tests_execdir,
-+ install: installed_tests_enabled
- )
-
-+ if installed_tests_enabled
-+ installed_test_shscript = test_name + '.sh'
-+ shscript = custom_target (test_name + '_shscript',
-+ output: installed_test_shscript,
-+ command: [
-+ python,
-+ gen_installed_test_shscript,
-+ '--test-execdir=@0@'.format(installed_tests_execdir),
-+ '--testname=@0@'.format(test_name),
-+ '--output=@0@'.format(join_paths('@OUTDIR@', installed_test_shscript)),
-+ ],
-+ install: true,
-+ install_dir: installed_tests_execdir)
-+
-+ installed_test_desc = test_name + '.test'
-+ data = custom_target(test_name + '_desc',
-+ output: installed_test_desc,
-+ command: [
-+ python,
-+ gen_installed_test_desc,
-+ '--test-execdir=@0@'.format(installed_tests_execdir),
-+ '--testname=@0@'.format(installed_test_shscript),
-+ '--output=@0@'.format(join_paths('@OUTDIR@', installed_test_desc)),
-+ ],
-+ install: true,
-+ install_dir: installed_tests_datadir)
-+ endif
-+
- env = environment()
- env.set('GST_PLUGIN_PATH_1_0', meson.build_root())
- env.set('GST_PLUGIN_SYSTEM_PATH_1_0', '')
-diff --git a/tests/files/testfile b/tests/files/testfile
-new file mode 100644
-index 000000000..89954e0e2
---- /dev/null
-+++ b/tests/files/testfile
-@@ -0,0 +1,80 @@
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
-+................................................................................
---
-2.29.2
-
--- /dev/null
+From c9e93c7a3e4d2773abef4f5e1464af24f36700b3 Mon Sep 17 00:00:00 2001
+From: Jose Quaresma <quaresma.jose@gmail.com>
+Date: Sun, 11 Apr 2021 19:48:13 +0100
+Subject: [PATCH 2/4] tests: add support for install the tests
+
+This will provide to run the tests using the gnome-desktop-testing [1]
+
+[1] https://wiki.gnome.org/Initiatives/GnomeGoals/InstalledTests
+
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789]
+
+Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
+---
+ meson.build | 5 +++++
+ meson_options.txt | 1 +
+ template.test.in | 3 +++
+ tests/check/meson.build | 22 +++++++++++++++++++++-
+ 4 files changed, 30 insertions(+), 1 deletion(-)
+ create mode 100644 template.test.in
+
+diff --git a/meson.build b/meson.build
+index c4e8774f5..1abf4eb26 100644
+--- a/meson.build
++++ b/meson.build
+@@ -562,6 +562,11 @@ if bashcomp_dep.found()
+ endif
+ endif
+
++installed_tests_metadir = join_paths(datadir, 'installed-tests', meson.project_name())
++installed_tests_execdir = join_paths(libexecdir, 'installed-tests', meson.project_name())
++installed_tests_enabled = get_option('installed-tests')
++installed_tests_template = files('template.test.in')
++
+ plugins_install_dir = join_paths(get_option('libdir'), 'gstreamer-1.0')
+
+ pkgconfig = import('pkgconfig')
+diff --git a/meson_options.txt b/meson_options.txt
+index c8cee3762..b5da40eaa 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -15,6 +15,7 @@ option('poisoning', type : 'boolean', value : false, description : 'Enable poiso
+ option('memory-alignment', type: 'combo',
+ choices : ['1', '2', '4', '8', '16', '32', '64', '128', '256', '512', '1024', '2048', '4096', '8192', 'malloc', 'pagesize'],
+ value: 'malloc')
++option('installed-tests', type : 'boolean', value : false, description : 'Enable installed tests')
+
+ # Feature options
+ option('check', type : 'feature', value : 'auto', description : 'Build unit test libraries')
+diff --git a/template.test.in b/template.test.in
+new file mode 100644
+index 000000000..f701627f8
+--- /dev/null
++++ b/template.test.in
+@@ -0,0 +1,3 @@
++[Test]
++Type=session
++Exec=@installed_tests_dir@/@program@
+diff --git a/tests/check/meson.build b/tests/check/meson.build
+index b2636714b..a697a7b06 100644
+--- a/tests/check/meson.build
++++ b/tests/check/meson.build
+@@ -124,10 +124,16 @@ 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_DISABLE_DEPRECATED',
+ ]
+
++testfile = meson.current_source_dir() + '/meson.build'
++if installed_tests_enabled
++ install_data(testfile, install_dir : installed_tests_metadir, rename : 'testfile')
++ testfile = installed_tests_metadir + '/testfile'
++endif
++test_defines += '-DTESTFILE="@0@"'.format(testfile)
++
+ # sanity checking
+ if get_option('check').disabled()
+ if get_option('tests').enabled()
+@@ -151,6 +157,8 @@ foreach t : core_tests
+ include_directories : [configinc],
+ link_with : link_with_libs,
+ dependencies : test_deps + glib_deps + gst_deps,
++ install_dir: installed_tests_execdir,
++ install: installed_tests_enabled,
+ )
+
+ env = environment()
+@@ -162,6 +170,18 @@ foreach t : core_tests
+ env.set('GST_PLUGIN_SCANNER_1_0', gst_scanner_dir + '/gst-plugin-scanner')
+ env.set('GST_PLUGIN_LOADING_WHITELIST', 'gstreamer')
+
++ if installed_tests_enabled
++ test_conf = configuration_data()
++ test_conf.set('installed_tests_dir', join_paths(prefix, installed_tests_execdir))
++ test_conf.set('program', test_name)
++ configure_file(
++ input: installed_tests_template,
++ output: test_name + '.test',
++ install_dir: installed_tests_metadir,
++ configuration: test_conf
++ )
++ endif
++
+ test(test_name, exe, env: env, timeout : 3 * 60)
+ endif
+ endforeach
+--
+2.31.1
+