[OE-core] [PATCH v3] gstreamer: enable ptest support

Burton, Ross ross.burton at intel.com
Mon Mar 19 17:34:35 UTC 2018


So the problem is that the tests explicitly search the build tree for
plugins (as they're testing the built plugins, not the system ones).

This is easily solved by deleting bits from the makefile:

--- a/tests/check/Makefile.am
+++ b/tests/check/Makefile.am
@@ -8,11 +8,7 @@ REGISTRY_ENVIRONMENT = \
   GST_REGISTRY=$(CHECK_REGISTRY)
AM_TESTS_ENVIRONMENT += \
- GST_STATE_IGNORE_ELEMENTS="$(STATE_IGNORE_ELEMENTS)"   \
- $(REGISTRY_ENVIRONMENT)                    \
-
GST_PLUGIN_SCANNER_1_0=$(top_builddir)/libs/gst/helpers/gst-plugin-scanner \
- GST_PLUGIN_SYSTEM_PATH_1_0=                    \
- GST_PLUGIN_PATH_1_0=$(top_builddir)/plugins
+ GST_STATE_IGNORE_ELEMENTS="$(STATE_IGNORE_ELEMENTS)"
plugindir = $(libdir)/gstreamer- at GST_API_VERSION@

However, now elements/fdsrc and elements/filesrc both fail, because they're
both trying to open configure.ac in the build tree.  Changing that to the
ptest Makefile should be sufficient.

Ross

On 19 March 2018 at 17:03, Burton, Ross <ross.burton at intel.com> wrote:

> You're missing a dependency on make in PN-ptest, but installing that
> results in about 20% of the tests failing.  Should they all work?
>
> Ross
>
> On 19 March 2018 at 06:49, Anuj Mittal <anuj.mittal at intel.com> wrote:
>
>> Make sure that the tests are packaged and can be executed
>> when ptest is enabled. Also, remove build host specific references
>> from Makefile.
>>
>> Signed-off-by: Anuj Mittal <anuj.mittal at intel.com>
>> ---
>>  .../files/add-a-target-to-compile-tests.patch      | 46
>> ++++++++++++++++++++++
>>  meta/recipes-multimedia/gstreamer/files/run-ptest  |  3 ++
>>  meta/recipes-multimedia/gstreamer/gstreamer1.0.inc | 25 +++++++++++-
>>  3 files changed, 72 insertions(+), 2 deletions(-)
>>  create mode 100644 meta/recipes-multimedia/gstrea
>> mer/files/add-a-target-to-compile-tests.patch
>>  create mode 100644 meta/recipes-multimedia/gstreamer/files/run-ptest
>>
>> diff --git a/meta/recipes-multimedia/gstreamer/files/add-a-target-to-compile-tests.patch
>> b/meta/recipes-multimedia/gstreamer/files/add-a-target-to-
>> compile-tests.patch
>> new file mode 100644
>> index 0000000..c918bbe
>> --- /dev/null
>> +++ b/meta/recipes-multimedia/gstreamer/files/add-a-target-to-
>> compile-tests.patch
>> @@ -0,0 +1,46 @@
>> +From e69e5408f03a2f65045a418af6605653c06ec28b Mon Sep 17 00:00:00 2001
>> +From: Anuj Mittal <anuj.mittal at intel.com>
>> +Date: Tue, 27 Feb 2018 09:27:01 +0800
>> +Subject: [PATCH] add targets for test installation
>> +
>> +Targets to make sure tests can be installed and then run on
>> +the target.
>> +
>> +Upstream-Status: Inappropriate [specific to oe setup]
>> +
>> +Signed-off-by: Anuj Mittal <anuj.mittal at intel.com>
>> +---
>> + tests/check/Makefile.am | 17 +++++++++++++++++
>> + 1 file changed, 17 insertions(+)
>> +
>> +diff --git a/tests/check/Makefile.am b/tests/check/Makefile.am
>> +index afc1591..fb5c1c9 100644
>> +--- a/tests/check/Makefile.am
>> ++++ b/tests/check/Makefile.am
>> +@@ -175,6 +175,23 @@ noinst_PROGRAMS =
>> +
>> + TESTS = $(check_PROGRAMS)
>> +
>> ++install-ptest: $(TESTS)
>> ++      @$(INSTALL) -d $(DESTDIR)
>> ++      @for dir in `find -maxdepth 1 -type d`; do \
>> ++              if [ -x $$dir/.libs ]; then \
>> ++                      $(INSTALL) -d $(DESTDIR)/$$dir; \
>> ++                      $(INSTALL_PROGRAM) $$dir/.libs/*
>> $(DESTDIR)/$$dir/; \
>> ++              fi \
>> ++      done
>> ++
>> ++runtests:
>> ++      @for b in $(TESTS); do \
>> ++              if [ -x $$b ]; then \
>> ++                      $(AM_TESTS_ENVIRONMENT) $(SHELL) test-driver
>> --test-name "$$b" \
>> ++                      --log-file $$b.log --trs-file $$b.trs $$b; \
>> ++              fi \
>> ++      done
>> ++
>> + noinst_HEADERS = \
>> +       gst/capslist.h \
>> +       gst/struct_arm.h \
>> +--
>> +2.7.4
>> +
>> diff --git a/meta/recipes-multimedia/gstreamer/files/run-ptest
>> b/meta/recipes-multimedia/gstreamer/files/run-ptest
>> new file mode 100644
>> index 0000000..473d0b6
>> --- /dev/null
>> +++ b/meta/recipes-multimedia/gstreamer/files/run-ptest
>> @@ -0,0 +1,3 @@
>> +#!/bin/sh
>> +
>> +make -k runtests
>> diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0.inc
>> b/meta/recipes-multimedia/gstreamer/gstreamer1.0.inc
>> index c2df1f3..91f5067 100644
>> --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0.inc
>> +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0.inc
>> @@ -8,7 +8,7 @@ LICENSE = "LGPLv2+"
>>
>>  DEPENDS = "glib-2.0 glib-2.0-native libcap libxml2 bison-native
>> flex-native"
>>
>> -inherit autotools pkgconfig gettext upstream-version-is-even
>> gobject-introspection gtk-doc
>> +inherit autotools pkgconfig gettext upstream-version-is-even
>> gobject-introspection gtk-doc ptest
>>
>>  # This way common/m4/introspection.m4 will come first
>>  # (it has a custom INTROSPECTION_INIT macro, and so must be used instead
>> of our common introspection.m4 file)
>> @@ -18,9 +18,12 @@ SRC_URI_append = " \
>>      file://0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch
>> \
>>      file://gtk-doc-tweaks.patch \
>>      file://0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch
>> \
>> +    file://add-a-target-to-compile-tests.patch \
>> +    file://run-ptest \
>>  "
>>
>> -PACKAGECONFIG ??= ""
>> +PACKAGECONFIG ??= "${@bb.utils.contains('PTEST_ENABLED', '1', 'tests',
>> '', d)} \
>> +                   "
>>
>>  PACKAGECONFIG[debug] = "--enable-debug,--disable-debug"
>>  PACKAGECONFIG[tests] = "--enable-tests,--disable-tests"
>> @@ -59,3 +62,21 @@ do_configure[prefuncs] += "delete_pkg_m4_file"
>>  do_compile_prepend() {
>>          export GIR_EXTRA_LIBS_PATH="${B}/gst/
>> .libs:${B}/libs/gst/base/.libs"
>>  }
>> +
>> +do_compile_ptest() {
>> +        oe_runmake build-checks
>> +}
>> +
>> +do_install_ptest() {
>> +        oe_runmake -C tests/check DESTDIR=${D}${PTEST_PATH} install-ptest
>> +        install -m 644 ${B}/tests/check/Makefile ${D}${PTEST_PATH}
>> +        install -m 755 ${S}/test-driver ${D}${PTEST_PATH}
>> +        sed -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \
>> +            -e 's|${DEBUG_PREFIX_MAP}||g' \
>> +            -e 's:${HOSTTOOLS_DIR}/::g' \
>> +            -e 's:${RECIPE_SYSROOT_NATIVE}::g' \
>> +            -e 's:${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}::g' \-e
>> 's/^Makefile:/_Makefile:/' \
>> +            -e 's/^srcdir = \(.*\)/srcdir = ./' -e 's/^top_srcdir =
>> \(.*\)/top_srcdir = ./' \
>> +            -e 's/^builddir = \(.*\)/builddir = ./' -e 's/^top_builddir
>> = \(.*\)/top_builddir = ./' \
>> +            -i ${D}${PTEST_PATH}/Makefile
>> +}
>> --
>> 2.7.4
>>
>> --
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core at lists.openembedded.org
>> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20180319/f51927d8/attachment-0002.html>


More information about the Openembedded-core mailing list