* [PATCH v2 1/3] ptest-runner: libgcc must be installed for pthread_cancel to work
@ 2021-05-03 17:10 Jose Quaresma
2021-05-03 17:10 ` [PATCH v2 2/3] gstreamer1.0: rename patches Jose Quaresma
2021-05-03 17:10 ` [PATCH v2 3/3] gstreamer1.0: update ptest patch Jose Quaresma
0 siblings, 2 replies; 6+ messages in thread
From: Jose Quaresma @ 2021-05-03 17:10 UTC (permalink / raw)
To: openembedded-core; +Cc: Jose Quaresma
This only affects glibc systems and have been
found on runqemu core-image-minimal with gstreamer ptest-runner
STOP: ptest-runner
libgcc_s.so.1 must be installed for pthread_cancel to work
Aborted
Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
---
meta/recipes-support/ptest-runner/ptest-runner_2.4.1.bb | 2 ++
1 file changed, 2 insertions(+)
diff --git a/meta/recipes-support/ptest-runner/ptest-runner_2.4.1.bb b/meta/recipes-support/ptest-runner/ptest-runner_2.4.1.bb
index 57a3ae005b..6bd10d2fec 100644
--- a/meta/recipes-support/ptest-runner/ptest-runner_2.4.1.bb
+++ b/meta/recipes-support/ptest-runner/ptest-runner_2.4.1.bb
@@ -26,3 +26,5 @@ do_compile () {
do_install () {
install -D -m 0755 ${S}/ptest-runner ${D}${bindir}/ptest-runner
}
+
+RDEPENDS_${PN}_append_libc-glibc = " libgcc"
--
2.31.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v2 2/3] gstreamer1.0: rename patches
2021-05-03 17:10 [PATCH v2 1/3] ptest-runner: libgcc must be installed for pthread_cancel to work Jose Quaresma
@ 2021-05-03 17:10 ` Jose Quaresma
2021-05-03 17:10 ` [PATCH v2 3/3] gstreamer1.0: update ptest patch Jose Quaresma
1 sibling, 0 replies; 6+ messages in thread
From: Jose Quaresma @ 2021-05-03 17:10 UTC (permalink / raw)
To: openembedded-core; +Cc: Jose Quaresma
Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
---
...ests-seek-Don-t-use-too-strict-timeout-for-validati.patch} | 0
....patch => 0004-meson-Add-option-for-installed-tests.patch} | 0
meta/recipes-multimedia/gstreamer/gstreamer1.0_1.18.4.bb | 4 ++--
3 files changed, 2 insertions(+), 2 deletions(-)
rename meta/recipes-multimedia/gstreamer/gstreamer1.0/{0001-tests-seek-Don-t-use-too-strict-timeout-for-validati.patch => 0003-tests-seek-Don-t-use-too-strict-timeout-for-validati.patch} (100%)
rename meta/recipes-multimedia/gstreamer/gstreamer1.0/{0003-meson-Add-option-for-installed-tests.patch => 0004-meson-Add-option-for-installed-tests.patch} (100%)
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-tests-seek-Don-t-use-too-strict-timeout-for-validati.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0003-tests-seek-Don-t-use-too-strict-timeout-for-validati.patch
similarity index 100%
rename from meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-tests-seek-Don-t-use-too-strict-timeout-for-validati.patch
rename to meta/recipes-multimedia/gstreamer/gstreamer1.0/0003-tests-seek-Don-t-use-too-strict-timeout-for-validati.patch
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0003-meson-Add-option-for-installed-tests.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-meson-Add-option-for-installed-tests.patch
similarity index 100%
rename from meta/recipes-multimedia/gstreamer/gstreamer1.0/0003-meson-Add-option-for-installed-tests.patch
rename to meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-meson-Add-option-for-installed-tests.patch
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.18.4.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.18.4.bb
index 8562070968..b275a3430b 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.18.4.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.18.4.bb
@@ -18,8 +18,8 @@ S = "${WORKDIR}/gstreamer-${PV}"
SRC_URI = "https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.xz \
file://0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch \
file://0002-Remove-unused-valgrind-detection.patch \
- file://0003-meson-Add-option-for-installed-tests.patch \
- file://0001-tests-seek-Don-t-use-too-strict-timeout-for-validati.patch \
+ file://0003-tests-seek-Don-t-use-too-strict-timeout-for-validati.patch \
+ file://0004-meson-Add-option-for-installed-tests.patch \
"
SRC_URI[sha256sum] = "9aeec99b38e310817012aa2d1d76573b787af47f8a725a65b833880a094dfbc5"
--
2.31.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v2 3/3] gstreamer1.0: update ptest patch
2021-05-03 17:10 [PATCH v2 1/3] ptest-runner: libgcc must be installed for pthread_cancel to work Jose Quaresma
2021-05-03 17:10 ` [PATCH v2 2/3] gstreamer1.0: rename patches Jose Quaresma
@ 2021-05-03 17:10 ` Jose Quaresma
2021-05-04 15:59 ` [OE-core] " Khem Raj
1 sibling, 1 reply; 6+ messages in thread
From: Jose Quaresma @ 2021-05-03 17:10 UTC (permalink / raw)
To: openembedded-core; +Cc: Jose Quaresma
- rework the ptest patch with a new one that are sent upstream [1].
- it uses the same approach as the existing patch in OE-Core but
is based on the glib meson installed-tests [2] logic.
* qemux86-64 ptest-runner result
SUMMARY: total=105; passed=105; skipped=0; failed=0; user=20.4s; system=4.7s; maxrss=9928
[1] - https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789
[2] - https://gitlab.gnome.org/GNOME/glib/-/commit/1bba3276bb3b7a878860ac01483574599b23853c
Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
---
.../gstreamer/gstreamer1.0-ptest.inc | 23 --
...meson-Add-option-for-installed-tests.patch | 257 ------------------
...spect-the-idententaion-used-in-meson.patch | 36 +++
...ts-add-support-for-install-the-tests.patch | 110 ++++++++
...s-use-a-dictionaries-for-environment.patch | 48 ++++
...-the-environment-for-installed_tests.patch | 58 ++++
.../gstreamer/gstreamer1.0/run-ptest | 2 +
.../gstreamer/gstreamer1.0_1.18.4.bb | 10 +-
8 files changed, 261 insertions(+), 283 deletions(-)
delete mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0-ptest.inc
delete mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-meson-Add-option-for-installed-tests.patch
create mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-tests-respect-the-idententaion-used-in-meson.patch
create mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0/0005-tests-add-support-for-install-the-tests.patch
create mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0/0006-tests-use-a-dictionaries-for-environment.patch
create mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0/0007-tests-install-the-environment-for-installed_tests.patch
create mode 100755 meta/recipes-multimedia/gstreamer/gstreamer1.0/run-ptest
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-ptest.inc b/meta/recipes-multimedia/gstreamer/gstreamer1.0-ptest.inc
deleted file mode 100644
index b698067041..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-ptest.inc
+++ /dev/null
@@ -1,23 +0,0 @@
-inherit ptest-gnome
-
-TEST_FILES_PATH = "${datadir}/installed-tests/gstreamer-1.0/test-files"
-RUN_PTEST_FILE = "${D}${PTEST_PATH}/run-ptest"
-
-EXTRA_OEMESON += "-Dtest-files-path=${TEST_FILES_PATH}"
-
-GST_TEST_SUITE_NAME ?= "gstreamer-1.0"
-
-# Using do_install_ptest_base instead of do_install_ptest, since
-# the default do_install_ptest_base is hardcoded to expect Makefiles.
-do_install_ptest_base() {
- # Generate run-ptest file
- echo "#!/usr/bin/env sh" > "${RUN_PTEST_FILE}"
- echo "gnome-desktop-testing-runner ${GST_TEST_SUITE_NAME}" >> "${RUN_PTEST_FILE}"
- chmod 0755 "${RUN_PTEST_FILE}"
-
- # Install additional files required by tests
- if [ -d "${S}/tests/files" ] ; then
- install -d "${D}/${TEST_FILES_PATH}"
- install -m 0644 "${S}/tests/files"/* "${D}/${TEST_FILES_PATH}"
- fi
-}
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-meson-Add-option-for-installed-tests.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-meson-Add-option-for-installed-tests.patch
deleted file mode 100644
index bf5e57249c..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-meson-Add-option-for-installed-tests.patch
+++ /dev/null
@@ -1,257 +0,0 @@
-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
-
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-tests-respect-the-idententaion-used-in-meson.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-tests-respect-the-idententaion-used-in-meson.patch
new file mode 100644
index 0000000000..6f571a12d8
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-tests-respect-the-idententaion-used-in-meson.patch
@@ -0,0 +1,36 @@
+From 122e5ac3dd16a461b6ae595605490c8f5d1c3a9d 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 1/4] tests: respect the idententaion used in meson
+
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789]
+
+Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
+---
+ tests/check/meson.build | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/tests/check/meson.build b/tests/check/meson.build
+index a617cf159..b2636714b 100644
+--- a/tests/check/meson.build
++++ b/tests/check/meson.build
+@@ -146,11 +146,11 @@ foreach t : core_tests
+
+ if not skip_test
+ exe = executable(test_name, fname,
+- c_args : gst_c_args + test_defines,
+- cpp_args : gst_c_args + test_defines,
+- include_directories : [configinc],
+- link_with : link_with_libs,
+- dependencies : test_deps + glib_deps + gst_deps,
++ c_args : gst_c_args + test_defines,
++ cpp_args : gst_c_args + test_defines,
++ include_directories : [configinc],
++ link_with : link_with_libs,
++ dependencies : test_deps + glib_deps + gst_deps,
+ )
+
+ env = environment()
+--
+2.31.1
+
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0005-tests-add-support-for-install-the-tests.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0005-tests-add-support-for-install-the-tests.patch
new file mode 100644
index 0000000000..b77fb5797f
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0005-tests-add-support-for-install-the-tests.patch
@@ -0,0 +1,110 @@
+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
+
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0006-tests-use-a-dictionaries-for-environment.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0006-tests-use-a-dictionaries-for-environment.patch
new file mode 100644
index 0000000000..46813cec3d
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0006-tests-use-a-dictionaries-for-environment.patch
@@ -0,0 +1,48 @@
+From e82dedec1803922656e92285fc1bb75b2cdc0aad Mon Sep 17 00:00:00 2001
+From: Jose Quaresma <quaresma.jose@gmail.com>
+Date: Sat, 24 Apr 2021 10:34:47 +0100
+Subject: [PATCH 3/4] tests: use a dictionaries for environment
+
+meson environment() can't be passed to configure_file and it is needed for installed_tests,
+use a dictionary as this is simplest solution to install the environment.
+
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789]
+
+Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
+---
+ tests/check/meson.build | 19 +++++++++++--------
+ 1 file changed, 11 insertions(+), 8 deletions(-)
+
+diff --git a/tests/check/meson.build b/tests/check/meson.build
+index a697a7b06..f64524904 100644
+--- a/tests/check/meson.build
++++ b/tests/check/meson.build
+@@ -161,14 +161,17 @@ foreach t : core_tests
+ install: installed_tests_enabled,
+ )
+
+- env = environment()
+- env.set('GST_PLUGIN_PATH_1_0', meson.build_root())
+- env.set('GST_PLUGIN_SYSTEM_PATH_1_0', '')
+- env.set('GST_STATE_IGNORE_ELEMENTS', '')
+- env.set('CK_DEFAULT_TIMEOUT', '20')
+- env.set('GST_REGISTRY', '@0@/@1@.registry'.format(meson.current_build_dir(), test_name))
+- env.set('GST_PLUGIN_SCANNER_1_0', gst_scanner_dir + '/gst-plugin-scanner')
+- env.set('GST_PLUGIN_LOADING_WHITELIST', 'gstreamer')
++ # environment() can't be passed to configure_file and it is needed for installed_tests
++ # use a dictionary as this is simplest solution to install the environment
++ env = {
++ 'GST_PLUGIN_PATH_1_0': meson.build_root(),
++ 'GST_PLUGIN_SYSTEM_PATH_1_0': '',
++ 'GST_STATE_IGNORE_ELEMENTS': '',
++ 'CK_DEFAULT_TIMEOUT': '20',
++ 'GST_REGISTRY': '@0@/@1@.registry'.format(meson.current_build_dir(), test_name),
++ 'GST_PLUGIN_SCANNER_1_0': gst_scanner_dir + '/gst-plugin-scanner',
++ 'GST_PLUGIN_LOADING_WHITELIST': 'gstreamer',
++ }
+
+ if installed_tests_enabled
+ test_conf = configuration_data()
+--
+2.31.1
+
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0007-tests-install-the-environment-for-installed_tests.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0007-tests-install-the-environment-for-installed_tests.patch
new file mode 100644
index 0000000000..eabe7bcbe1
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0007-tests-install-the-environment-for-installed_tests.patch
@@ -0,0 +1,58 @@
+From 57d2965e979f886e03eecd7e351bf01812053971 Mon Sep 17 00:00:00 2001
+From: Jose Quaresma <quaresma.jose@gmail.com>
+Date: Sun, 2 May 2021 01:58:01 +0100
+Subject: [PATCH 4/4] tests: install the environment for installed_tests
+
+- adapt the test environment for installed_tests
+- install the test environment for installed_tests
+- run the tests using the installed environment
+
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789]
+
+Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
+---
+ template.test.in | 2 +-
+ tests/check/meson.build | 18 ++++++++++++++++++
+ 2 files changed, 19 insertions(+), 1 deletion(-)
+
+diff --git a/template.test.in b/template.test.in
+index f701627f8..9a3fbdd09 100644
+--- a/template.test.in
++++ b/template.test.in
+@@ -1,3 +1,3 @@
+ [Test]
+ Type=session
+-Exec=@installed_tests_dir@/@program@
++Exec=sh -c 'set -aex && source @installed_tests_dir@/@program@.env && exec @installed_tests_dir@/@program@'
+diff --git a/tests/check/meson.build b/tests/check/meson.build
+index f64524904..a67e0f8dd 100644
+--- a/tests/check/meson.build
++++ b/tests/check/meson.build
+@@ -183,6 +183,24 @@ foreach t : core_tests
+ install_dir: installed_tests_metadir,
+ configuration: test_conf
+ )
++
++ env += {'GST_REGISTRY': '~/.cache/gstreamer-1.0/@0@.registry'.format(test_name)}
++ configure_file(
++ output: test_name + '.env',
++ install_dir: installed_tests_execdir,
++ configuration : env,
++ )
++ # helper to convert a meson environment dictionay object exported with configure_file
++ # this also remove not needed variables for the installed tests
++ meson.add_postconf_script('sed', '-i',
++ '-e', '/^#define/!d',
++ '-e', 's/^#define //g',
++ '-e', '/^GST_PLUGIN_PATH_1_0/d',
++ '-e', '/^GST_PLUGIN_SYSTEM_PATH_1_0/d',
++ '-e', '/^GST_PLUGIN_SCANNER_1_0/d',
++ '-e', 's/ /=/',
++ join_paths(meson.current_build_dir(), test_name + '.env')
++ )
+ endif
+
+ test(test_name, exe, env: env, timeout : 3 * 60)
+--
+2.31.1
+
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/run-ptest b/meta/recipes-multimedia/gstreamer/gstreamer1.0/run-ptest
new file mode 100755
index 0000000000..0cfa955f03
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/run-ptest
@@ -0,0 +1,2 @@
+#!/usr/bin/env sh
+gnome-desktop-testing-runner gstreamer
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.18.4.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.18.4.bb
index b275a3430b..8f135b3839 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.18.4.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.18.4.bb
@@ -8,7 +8,7 @@ LICENSE = "LGPLv2+"
DEPENDS = "glib-2.0 glib-2.0-native libxml2 bison-native flex-native"
-inherit meson pkgconfig gettext upstream-version-is-even gobject-introspection
+inherit meson pkgconfig gettext upstream-version-is-even gobject-introspection ptest-gnome
LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \
file://gst/gst.h;beginline=1;endline=21;md5=e059138481205ee2c6fc1c079c016d0d"
@@ -16,10 +16,14 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \
S = "${WORKDIR}/gstreamer-${PV}"
SRC_URI = "https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.xz \
+ file://run-ptest \
file://0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch \
file://0002-Remove-unused-valgrind-detection.patch \
file://0003-tests-seek-Don-t-use-too-strict-timeout-for-validati.patch \
- file://0004-meson-Add-option-for-installed-tests.patch \
+ file://0004-tests-respect-the-idententaion-used-in-meson.patch \
+ file://0005-tests-add-support-for-install-the-tests.patch \
+ file://0006-tests-use-a-dictionaries-for-environment.patch \
+ file://0007-tests-install-the-environment-for-installed_tests.patch \
"
SRC_URI[sha256sum] = "9aeec99b38e310817012aa2d1d76573b787af47f8a725a65b833880a094dfbc5"
@@ -68,4 +72,4 @@ FILES_${PN}-dbg += "${datadir}/gdb ${datadir}/gstreamer-1.0/gdb"
CVE_PRODUCT = "gstreamer"
-require gstreamer1.0-ptest.inc
+PTEST_BUILD_HOST_FILES = ""
--
2.31.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [OE-core] [PATCH v2 3/3] gstreamer1.0: update ptest patch
2021-05-03 17:10 ` [PATCH v2 3/3] gstreamer1.0: update ptest patch Jose Quaresma
@ 2021-05-04 15:59 ` Khem Raj
2021-05-04 18:24 ` Jose Quaresma
0 siblings, 1 reply; 6+ messages in thread
From: Khem Raj @ 2021-05-04 15:59 UTC (permalink / raw)
To: Jose Quaresma; +Cc: Patches and discussions about the oe-core layer
On Mon, May 3, 2021 at 10:09 AM Jose Quaresma <quaresma.jose@gmail.com> wrote:
>
> - rework the ptest patch with a new one that are sent upstream [1].
> - it uses the same approach as the existing patch in OE-Core but
> is based on the glib meson installed-tests [2] logic.
>
> * qemux86-64 ptest-runner result
> SUMMARY: total=105; passed=105; skipped=0; failed=0; user=20.4s; system=4.7s; maxrss=9928
>
> [1] - https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789
> [2] - https://gitlab.gnome.org/GNOME/glib/-/commit/1bba3276bb3b7a878860ac01483574599b23853c
>
> Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
> ---
> .../gstreamer/gstreamer1.0-ptest.inc | 23 --
there are gstreamer recipes in other layers ( meta-freescale in my
case ) which depends on this file
how do you propose to fix those recipes ?
> ...meson-Add-option-for-installed-tests.patch | 257 ------------------
> ...spect-the-idententaion-used-in-meson.patch | 36 +++
> ...ts-add-support-for-install-the-tests.patch | 110 ++++++++
> ...s-use-a-dictionaries-for-environment.patch | 48 ++++
> ...-the-environment-for-installed_tests.patch | 58 ++++
> .../gstreamer/gstreamer1.0/run-ptest | 2 +
> .../gstreamer/gstreamer1.0_1.18.4.bb | 10 +-
> 8 files changed, 261 insertions(+), 283 deletions(-)
> delete mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0-ptest.inc
> delete mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-meson-Add-option-for-installed-tests.patch
> create mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-tests-respect-the-idententaion-used-in-meson.patch
> create mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0/0005-tests-add-support-for-install-the-tests.patch
> create mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0/0006-tests-use-a-dictionaries-for-environment.patch
> create mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0/0007-tests-install-the-environment-for-installed_tests.patch
> create mode 100755 meta/recipes-multimedia/gstreamer/gstreamer1.0/run-ptest
>
> diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-ptest.inc b/meta/recipes-multimedia/gstreamer/gstreamer1.0-ptest.inc
> deleted file mode 100644
> index b698067041..0000000000
> --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-ptest.inc
> +++ /dev/null
> @@ -1,23 +0,0 @@
> -inherit ptest-gnome
> -
> -TEST_FILES_PATH = "${datadir}/installed-tests/gstreamer-1.0/test-files"
> -RUN_PTEST_FILE = "${D}${PTEST_PATH}/run-ptest"
> -
> -EXTRA_OEMESON += "-Dtest-files-path=${TEST_FILES_PATH}"
> -
> -GST_TEST_SUITE_NAME ?= "gstreamer-1.0"
> -
> -# Using do_install_ptest_base instead of do_install_ptest, since
> -# the default do_install_ptest_base is hardcoded to expect Makefiles.
> -do_install_ptest_base() {
> - # Generate run-ptest file
> - echo "#!/usr/bin/env sh" > "${RUN_PTEST_FILE}"
> - echo "gnome-desktop-testing-runner ${GST_TEST_SUITE_NAME}" >> "${RUN_PTEST_FILE}"
> - chmod 0755 "${RUN_PTEST_FILE}"
> -
> - # Install additional files required by tests
> - if [ -d "${S}/tests/files" ] ; then
> - install -d "${D}/${TEST_FILES_PATH}"
> - install -m 0644 "${S}/tests/files"/* "${D}/${TEST_FILES_PATH}"
> - fi
> -}
> diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-meson-Add-option-for-installed-tests.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-meson-Add-option-for-installed-tests.patch
> deleted file mode 100644
> index bf5e57249c..0000000000
> --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-meson-Add-option-for-installed-tests.patch
> +++ /dev/null
> @@ -1,257 +0,0 @@
> -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
> -
> diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-tests-respect-the-idententaion-used-in-meson.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-tests-respect-the-idententaion-used-in-meson.patch
> new file mode 100644
> index 0000000000..6f571a12d8
> --- /dev/null
> +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-tests-respect-the-idententaion-used-in-meson.patch
> @@ -0,0 +1,36 @@
> +From 122e5ac3dd16a461b6ae595605490c8f5d1c3a9d 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 1/4] tests: respect the idententaion used in meson
> +
> +Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789]
> +
> +Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
> +---
> + tests/check/meson.build | 10 +++++-----
> + 1 file changed, 5 insertions(+), 5 deletions(-)
> +
> +diff --git a/tests/check/meson.build b/tests/check/meson.build
> +index a617cf159..b2636714b 100644
> +--- a/tests/check/meson.build
> ++++ b/tests/check/meson.build
> +@@ -146,11 +146,11 @@ foreach t : core_tests
> +
> + if not skip_test
> + exe = executable(test_name, fname,
> +- c_args : gst_c_args + test_defines,
> +- cpp_args : gst_c_args + test_defines,
> +- include_directories : [configinc],
> +- link_with : link_with_libs,
> +- dependencies : test_deps + glib_deps + gst_deps,
> ++ c_args : gst_c_args + test_defines,
> ++ cpp_args : gst_c_args + test_defines,
> ++ include_directories : [configinc],
> ++ link_with : link_with_libs,
> ++ dependencies : test_deps + glib_deps + gst_deps,
> + )
> +
> + env = environment()
> +--
> +2.31.1
> +
> diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0005-tests-add-support-for-install-the-tests.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0005-tests-add-support-for-install-the-tests.patch
> new file mode 100644
> index 0000000000..b77fb5797f
> --- /dev/null
> +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0005-tests-add-support-for-install-the-tests.patch
> @@ -0,0 +1,110 @@
> +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
> +
> diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0006-tests-use-a-dictionaries-for-environment.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0006-tests-use-a-dictionaries-for-environment.patch
> new file mode 100644
> index 0000000000..46813cec3d
> --- /dev/null
> +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0006-tests-use-a-dictionaries-for-environment.patch
> @@ -0,0 +1,48 @@
> +From e82dedec1803922656e92285fc1bb75b2cdc0aad Mon Sep 17 00:00:00 2001
> +From: Jose Quaresma <quaresma.jose@gmail.com>
> +Date: Sat, 24 Apr 2021 10:34:47 +0100
> +Subject: [PATCH 3/4] tests: use a dictionaries for environment
> +
> +meson environment() can't be passed to configure_file and it is needed for installed_tests,
> +use a dictionary as this is simplest solution to install the environment.
> +
> +Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789]
> +
> +Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
> +---
> + tests/check/meson.build | 19 +++++++++++--------
> + 1 file changed, 11 insertions(+), 8 deletions(-)
> +
> +diff --git a/tests/check/meson.build b/tests/check/meson.build
> +index a697a7b06..f64524904 100644
> +--- a/tests/check/meson.build
> ++++ b/tests/check/meson.build
> +@@ -161,14 +161,17 @@ foreach t : core_tests
> + install: installed_tests_enabled,
> + )
> +
> +- env = environment()
> +- env.set('GST_PLUGIN_PATH_1_0', meson.build_root())
> +- env.set('GST_PLUGIN_SYSTEM_PATH_1_0', '')
> +- env.set('GST_STATE_IGNORE_ELEMENTS', '')
> +- env.set('CK_DEFAULT_TIMEOUT', '20')
> +- env.set('GST_REGISTRY', '@0@/@1@.registry'.format(meson.current_build_dir(), test_name))
> +- env.set('GST_PLUGIN_SCANNER_1_0', gst_scanner_dir + '/gst-plugin-scanner')
> +- env.set('GST_PLUGIN_LOADING_WHITELIST', 'gstreamer')
> ++ # environment() can't be passed to configure_file and it is needed for installed_tests
> ++ # use a dictionary as this is simplest solution to install the environment
> ++ env = {
> ++ 'GST_PLUGIN_PATH_1_0': meson.build_root(),
> ++ 'GST_PLUGIN_SYSTEM_PATH_1_0': '',
> ++ 'GST_STATE_IGNORE_ELEMENTS': '',
> ++ 'CK_DEFAULT_TIMEOUT': '20',
> ++ 'GST_REGISTRY': '@0@/@1@.registry'.format(meson.current_build_dir(), test_name),
> ++ 'GST_PLUGIN_SCANNER_1_0': gst_scanner_dir + '/gst-plugin-scanner',
> ++ 'GST_PLUGIN_LOADING_WHITELIST': 'gstreamer',
> ++ }
> +
> + if installed_tests_enabled
> + test_conf = configuration_data()
> +--
> +2.31.1
> +
> diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0007-tests-install-the-environment-for-installed_tests.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0007-tests-install-the-environment-for-installed_tests.patch
> new file mode 100644
> index 0000000000..eabe7bcbe1
> --- /dev/null
> +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0007-tests-install-the-environment-for-installed_tests.patch
> @@ -0,0 +1,58 @@
> +From 57d2965e979f886e03eecd7e351bf01812053971 Mon Sep 17 00:00:00 2001
> +From: Jose Quaresma <quaresma.jose@gmail.com>
> +Date: Sun, 2 May 2021 01:58:01 +0100
> +Subject: [PATCH 4/4] tests: install the environment for installed_tests
> +
> +- adapt the test environment for installed_tests
> +- install the test environment for installed_tests
> +- run the tests using the installed environment
> +
> +Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789]
> +
> +Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
> +---
> + template.test.in | 2 +-
> + tests/check/meson.build | 18 ++++++++++++++++++
> + 2 files changed, 19 insertions(+), 1 deletion(-)
> +
> +diff --git a/template.test.in b/template.test.in
> +index f701627f8..9a3fbdd09 100644
> +--- a/template.test.in
> ++++ b/template.test.in
> +@@ -1,3 +1,3 @@
> + [Test]
> + Type=session
> +-Exec=@installed_tests_dir@/@program@
> ++Exec=sh -c 'set -aex && source @installed_tests_dir@/@program@.env && exec @installed_tests_dir@/@program@'
> +diff --git a/tests/check/meson.build b/tests/check/meson.build
> +index f64524904..a67e0f8dd 100644
> +--- a/tests/check/meson.build
> ++++ b/tests/check/meson.build
> +@@ -183,6 +183,24 @@ foreach t : core_tests
> + install_dir: installed_tests_metadir,
> + configuration: test_conf
> + )
> ++
> ++ env += {'GST_REGISTRY': '~/.cache/gstreamer-1.0/@0@.registry'.format(test_name)}
> ++ configure_file(
> ++ output: test_name + '.env',
> ++ install_dir: installed_tests_execdir,
> ++ configuration : env,
> ++ )
> ++ # helper to convert a meson environment dictionay object exported with configure_file
> ++ # this also remove not needed variables for the installed tests
> ++ meson.add_postconf_script('sed', '-i',
> ++ '-e', '/^#define/!d',
> ++ '-e', 's/^#define //g',
> ++ '-e', '/^GST_PLUGIN_PATH_1_0/d',
> ++ '-e', '/^GST_PLUGIN_SYSTEM_PATH_1_0/d',
> ++ '-e', '/^GST_PLUGIN_SCANNER_1_0/d',
> ++ '-e', 's/ /=/',
> ++ join_paths(meson.current_build_dir(), test_name + '.env')
> ++ )
> + endif
> +
> + test(test_name, exe, env: env, timeout : 3 * 60)
> +--
> +2.31.1
> +
> diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/run-ptest b/meta/recipes-multimedia/gstreamer/gstreamer1.0/run-ptest
> new file mode 100755
> index 0000000000..0cfa955f03
> --- /dev/null
> +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/run-ptest
> @@ -0,0 +1,2 @@
> +#!/usr/bin/env sh
> +gnome-desktop-testing-runner gstreamer
> diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.18.4.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.18.4.bb
> index b275a3430b..8f135b3839 100644
> --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.18.4.bb
> +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.18.4.bb
> @@ -8,7 +8,7 @@ LICENSE = "LGPLv2+"
>
> DEPENDS = "glib-2.0 glib-2.0-native libxml2 bison-native flex-native"
>
> -inherit meson pkgconfig gettext upstream-version-is-even gobject-introspection
> +inherit meson pkgconfig gettext upstream-version-is-even gobject-introspection ptest-gnome
>
> LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \
> file://gst/gst.h;beginline=1;endline=21;md5=e059138481205ee2c6fc1c079c016d0d"
> @@ -16,10 +16,14 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \
> S = "${WORKDIR}/gstreamer-${PV}"
>
> SRC_URI = "https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.xz \
> + file://run-ptest \
> file://0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch \
> file://0002-Remove-unused-valgrind-detection.patch \
> file://0003-tests-seek-Don-t-use-too-strict-timeout-for-validati.patch \
> - file://0004-meson-Add-option-for-installed-tests.patch \
> + file://0004-tests-respect-the-idententaion-used-in-meson.patch \
> + file://0005-tests-add-support-for-install-the-tests.patch \
> + file://0006-tests-use-a-dictionaries-for-environment.patch \
> + file://0007-tests-install-the-environment-for-installed_tests.patch \
> "
> SRC_URI[sha256sum] = "9aeec99b38e310817012aa2d1d76573b787af47f8a725a65b833880a094dfbc5"
>
> @@ -68,4 +72,4 @@ FILES_${PN}-dbg += "${datadir}/gdb ${datadir}/gstreamer-1.0/gdb"
>
> CVE_PRODUCT = "gstreamer"
>
> -require gstreamer1.0-ptest.inc
> +PTEST_BUILD_HOST_FILES = ""
> --
> 2.31.1
>
>
>
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [OE-core] [PATCH v2 3/3] gstreamer1.0: update ptest patch
2021-05-04 15:59 ` [OE-core] " Khem Raj
@ 2021-05-04 18:24 ` Jose Quaresma
2021-05-04 18:33 ` Khem Raj
0 siblings, 1 reply; 6+ messages in thread
From: Jose Quaresma @ 2021-05-04 18:24 UTC (permalink / raw)
To: Khem Raj; +Cc: Patches and discussions about the oe-core layer
Khem Raj <raj.khem@gmail.com> escreveu no dia terça, 4/05/2021 à(s) 17:00:
>
> On Mon, May 3, 2021 at 10:09 AM Jose Quaresma <quaresma.jose@gmail.com> wrote:
> >
> > - rework the ptest patch with a new one that are sent upstream [1].
> > - it uses the same approach as the existing patch in OE-Core but
> > is based on the glib meson installed-tests [2] logic.
> >
> > * qemux86-64 ptest-runner result
> > SUMMARY: total=105; passed=105; skipped=0; failed=0; user=20.4s; system=4.7s; maxrss=9928
> >
> > [1] - https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789
> > [2] - https://gitlab.gnome.org/GNOME/glib/-/commit/1bba3276bb3b7a878860ac01483574599b23853c
> >
> > Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
> > ---
> > .../gstreamer/gstreamer1.0-ptest.inc | 23 --
>
> there are gstreamer recipes in other layers ( meta-freescale in my
> case ) which depends on this file
> how do you propose to fix those recipes ?
meta-freescale has a fork of gstreamer os-core with all the patches [1]
and one of them is the installed tests [2] that is removed as well.
Thes installed tests patch on meta-freescale requires the gstreamer1.0-ptest.inc
I think the best solution is add the oe-core gstreamer1.0-ptest.inc on
meta-freescale.
I can submit it if this patch is accepted and merged on oe-core master.
[1] - https://git.yoctoproject.org/cgit/cgit.cgi/meta-freescale/tree/recipes-multimedia/gstreamer/gstreamer1.0*
[2] - https://git.yoctoproject.org/cgit/cgit.cgi/meta-freescale/tree/recipes-multimedia/gstreamer/gstreamer1.0/0004-meson-Add-option-for-installed-tests.patch
>
> > ...meson-Add-option-for-installed-tests.patch | 257 ------------------
> > ...spect-the-idententaion-used-in-meson.patch | 36 +++
> > ...ts-add-support-for-install-the-tests.patch | 110 ++++++++
> > ...s-use-a-dictionaries-for-environment.patch | 48 ++++
> > ...-the-environment-for-installed_tests.patch | 58 ++++
> > .../gstreamer/gstreamer1.0/run-ptest | 2 +
> > .../gstreamer/gstreamer1.0_1.18.4.bb | 10 +-
> > 8 files changed, 261 insertions(+), 283 deletions(-)
> > delete mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0-ptest.inc
> > delete mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-meson-Add-option-for-installed-tests.patch
> > create mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-tests-respect-the-idententaion-used-in-meson.patch
> > create mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0/0005-tests-add-support-for-install-the-tests.patch
> > create mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0/0006-tests-use-a-dictionaries-for-environment.patch
> > create mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0/0007-tests-install-the-environment-for-installed_tests.patch
> > create mode 100755 meta/recipes-multimedia/gstreamer/gstreamer1.0/run-ptest
> >
> > diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-ptest.inc b/meta/recipes-multimedia/gstreamer/gstreamer1.0-ptest.inc
> > deleted file mode 100644
> > index b698067041..0000000000
> > --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-ptest.inc
> > +++ /dev/null
> > @@ -1,23 +0,0 @@
> > -inherit ptest-gnome
> > -
> > -TEST_FILES_PATH = "${datadir}/installed-tests/gstreamer-1.0/test-files"
> > -RUN_PTEST_FILE = "${D}${PTEST_PATH}/run-ptest"
> > -
> > -EXTRA_OEMESON += "-Dtest-files-path=${TEST_FILES_PATH}"
> > -
> > -GST_TEST_SUITE_NAME ?= "gstreamer-1.0"
> > -
> > -# Using do_install_ptest_base instead of do_install_ptest, since
> > -# the default do_install_ptest_base is hardcoded to expect Makefiles.
> > -do_install_ptest_base() {
> > - # Generate run-ptest file
> > - echo "#!/usr/bin/env sh" > "${RUN_PTEST_FILE}"
> > - echo "gnome-desktop-testing-runner ${GST_TEST_SUITE_NAME}" >> "${RUN_PTEST_FILE}"
> > - chmod 0755 "${RUN_PTEST_FILE}"
> > -
> > - # Install additional files required by tests
> > - if [ -d "${S}/tests/files" ] ; then
> > - install -d "${D}/${TEST_FILES_PATH}"
> > - install -m 0644 "${S}/tests/files"/* "${D}/${TEST_FILES_PATH}"
> > - fi
> > -}
> > diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-meson-Add-option-for-installed-tests.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-meson-Add-option-for-installed-tests.patch
> > deleted file mode 100644
> > index bf5e57249c..0000000000
> > --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-meson-Add-option-for-installed-tests.patch
> > +++ /dev/null
> > @@ -1,257 +0,0 @@
> > -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
> > -
> > diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-tests-respect-the-idententaion-used-in-meson.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-tests-respect-the-idententaion-used-in-meson.patch
> > new file mode 100644
> > index 0000000000..6f571a12d8
> > --- /dev/null
> > +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-tests-respect-the-idententaion-used-in-meson.patch
> > @@ -0,0 +1,36 @@
> > +From 122e5ac3dd16a461b6ae595605490c8f5d1c3a9d 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 1/4] tests: respect the idententaion used in meson
> > +
> > +Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789]
> > +
> > +Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
> > +---
> > + tests/check/meson.build | 10 +++++-----
> > + 1 file changed, 5 insertions(+), 5 deletions(-)
> > +
> > +diff --git a/tests/check/meson.build b/tests/check/meson.build
> > +index a617cf159..b2636714b 100644
> > +--- a/tests/check/meson.build
> > ++++ b/tests/check/meson.build
> > +@@ -146,11 +146,11 @@ foreach t : core_tests
> > +
> > + if not skip_test
> > + exe = executable(test_name, fname,
> > +- c_args : gst_c_args + test_defines,
> > +- cpp_args : gst_c_args + test_defines,
> > +- include_directories : [configinc],
> > +- link_with : link_with_libs,
> > +- dependencies : test_deps + glib_deps + gst_deps,
> > ++ c_args : gst_c_args + test_defines,
> > ++ cpp_args : gst_c_args + test_defines,
> > ++ include_directories : [configinc],
> > ++ link_with : link_with_libs,
> > ++ dependencies : test_deps + glib_deps + gst_deps,
> > + )
> > +
> > + env = environment()
> > +--
> > +2.31.1
> > +
> > diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0005-tests-add-support-for-install-the-tests.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0005-tests-add-support-for-install-the-tests.patch
> > new file mode 100644
> > index 0000000000..b77fb5797f
> > --- /dev/null
> > +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0005-tests-add-support-for-install-the-tests.patch
> > @@ -0,0 +1,110 @@
> > +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
> > +
> > diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0006-tests-use-a-dictionaries-for-environment.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0006-tests-use-a-dictionaries-for-environment.patch
> > new file mode 100644
> > index 0000000000..46813cec3d
> > --- /dev/null
> > +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0006-tests-use-a-dictionaries-for-environment.patch
> > @@ -0,0 +1,48 @@
> > +From e82dedec1803922656e92285fc1bb75b2cdc0aad Mon Sep 17 00:00:00 2001
> > +From: Jose Quaresma <quaresma.jose@gmail.com>
> > +Date: Sat, 24 Apr 2021 10:34:47 +0100
> > +Subject: [PATCH 3/4] tests: use a dictionaries for environment
> > +
> > +meson environment() can't be passed to configure_file and it is needed for installed_tests,
> > +use a dictionary as this is simplest solution to install the environment.
> > +
> > +Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789]
> > +
> > +Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
> > +---
> > + tests/check/meson.build | 19 +++++++++++--------
> > + 1 file changed, 11 insertions(+), 8 deletions(-)
> > +
> > +diff --git a/tests/check/meson.build b/tests/check/meson.build
> > +index a697a7b06..f64524904 100644
> > +--- a/tests/check/meson.build
> > ++++ b/tests/check/meson.build
> > +@@ -161,14 +161,17 @@ foreach t : core_tests
> > + install: installed_tests_enabled,
> > + )
> > +
> > +- env = environment()
> > +- env.set('GST_PLUGIN_PATH_1_0', meson.build_root())
> > +- env.set('GST_PLUGIN_SYSTEM_PATH_1_0', '')
> > +- env.set('GST_STATE_IGNORE_ELEMENTS', '')
> > +- env.set('CK_DEFAULT_TIMEOUT', '20')
> > +- env.set('GST_REGISTRY', '@0@/@1@.registry'.format(meson.current_build_dir(), test_name))
> > +- env.set('GST_PLUGIN_SCANNER_1_0', gst_scanner_dir + '/gst-plugin-scanner')
> > +- env.set('GST_PLUGIN_LOADING_WHITELIST', 'gstreamer')
> > ++ # environment() can't be passed to configure_file and it is needed for installed_tests
> > ++ # use a dictionary as this is simplest solution to install the environment
> > ++ env = {
> > ++ 'GST_PLUGIN_PATH_1_0': meson.build_root(),
> > ++ 'GST_PLUGIN_SYSTEM_PATH_1_0': '',
> > ++ 'GST_STATE_IGNORE_ELEMENTS': '',
> > ++ 'CK_DEFAULT_TIMEOUT': '20',
> > ++ 'GST_REGISTRY': '@0@/@1@.registry'.format(meson.current_build_dir(), test_name),
> > ++ 'GST_PLUGIN_SCANNER_1_0': gst_scanner_dir + '/gst-plugin-scanner',
> > ++ 'GST_PLUGIN_LOADING_WHITELIST': 'gstreamer',
> > ++ }
> > +
> > + if installed_tests_enabled
> > + test_conf = configuration_data()
> > +--
> > +2.31.1
> > +
> > diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0007-tests-install-the-environment-for-installed_tests.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0007-tests-install-the-environment-for-installed_tests.patch
> > new file mode 100644
> > index 0000000000..eabe7bcbe1
> > --- /dev/null
> > +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0007-tests-install-the-environment-for-installed_tests.patch
> > @@ -0,0 +1,58 @@
> > +From 57d2965e979f886e03eecd7e351bf01812053971 Mon Sep 17 00:00:00 2001
> > +From: Jose Quaresma <quaresma.jose@gmail.com>
> > +Date: Sun, 2 May 2021 01:58:01 +0100
> > +Subject: [PATCH 4/4] tests: install the environment for installed_tests
> > +
> > +- adapt the test environment for installed_tests
> > +- install the test environment for installed_tests
> > +- run the tests using the installed environment
> > +
> > +Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789]
> > +
> > +Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
> > +---
> > + template.test.in | 2 +-
> > + tests/check/meson.build | 18 ++++++++++++++++++
> > + 2 files changed, 19 insertions(+), 1 deletion(-)
> > +
> > +diff --git a/template.test.in b/template.test.in
> > +index f701627f8..9a3fbdd09 100644
> > +--- a/template.test.in
> > ++++ b/template.test.in
> > +@@ -1,3 +1,3 @@
> > + [Test]
> > + Type=session
> > +-Exec=@installed_tests_dir@/@program@
> > ++Exec=sh -c 'set -aex && source @installed_tests_dir@/@program@.env && exec @installed_tests_dir@/@program@'
> > +diff --git a/tests/check/meson.build b/tests/check/meson.build
> > +index f64524904..a67e0f8dd 100644
> > +--- a/tests/check/meson.build
> > ++++ b/tests/check/meson.build
> > +@@ -183,6 +183,24 @@ foreach t : core_tests
> > + install_dir: installed_tests_metadir,
> > + configuration: test_conf
> > + )
> > ++
> > ++ env += {'GST_REGISTRY': '~/.cache/gstreamer-1.0/@0@.registry'.format(test_name)}
> > ++ configure_file(
> > ++ output: test_name + '.env',
> > ++ install_dir: installed_tests_execdir,
> > ++ configuration : env,
> > ++ )
> > ++ # helper to convert a meson environment dictionay object exported with configure_file
> > ++ # this also remove not needed variables for the installed tests
> > ++ meson.add_postconf_script('sed', '-i',
> > ++ '-e', '/^#define/!d',
> > ++ '-e', 's/^#define //g',
> > ++ '-e', '/^GST_PLUGIN_PATH_1_0/d',
> > ++ '-e', '/^GST_PLUGIN_SYSTEM_PATH_1_0/d',
> > ++ '-e', '/^GST_PLUGIN_SCANNER_1_0/d',
> > ++ '-e', 's/ /=/',
> > ++ join_paths(meson.current_build_dir(), test_name + '.env')
> > ++ )
> > + endif
> > +
> > + test(test_name, exe, env: env, timeout : 3 * 60)
> > +--
> > +2.31.1
> > +
> > diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/run-ptest b/meta/recipes-multimedia/gstreamer/gstreamer1.0/run-ptest
> > new file mode 100755
> > index 0000000000..0cfa955f03
> > --- /dev/null
> > +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/run-ptest
> > @@ -0,0 +1,2 @@
> > +#!/usr/bin/env sh
> > +gnome-desktop-testing-runner gstreamer
> > diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.18.4.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.18.4.bb
> > index b275a3430b..8f135b3839 100644
> > --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.18.4.bb
> > +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.18.4.bb
> > @@ -8,7 +8,7 @@ LICENSE = "LGPLv2+"
> >
> > DEPENDS = "glib-2.0 glib-2.0-native libxml2 bison-native flex-native"
> >
> > -inherit meson pkgconfig gettext upstream-version-is-even gobject-introspection
> > +inherit meson pkgconfig gettext upstream-version-is-even gobject-introspection ptest-gnome
> >
> > LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \
> > file://gst/gst.h;beginline=1;endline=21;md5=e059138481205ee2c6fc1c079c016d0d"
> > @@ -16,10 +16,14 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \
> > S = "${WORKDIR}/gstreamer-${PV}"
> >
> > SRC_URI = "https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.xz \
> > + file://run-ptest \
> > file://0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch \
> > file://0002-Remove-unused-valgrind-detection.patch \
> > file://0003-tests-seek-Don-t-use-too-strict-timeout-for-validati.patch \
> > - file://0004-meson-Add-option-for-installed-tests.patch \
> > + file://0004-tests-respect-the-idententaion-used-in-meson.patch \
> > + file://0005-tests-add-support-for-install-the-tests.patch \
> > + file://0006-tests-use-a-dictionaries-for-environment.patch \
> > + file://0007-tests-install-the-environment-for-installed_tests.patch \
> > "
> > SRC_URI[sha256sum] = "9aeec99b38e310817012aa2d1d76573b787af47f8a725a65b833880a094dfbc5"
> >
> > @@ -68,4 +72,4 @@ FILES_${PN}-dbg += "${datadir}/gdb ${datadir}/gstreamer-1.0/gdb"
> >
> > CVE_PRODUCT = "gstreamer"
> >
> > -require gstreamer1.0-ptest.inc
> > +PTEST_BUILD_HOST_FILES = ""
> > --
> > 2.31.1
> >
> >
> >
> >
--
Best regards,
José Quaresma
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [OE-core] [PATCH v2 3/3] gstreamer1.0: update ptest patch
2021-05-04 18:24 ` Jose Quaresma
@ 2021-05-04 18:33 ` Khem Raj
0 siblings, 0 replies; 6+ messages in thread
From: Khem Raj @ 2021-05-04 18:33 UTC (permalink / raw)
To: Jose Quaresma; +Cc: Patches and discussions about the oe-core layer
On Tue, May 4, 2021 at 11:23 AM Jose Quaresma <quaresma.jose@gmail.com> wrote:
>
> Khem Raj <raj.khem@gmail.com> escreveu no dia terça, 4/05/2021 à(s) 17:00:
> >
> > On Mon, May 3, 2021 at 10:09 AM Jose Quaresma <quaresma.jose@gmail.com> wrote:
> > >
> > > - rework the ptest patch with a new one that are sent upstream [1].
> > > - it uses the same approach as the existing patch in OE-Core but
> > > is based on the glib meson installed-tests [2] logic.
> > >
> > > * qemux86-64 ptest-runner result
> > > SUMMARY: total=105; passed=105; skipped=0; failed=0; user=20.4s; system=4.7s; maxrss=9928
> > >
> > > [1] - https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789
> > > [2] - https://gitlab.gnome.org/GNOME/glib/-/commit/1bba3276bb3b7a878860ac01483574599b23853c
> > >
> > > Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
> > > ---
> > > .../gstreamer/gstreamer1.0-ptest.inc | 23 --
> >
> > there are gstreamer recipes in other layers ( meta-freescale in my
> > case ) which depends on this file
> > how do you propose to fix those recipes ?
>
> meta-freescale has a fork of gstreamer os-core with all the patches [1]
> and one of them is the installed tests [2] that is removed as well.
> Thes installed tests patch on meta-freescale requires the gstreamer1.0-ptest.inc
>
> I think the best solution is add the oe-core gstreamer1.0-ptest.inc on
> meta-freescale.
> I can submit it if this patch is accepted and merged on oe-core master.
please do so, thanks
>
> [1] - https://git.yoctoproject.org/cgit/cgit.cgi/meta-freescale/tree/recipes-multimedia/gstreamer/gstreamer1.0*
> [2] - https://git.yoctoproject.org/cgit/cgit.cgi/meta-freescale/tree/recipes-multimedia/gstreamer/gstreamer1.0/0004-meson-Add-option-for-installed-tests.patch
>
> >
> > > ...meson-Add-option-for-installed-tests.patch | 257 ------------------
> > > ...spect-the-idententaion-used-in-meson.patch | 36 +++
> > > ...ts-add-support-for-install-the-tests.patch | 110 ++++++++
> > > ...s-use-a-dictionaries-for-environment.patch | 48 ++++
> > > ...-the-environment-for-installed_tests.patch | 58 ++++
> > > .../gstreamer/gstreamer1.0/run-ptest | 2 +
> > > .../gstreamer/gstreamer1.0_1.18.4.bb | 10 +-
> > > 8 files changed, 261 insertions(+), 283 deletions(-)
> > > delete mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0-ptest.inc
> > > delete mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-meson-Add-option-for-installed-tests.patch
> > > create mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-tests-respect-the-idententaion-used-in-meson.patch
> > > create mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0/0005-tests-add-support-for-install-the-tests.patch
> > > create mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0/0006-tests-use-a-dictionaries-for-environment.patch
> > > create mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0/0007-tests-install-the-environment-for-installed_tests.patch
> > > create mode 100755 meta/recipes-multimedia/gstreamer/gstreamer1.0/run-ptest
> > >
> > > diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-ptest.inc b/meta/recipes-multimedia/gstreamer/gstreamer1.0-ptest.inc
> > > deleted file mode 100644
> > > index b698067041..0000000000
> > > --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-ptest.inc
> > > +++ /dev/null
> > > @@ -1,23 +0,0 @@
> > > -inherit ptest-gnome
> > > -
> > > -TEST_FILES_PATH = "${datadir}/installed-tests/gstreamer-1.0/test-files"
> > > -RUN_PTEST_FILE = "${D}${PTEST_PATH}/run-ptest"
> > > -
> > > -EXTRA_OEMESON += "-Dtest-files-path=${TEST_FILES_PATH}"
> > > -
> > > -GST_TEST_SUITE_NAME ?= "gstreamer-1.0"
> > > -
> > > -# Using do_install_ptest_base instead of do_install_ptest, since
> > > -# the default do_install_ptest_base is hardcoded to expect Makefiles.
> > > -do_install_ptest_base() {
> > > - # Generate run-ptest file
> > > - echo "#!/usr/bin/env sh" > "${RUN_PTEST_FILE}"
> > > - echo "gnome-desktop-testing-runner ${GST_TEST_SUITE_NAME}" >> "${RUN_PTEST_FILE}"
> > > - chmod 0755 "${RUN_PTEST_FILE}"
> > > -
> > > - # Install additional files required by tests
> > > - if [ -d "${S}/tests/files" ] ; then
> > > - install -d "${D}/${TEST_FILES_PATH}"
> > > - install -m 0644 "${S}/tests/files"/* "${D}/${TEST_FILES_PATH}"
> > > - fi
> > > -}
> > > diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-meson-Add-option-for-installed-tests.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-meson-Add-option-for-installed-tests.patch
> > > deleted file mode 100644
> > > index bf5e57249c..0000000000
> > > --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-meson-Add-option-for-installed-tests.patch
> > > +++ /dev/null
> > > @@ -1,257 +0,0 @@
> > > -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
> > > -
> > > diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-tests-respect-the-idententaion-used-in-meson.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-tests-respect-the-idententaion-used-in-meson.patch
> > > new file mode 100644
> > > index 0000000000..6f571a12d8
> > > --- /dev/null
> > > +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-tests-respect-the-idententaion-used-in-meson.patch
> > > @@ -0,0 +1,36 @@
> > > +From 122e5ac3dd16a461b6ae595605490c8f5d1c3a9d 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 1/4] tests: respect the idententaion used in meson
> > > +
> > > +Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789]
> > > +
> > > +Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
> > > +---
> > > + tests/check/meson.build | 10 +++++-----
> > > + 1 file changed, 5 insertions(+), 5 deletions(-)
> > > +
> > > +diff --git a/tests/check/meson.build b/tests/check/meson.build
> > > +index a617cf159..b2636714b 100644
> > > +--- a/tests/check/meson.build
> > > ++++ b/tests/check/meson.build
> > > +@@ -146,11 +146,11 @@ foreach t : core_tests
> > > +
> > > + if not skip_test
> > > + exe = executable(test_name, fname,
> > > +- c_args : gst_c_args + test_defines,
> > > +- cpp_args : gst_c_args + test_defines,
> > > +- include_directories : [configinc],
> > > +- link_with : link_with_libs,
> > > +- dependencies : test_deps + glib_deps + gst_deps,
> > > ++ c_args : gst_c_args + test_defines,
> > > ++ cpp_args : gst_c_args + test_defines,
> > > ++ include_directories : [configinc],
> > > ++ link_with : link_with_libs,
> > > ++ dependencies : test_deps + glib_deps + gst_deps,
> > > + )
> > > +
> > > + env = environment()
> > > +--
> > > +2.31.1
> > > +
> > > diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0005-tests-add-support-for-install-the-tests.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0005-tests-add-support-for-install-the-tests.patch
> > > new file mode 100644
> > > index 0000000000..b77fb5797f
> > > --- /dev/null
> > > +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0005-tests-add-support-for-install-the-tests.patch
> > > @@ -0,0 +1,110 @@
> > > +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
> > > +
> > > diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0006-tests-use-a-dictionaries-for-environment.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0006-tests-use-a-dictionaries-for-environment.patch
> > > new file mode 100644
> > > index 0000000000..46813cec3d
> > > --- /dev/null
> > > +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0006-tests-use-a-dictionaries-for-environment.patch
> > > @@ -0,0 +1,48 @@
> > > +From e82dedec1803922656e92285fc1bb75b2cdc0aad Mon Sep 17 00:00:00 2001
> > > +From: Jose Quaresma <quaresma.jose@gmail.com>
> > > +Date: Sat, 24 Apr 2021 10:34:47 +0100
> > > +Subject: [PATCH 3/4] tests: use a dictionaries for environment
> > > +
> > > +meson environment() can't be passed to configure_file and it is needed for installed_tests,
> > > +use a dictionary as this is simplest solution to install the environment.
> > > +
> > > +Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789]
> > > +
> > > +Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
> > > +---
> > > + tests/check/meson.build | 19 +++++++++++--------
> > > + 1 file changed, 11 insertions(+), 8 deletions(-)
> > > +
> > > +diff --git a/tests/check/meson.build b/tests/check/meson.build
> > > +index a697a7b06..f64524904 100644
> > > +--- a/tests/check/meson.build
> > > ++++ b/tests/check/meson.build
> > > +@@ -161,14 +161,17 @@ foreach t : core_tests
> > > + install: installed_tests_enabled,
> > > + )
> > > +
> > > +- env = environment()
> > > +- env.set('GST_PLUGIN_PATH_1_0', meson.build_root())
> > > +- env.set('GST_PLUGIN_SYSTEM_PATH_1_0', '')
> > > +- env.set('GST_STATE_IGNORE_ELEMENTS', '')
> > > +- env.set('CK_DEFAULT_TIMEOUT', '20')
> > > +- env.set('GST_REGISTRY', '@0@/@1@.registry'.format(meson.current_build_dir(), test_name))
> > > +- env.set('GST_PLUGIN_SCANNER_1_0', gst_scanner_dir + '/gst-plugin-scanner')
> > > +- env.set('GST_PLUGIN_LOADING_WHITELIST', 'gstreamer')
> > > ++ # environment() can't be passed to configure_file and it is needed for installed_tests
> > > ++ # use a dictionary as this is simplest solution to install the environment
> > > ++ env = {
> > > ++ 'GST_PLUGIN_PATH_1_0': meson.build_root(),
> > > ++ 'GST_PLUGIN_SYSTEM_PATH_1_0': '',
> > > ++ 'GST_STATE_IGNORE_ELEMENTS': '',
> > > ++ 'CK_DEFAULT_TIMEOUT': '20',
> > > ++ 'GST_REGISTRY': '@0@/@1@.registry'.format(meson.current_build_dir(), test_name),
> > > ++ 'GST_PLUGIN_SCANNER_1_0': gst_scanner_dir + '/gst-plugin-scanner',
> > > ++ 'GST_PLUGIN_LOADING_WHITELIST': 'gstreamer',
> > > ++ }
> > > +
> > > + if installed_tests_enabled
> > > + test_conf = configuration_data()
> > > +--
> > > +2.31.1
> > > +
> > > diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0007-tests-install-the-environment-for-installed_tests.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0007-tests-install-the-environment-for-installed_tests.patch
> > > new file mode 100644
> > > index 0000000000..eabe7bcbe1
> > > --- /dev/null
> > > +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0007-tests-install-the-environment-for-installed_tests.patch
> > > @@ -0,0 +1,58 @@
> > > +From 57d2965e979f886e03eecd7e351bf01812053971 Mon Sep 17 00:00:00 2001
> > > +From: Jose Quaresma <quaresma.jose@gmail.com>
> > > +Date: Sun, 2 May 2021 01:58:01 +0100
> > > +Subject: [PATCH 4/4] tests: install the environment for installed_tests
> > > +
> > > +- adapt the test environment for installed_tests
> > > +- install the test environment for installed_tests
> > > +- run the tests using the installed environment
> > > +
> > > +Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789]
> > > +
> > > +Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
> > > +---
> > > + template.test.in | 2 +-
> > > + tests/check/meson.build | 18 ++++++++++++++++++
> > > + 2 files changed, 19 insertions(+), 1 deletion(-)
> > > +
> > > +diff --git a/template.test.in b/template.test.in
> > > +index f701627f8..9a3fbdd09 100644
> > > +--- a/template.test.in
> > > ++++ b/template.test.in
> > > +@@ -1,3 +1,3 @@
> > > + [Test]
> > > + Type=session
> > > +-Exec=@installed_tests_dir@/@program@
> > > ++Exec=sh -c 'set -aex && source @installed_tests_dir@/@program@.env && exec @installed_tests_dir@/@program@'
> > > +diff --git a/tests/check/meson.build b/tests/check/meson.build
> > > +index f64524904..a67e0f8dd 100644
> > > +--- a/tests/check/meson.build
> > > ++++ b/tests/check/meson.build
> > > +@@ -183,6 +183,24 @@ foreach t : core_tests
> > > + install_dir: installed_tests_metadir,
> > > + configuration: test_conf
> > > + )
> > > ++
> > > ++ env += {'GST_REGISTRY': '~/.cache/gstreamer-1.0/@0@.registry'.format(test_name)}
> > > ++ configure_file(
> > > ++ output: test_name + '.env',
> > > ++ install_dir: installed_tests_execdir,
> > > ++ configuration : env,
> > > ++ )
> > > ++ # helper to convert a meson environment dictionay object exported with configure_file
> > > ++ # this also remove not needed variables for the installed tests
> > > ++ meson.add_postconf_script('sed', '-i',
> > > ++ '-e', '/^#define/!d',
> > > ++ '-e', 's/^#define //g',
> > > ++ '-e', '/^GST_PLUGIN_PATH_1_0/d',
> > > ++ '-e', '/^GST_PLUGIN_SYSTEM_PATH_1_0/d',
> > > ++ '-e', '/^GST_PLUGIN_SCANNER_1_0/d',
> > > ++ '-e', 's/ /=/',
> > > ++ join_paths(meson.current_build_dir(), test_name + '.env')
> > > ++ )
> > > + endif
> > > +
> > > + test(test_name, exe, env: env, timeout : 3 * 60)
> > > +--
> > > +2.31.1
> > > +
> > > diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/run-ptest b/meta/recipes-multimedia/gstreamer/gstreamer1.0/run-ptest
> > > new file mode 100755
> > > index 0000000000..0cfa955f03
> > > --- /dev/null
> > > +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/run-ptest
> > > @@ -0,0 +1,2 @@
> > > +#!/usr/bin/env sh
> > > +gnome-desktop-testing-runner gstreamer
> > > diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.18.4.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.18.4.bb
> > > index b275a3430b..8f135b3839 100644
> > > --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.18.4.bb
> > > +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.18.4.bb
> > > @@ -8,7 +8,7 @@ LICENSE = "LGPLv2+"
> > >
> > > DEPENDS = "glib-2.0 glib-2.0-native libxml2 bison-native flex-native"
> > >
> > > -inherit meson pkgconfig gettext upstream-version-is-even gobject-introspection
> > > +inherit meson pkgconfig gettext upstream-version-is-even gobject-introspection ptest-gnome
> > >
> > > LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \
> > > file://gst/gst.h;beginline=1;endline=21;md5=e059138481205ee2c6fc1c079c016d0d"
> > > @@ -16,10 +16,14 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \
> > > S = "${WORKDIR}/gstreamer-${PV}"
> > >
> > > SRC_URI = "https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.xz \
> > > + file://run-ptest \
> > > file://0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch \
> > > file://0002-Remove-unused-valgrind-detection.patch \
> > > file://0003-tests-seek-Don-t-use-too-strict-timeout-for-validati.patch \
> > > - file://0004-meson-Add-option-for-installed-tests.patch \
> > > + file://0004-tests-respect-the-idententaion-used-in-meson.patch \
> > > + file://0005-tests-add-support-for-install-the-tests.patch \
> > > + file://0006-tests-use-a-dictionaries-for-environment.patch \
> > > + file://0007-tests-install-the-environment-for-installed_tests.patch \
> > > "
> > > SRC_URI[sha256sum] = "9aeec99b38e310817012aa2d1d76573b787af47f8a725a65b833880a094dfbc5"
> > >
> > > @@ -68,4 +72,4 @@ FILES_${PN}-dbg += "${datadir}/gdb ${datadir}/gstreamer-1.0/gdb"
> > >
> > > CVE_PRODUCT = "gstreamer"
> > >
> > > -require gstreamer1.0-ptest.inc
> > > +PTEST_BUILD_HOST_FILES = ""
> > > --
> > > 2.31.1
> > >
> > >
> > >
> > >
>
>
>
> --
> Best regards,
>
> José Quaresma
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2021-05-04 18:34 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-03 17:10 [PATCH v2 1/3] ptest-runner: libgcc must be installed for pthread_cancel to work Jose Quaresma
2021-05-03 17:10 ` [PATCH v2 2/3] gstreamer1.0: rename patches Jose Quaresma
2021-05-03 17:10 ` [PATCH v2 3/3] gstreamer1.0: update ptest patch Jose Quaresma
2021-05-04 15:59 ` [OE-core] " Khem Raj
2021-05-04 18:24 ` Jose Quaresma
2021-05-04 18:33 ` Khem Raj
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.