From: Vineeth TM Date: Fri, 10 Jul 2015 01:34:28 +0000 (+0900) Subject: remove submodule created by mistake. This should be created as a normal folder X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;ds=sidebyside;h=HEAD;p=platform%2Fupstream%2Fgst-devtools.git remove submodule created by mistake. This should be created as a normal folder Automated the procedure of adding the testsuites to lib folder. Now user does not need to manually copy the same to target. Change-Id: I85d508ab96ef06b14d6e96ff516d2eddd6e19c9a Signed-off-by: Vineeth TM --- diff --git a/gst-integration-testsuites b/gst-integration-testsuites deleted file mode 160000 index c7f00c5..0000000 --- a/gst-integration-testsuites +++ /dev/null @@ -1 +0,0 @@ -Subproject commit c7f00c599c5b60cc4ffc238511fb2849a2ad514f diff --git a/packaging/gst-validate.spec b/packaging/gst-validate.spec index 4c193e8..8deed2f 100755 --- a/packaging/gst-validate.spec +++ b/packaging/gst-validate.spec @@ -86,6 +86,7 @@ rm -rf %{buildroot}/tmp/dump %{_libdir}/gstreamer-1.0/validate/libgstvalidategapplication.so %{_libdir}/gstreamer-1.0/validate/libgstvalidatefaultinjection.so %{_libdir}/gst-validate-launcher/python/ +%{_libdir}/gst-validate/gst-integration-testsuites/testsuites/ %files devel %manifest validate/gst-validate-devel.manifest diff --git a/packaging/gst-validate.spec~ b/packaging/gst-validate.spec~ deleted file mode 100755 index bf8c49d..0000000 --- a/packaging/gst-validate.spec~ +++ /dev/null @@ -1,96 +0,0 @@ -Name: gst-validate -Summary: GStreamer streaming media framework base plug-ins -Version: 1.4.5 -Release: 0 -Group: Applications/Multimedia -License: LGPL -Source0: %{name}-%{version}.tar.gz -Requires(post): /sbin/ldconfig -Requires(postun): /sbin/ldconfig -BuildRequires: pkgconfig(glib-2.0) -BuildRequires: pkgconfig(gstreamer-1.0) -BuildRequires: pkgconfig(gstreamer-plugins-base-1.0) -BuildRequires: intltool -BuildRequires: python -BuildRequires: pkgconfig(libpyg-2.0) - -%description -GStreamer is a streaming media framework, based on graphs of filters which -operate on media data. Applications using this library can do anything -from real-time sound processing to playing videos, and just about anything -else media-related. Its plugin-based architecture means that new data -types or processing capabilities can be added simply by installing new -plug-ins. - - -%package devel -Summary: GStreamer Plugin Library Headers -Group: Development/Libraries -Requires: %{name} = %{version}-%{release} -Obsoletes: gstreamer-validate-devel < %{version}-%{release} -Provides: gstreamer-validate-devel = %{version}-%{release} - -%description devel -GStreamer Plugins Base library development and header files. - - -%prep -%setup -q - -%build -cd validate -%autogen --noconfigure - -export CFLAGS+=" -Wall -g -fPIC" - -%configure --prefix=/usr\ - -make %{?jobs:-j%jobs} - -%install -cd validate -rm -rf %{buildroot} -mkdir -p %{buildroot}/usr/share/license -cp COPYING %{buildroot}/usr/share/license/%{name} -%make_install -rm -rf %{buildroot}/tmp/dump - -%post -p /sbin/ldconfig - -%postun -p /sbin/ldconfig - -%files -%manifest validate/gst-validate.manifest -%defattr(-,root,root,-) -%doc validate/AUTHORS validate/COPYING validate/README validate/gst-validate.doap - -/usr/share/license/%{name} - -%{_bindir}/gst-validate-1.0 -%{_bindir}/gst-validate-launcher -%{_bindir}/gst-validate-media-check-1.0 -%{_bindir}/gst-validate-transcoding-1.0 - -/usr/share/gstreamer-1.0/validate/ -/usr/include/gstreamer-1.0/gst/validate/ - -# non-core plugins without external dependencies -%{_libdir}/libgstvalidate-1.0.so -%{_libdir}/libgstvalidate-1.0.so.0 -%{_libdir}/libgstvalidate-1.0.so.0.0.0 -%{_libdir}/libgstvalidate_preload-1.0.so -%{_libdir}/libgstvalidate_preload-1.0.so.0 -%{_libdir}/libgstvalidate_preload-1.0.so.0.0.0 -%{_libdir}/libgstvalidate-default-overrides-1.0.so -%{_libdir}/libgstvalidate-default-overrides-1.0.so.0 -%{_libdir}/libgstvalidate-default-overrides-1.0.so.0.0.0 -%{_libdir}/gstreamer-1.0/validate/libgstvalidategapplication.so -%{_libdir}/gstreamer-1.0/validate/libgstvalidatefaultinjection.so -%{_libdir}/gst-validate-launcher/python/ - -%files devel -%manifest validate/gst-validate-devel.manifest -%defattr(-,root,root,-) - -# pkg-config files -%{_libdir}/pkgconfig/gst-validate-1.0.pc diff --git a/validate/Makefile.am b/validate/Makefile.am index a035b92..3f7ff89 100644 --- a/validate/Makefile.am +++ b/validate/Makefile.am @@ -11,7 +11,8 @@ SUBDIRS = \ pkgconfig \ docs \ tests \ - po + po \ + testsuites DIST_SUBDIRS = $(SUBDIRS) diff --git a/validate/configure.ac b/validate/configure.ac index 2db82ba..4c29de2 100644 --- a/validate/configure.ac +++ b/validate/configure.ac @@ -333,6 +333,7 @@ docs/version.entities docs/validate/Makefile docs/plugins/Makefile docs/launcher/Makefile +testsuites/Makefile ]) AC_OUTPUT diff --git a/validate/launcher/utils.py b/validate/launcher/utils.py index 6d43847..2b2079e 100644 --- a/validate/launcher/utils.py +++ b/validate/launcher/utils.py @@ -31,7 +31,7 @@ from operator import itemgetter GST_SECOND = long(1000000000) DEFAULT_TIMEOUT = 30 -DEFAULT_MAIN_DIR = os.path.join(os.path.expanduser("~"), "gst-validate") +DEFAULT_MAIN_DIR = os.path.join("/usr/lib/", "gst-validate") DEFAULT_GST_QA_ASSETS = os.path.join(DEFAULT_MAIN_DIR, "gst-integration-testsuites") DISCOVERER_COMMAND = "gst-discoverer-1.0" # Use to set the duration from which a test is concidered as being 'long' diff --git a/validate/po/Makevars b/validate/po/Makevars new file mode 100644 index 0000000..1f1ea52 --- /dev/null +++ b/validate/po/Makevars @@ -0,0 +1,47 @@ +# Makefile variables for PO directory in any package using GNU gettext. + +# Usually the message domain is the same as the package name. +DOMAIN = gst-validate-1.0 + +# These two variables depend on the location of this directory. +subdir = po +top_builddir = .. + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = http://bugzilla.gnome.org/ + +# This is the list of locale categories, beyond LC_MESSAGES, for which the +# message catalogs shall be used. It is usually empty. +EXTRA_LOCALE_CATEGORIES = + +# Avoid line numbers in *.po, but keep them in *.pot. +MSGMERGE = msgmerge --no-location +MSGMERGE_UPDATE = msgmerge --no-location --update --backup=off +MSGFILTER = msgfilter --no-location + diff --git a/validate/po/POTFILES.in b/validate/po/POTFILES.in new file mode 100644 index 0000000..02f5d6c --- /dev/null +++ b/validate/po/POTFILES.in @@ -0,0 +1 @@ +gst/validate/gst-validate-report.c diff --git a/validate/testsuites/Makefile.am b/validate/testsuites/Makefile.am new file mode 100644 index 0000000..f6a1edf --- /dev/null +++ b/validate/testsuites/Makefile.am @@ -0,0 +1,10 @@ +testsuitesdir = $(libdir)/gst-validate/gst-integration-testsuites/testsuites + +SUBDIRS = + +testsuites_PYTHON = \ + __init__.py \ + testsuiteutils.py \ + validate.py \ + validateelements.py \ + validateextra.py diff --git a/validate/testsuites/__init__.py b/validate/testsuites/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/validate/testsuites/ges.py b/validate/testsuites/ges.py new file mode 100644 index 0000000..de5e679 --- /dev/null +++ b/validate/testsuites/ges.py @@ -0,0 +1,33 @@ +# -*- Mode: Python -*- vi:si:et:sw=4:sts=4:ts=4:syntax=python +# +# Copyright (c) 2014,Thibault Saunier +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the +# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, +# Boston, MA 02110-1301, USA. + +""" +The GES GstValidate default testsuite +""" +import os + + +TEST_MANAGER = "ges" + +def setup_tests(test_manager, options): + print("Setting up GES default tests") + options.add_paths(os.path.abspath(os.path.join(os.path.dirname(__file__), + "..", "medias"))) + test_manager.register_defaults() + return True diff --git a/validate/testsuites/ges.testslist b/validate/testsuites/ges.testslist new file mode 100644 index 0000000..ac19277 --- /dev/null +++ b/validate/testsuites/ges.testslist @@ -0,0 +1,198 @@ +ges.playback.scrub_backward_seeking.test_basic.audio_only.mp3_h264_mp4 +ges.playback.scrub_backward_seeking.test_basic.audio_only.raw_h264_mp4 +ges.playback.scrub_backward_seeking.test_basic.audio_only.vorbis_theora_ogg +ges.playback.scrub_backward_seeking.test_basic.audio_only.vorbis_vp8_webm +ges.playback.scrub_backward_seeking.test_basic.audio_video.mp3_h264_mp4 +ges.playback.scrub_backward_seeking.test_basic.audio_video.raw_h264_mp4 +ges.playback.scrub_backward_seeking.test_basic.audio_video.vorbis_theora_ogg +ges.playback.scrub_backward_seeking.test_basic.audio_video.vorbis_vp8_webm +ges.playback.scrub_backward_seeking.test_basic.video_only.mp3_h264_mp4 +ges.playback.scrub_backward_seeking.test_basic.video_only.raw_h264_mp4 +ges.playback.scrub_backward_seeking.test_basic.video_only.vorbis_theora_ogg +ges.playback.scrub_backward_seeking.test_basic.video_only.vorbis_vp8_webm +ges.playback.scrub_backward_seeking.test_effect.audio_video.mp3_h264_mp4 +ges.playback.scrub_backward_seeking.test_effect.audio_video.raw_h264_mp4 +ges.playback.scrub_backward_seeking.test_effect.audio_video.vorbis_theora_ogg +ges.playback.scrub_backward_seeking.test_effect.audio_video.vorbis_vp8_webm +ges.playback.scrub_backward_seeking.test_mixing.audio_only.mp3_h264_mp4 +ges.playback.scrub_backward_seeking.test_mixing.audio_video.mp3_h264_mp4 +ges.playback.scrub_backward_seeking.test_mixing.audio_video.raw_h264_mp4 +ges.playback.scrub_backward_seeking.test_mixing.audio_video.vorbis_theora_ogg +ges.playback.scrub_backward_seeking.test_mixing.audio_video.vorbis_vp8_webm +ges.playback.scrub_backward_seeking.test_mixing.video_only.mp3_h264_mp4 +ges.playback.scrub_backward_seeking.test_mixing.video_only.raw_h264_mp4 +ges.playback.scrub_backward_seeking.test_mixing.video_only.vorbis_vp8_webm +ges.playback.scrub_backward_seeking.test_simple.audio_video.svg_mp3_h264_mp4 +ges.playback.scrub_backward_seeking.test_title.audio_video.mp3_h264_mp4 +ges.playback.scrub_backward_seeking.test_title.audio_video.raw_h264_mp4 +ges.playback.scrub_backward_seeking.test_title.audio_video.vorbis_theora_ogg +ges.playback.scrub_backward_seeking.test_title.audio_video.vorbis_vp8_webm +ges.playback.scrub_backward_seeking.test_transition.audio_video.mp3_h264_mp4 +ges.playback.scrub_backward_seeking.test_transition.audio_video.raw_h264_mp4 +ges.playback.scrub_backward_seeking.test_transition.audio_video.vorbis_theora_ogg +ges.playback.scrub_backward_seeking.test_transition.audio_video.vorbis_vp8_webm +ges.playback.scrub_forward_seeking.test_basic.audio_only.mp3_h264_mp4 +ges.playback.scrub_forward_seeking.test_basic.audio_only.raw_h264_mp4 +ges.playback.scrub_forward_seeking.test_basic.audio_only.vorbis_theora_ogg +ges.playback.scrub_forward_seeking.test_basic.audio_only.vorbis_vp8_webm +ges.playback.scrub_forward_seeking.test_basic.audio_video.mp3_h264_mp4 +ges.playback.scrub_forward_seeking.test_basic.audio_video.raw_h264_mp4 +ges.playback.scrub_forward_seeking.test_basic.audio_video.vorbis_theora_ogg +ges.playback.scrub_forward_seeking.test_basic.audio_video.vorbis_vp8_webm +ges.playback.scrub_forward_seeking.test_basic.video_only.mp3_h264_mp4 +ges.playback.scrub_forward_seeking.test_basic.video_only.raw_h264_mp4 +ges.playback.scrub_forward_seeking.test_basic.video_only.vorbis_theora_ogg +ges.playback.scrub_forward_seeking.test_basic.video_only.vorbis_vp8_webm +ges.playback.scrub_forward_seeking.test_effect.audio_video.mp3_h264_mp4 +ges.playback.scrub_forward_seeking.test_effect.audio_video.raw_h264_mp4 +ges.playback.scrub_forward_seeking.test_effect.audio_video.vorbis_theora_ogg +ges.playback.scrub_forward_seeking.test_effect.audio_video.vorbis_vp8_webm +ges.playback.scrub_forward_seeking.test_mixing.audio_only.mp3_h264_mp4 +ges.playback.scrub_forward_seeking.test_mixing.audio_video.mp3_h264_mp4 +ges.playback.scrub_forward_seeking.test_mixing.audio_video.raw_h264_mp4 +ges.playback.scrub_forward_seeking.test_mixing.audio_video.vorbis_theora_ogg +ges.playback.scrub_forward_seeking.test_mixing.audio_video.vorbis_vp8_webm +ges.playback.scrub_forward_seeking.test_mixing.video_only.mp3_h264_mp4 +ges.playback.scrub_forward_seeking.test_mixing.video_only.raw_h264_mp4 +ges.playback.scrub_forward_seeking.test_mixing.video_only.vorbis_vp8_webm +ges.playback.scrub_forward_seeking.test_simple.audio_video.svg_mp3_h264_mp4 +ges.playback.scrub_forward_seeking.test_title.audio_video.mp3_h264_mp4 +ges.playback.scrub_forward_seeking.test_title.audio_video.raw_h264_mp4 +ges.playback.scrub_forward_seeking.test_title.audio_video.vorbis_theora_ogg +ges.playback.scrub_forward_seeking.test_title.audio_video.vorbis_vp8_webm +ges.playback.scrub_forward_seeking.test_transition.audio_video.mp3_h264_mp4 +ges.playback.scrub_forward_seeking.test_transition.audio_video.raw_h264_mp4 +ges.playback.scrub_forward_seeking.test_transition.audio_video.vorbis_theora_ogg +ges.playback.scrub_forward_seeking.test_transition.audio_video.vorbis_vp8_webm +ges.render.mp3_and_h264_in_mp4.test_basic.audio_only.mp3_h264_mp4 +ges.render.mp3_and_h264_in_mp4.test_basic.audio_only.raw_h264_mp4 +ges.render.mp3_and_h264_in_mp4.test_basic.audio_only.vorbis_theora_ogg +ges.render.mp3_and_h264_in_mp4.test_basic.audio_only.vorbis_vp8_webm +ges.render.mp3_and_h264_in_mp4.test_basic.audio_video.mp3_h264_mp4 +ges.render.mp3_and_h264_in_mp4.test_basic.audio_video.raw_h264_mp4 +ges.render.mp3_and_h264_in_mp4.test_basic.audio_video.vorbis_theora_ogg +ges.render.mp3_and_h264_in_mp4.test_basic.audio_video.vorbis_vp8_webm +ges.render.mp3_and_h264_in_mp4.test_basic.video_only.mp3_h264_mp4 +ges.render.mp3_and_h264_in_mp4.test_basic.video_only.raw_h264_mp4 +ges.render.mp3_and_h264_in_mp4.test_basic.video_only.vorbis_theora_ogg +ges.render.mp3_and_h264_in_mp4.test_basic.video_only.vorbis_vp8_webm +ges.render.mp3_and_h264_in_mp4.test_effect.audio_video.mp3_h264_mp4 +ges.render.mp3_and_h264_in_mp4.test_effect.audio_video.raw_h264_mp4 +ges.render.mp3_and_h264_in_mp4.test_effect.audio_video.vorbis_theora_ogg +ges.render.mp3_and_h264_in_mp4.test_effect.audio_video.vorbis_vp8_webm +ges.render.mp3_and_h264_in_mp4.test_mixing.audio_only.mp3_h264_mp4 +ges.render.mp3_and_h264_in_mp4.test_mixing.audio_video.mp3_h264_mp4 +ges.render.mp3_and_h264_in_mp4.test_mixing.audio_video.raw_h264_mp4 +ges.render.mp3_and_h264_in_mp4.test_mixing.audio_video.vorbis_theora_ogg +ges.render.mp3_and_h264_in_mp4.test_mixing.audio_video.vorbis_vp8_webm +ges.render.mp3_and_h264_in_mp4.test_mixing.video_only.mp3_h264_mp4 +ges.render.mp3_and_h264_in_mp4.test_mixing.video_only.raw_h264_mp4 +ges.render.mp3_and_h264_in_mp4.test_mixing.video_only.vorbis_vp8_webm +ges.render.mp3_and_h264_in_mp4.test_simple.audio_video.svg_mp3_h264_mp4 +ges.render.mp3_and_h264_in_mp4.test_title.audio_video.mp3_h264_mp4 +ges.render.mp3_and_h264_in_mp4.test_title.audio_video.raw_h264_mp4 +ges.render.mp3_and_h264_in_mp4.test_title.audio_video.vorbis_theora_ogg +ges.render.mp3_and_h264_in_mp4.test_title.audio_video.vorbis_vp8_webm +ges.render.mp3_and_h264_in_mp4.test_transition.audio_video.mp3_h264_mp4 +ges.render.mp3_and_h264_in_mp4.test_transition.audio_video.raw_h264_mp4 +ges.render.mp3_and_h264_in_mp4.test_transition.audio_video.vorbis_theora_ogg +ges.render.mp3_and_h264_in_mp4.test_transition.audio_video.vorbis_vp8_webm +ges.render.vorbis_and_h264_in_mkv.test_basic.audio_only.mp3_h264_mp4 +ges.render.vorbis_and_h264_in_mkv.test_basic.audio_only.raw_h264_mp4 +ges.render.vorbis_and_h264_in_mkv.test_basic.audio_only.vorbis_theora_ogg +ges.render.vorbis_and_h264_in_mkv.test_basic.audio_only.vorbis_vp8_webm +ges.render.vorbis_and_h264_in_mkv.test_basic.audio_video.mp3_h264_mp4 +ges.render.vorbis_and_h264_in_mkv.test_basic.audio_video.raw_h264_mp4 +ges.render.vorbis_and_h264_in_mkv.test_basic.audio_video.vorbis_theora_ogg +ges.render.vorbis_and_h264_in_mkv.test_basic.audio_video.vorbis_vp8_webm +ges.render.vorbis_and_h264_in_mkv.test_basic.video_only.mp3_h264_mp4 +ges.render.vorbis_and_h264_in_mkv.test_basic.video_only.raw_h264_mp4 +ges.render.vorbis_and_h264_in_mkv.test_basic.video_only.vorbis_theora_ogg +ges.render.vorbis_and_h264_in_mkv.test_basic.video_only.vorbis_vp8_webm +ges.render.vorbis_and_h264_in_mkv.test_effect.audio_video.mp3_h264_mp4 +ges.render.vorbis_and_h264_in_mkv.test_effect.audio_video.raw_h264_mp4 +ges.render.vorbis_and_h264_in_mkv.test_effect.audio_video.vorbis_theora_ogg +ges.render.vorbis_and_h264_in_mkv.test_effect.audio_video.vorbis_vp8_webm +ges.render.vorbis_and_h264_in_mkv.test_mixing.audio_only.mp3_h264_mp4 +ges.render.vorbis_and_h264_in_mkv.test_mixing.audio_video.mp3_h264_mp4 +ges.render.vorbis_and_h264_in_mkv.test_mixing.audio_video.raw_h264_mp4 +ges.render.vorbis_and_h264_in_mkv.test_mixing.audio_video.vorbis_theora_ogg +ges.render.vorbis_and_h264_in_mkv.test_mixing.audio_video.vorbis_vp8_webm +ges.render.vorbis_and_h264_in_mkv.test_mixing.video_only.mp3_h264_mp4 +ges.render.vorbis_and_h264_in_mkv.test_mixing.video_only.raw_h264_mp4 +ges.render.vorbis_and_h264_in_mkv.test_mixing.video_only.vorbis_vp8_webm +ges.render.vorbis_and_h264_in_mkv.test_simple.audio_video.svg_mp3_h264_mp4 +ges.render.vorbis_and_h264_in_mkv.test_title.audio_video.mp3_h264_mp4 +ges.render.vorbis_and_h264_in_mkv.test_title.audio_video.raw_h264_mp4 +ges.render.vorbis_and_h264_in_mkv.test_title.audio_video.vorbis_theora_ogg +ges.render.vorbis_and_h264_in_mkv.test_title.audio_video.vorbis_vp8_webm +ges.render.vorbis_and_h264_in_mkv.test_transition.audio_video.mp3_h264_mp4 +ges.render.vorbis_and_h264_in_mkv.test_transition.audio_video.raw_h264_mp4 +ges.render.vorbis_and_h264_in_mkv.test_transition.audio_video.vorbis_theora_ogg +ges.render.vorbis_and_h264_in_mkv.test_transition.audio_video.vorbis_vp8_webm +ges.render.vorbis_and_theora_in_ogg.test_basic.audio_only.mp3_h264_mp4 +ges.render.vorbis_and_theora_in_ogg.test_basic.audio_only.raw_h264_mp4 +ges.render.vorbis_and_theora_in_ogg.test_basic.audio_only.vorbis_theora_ogg +ges.render.vorbis_and_theora_in_ogg.test_basic.audio_only.vorbis_vp8_webm +ges.render.vorbis_and_theora_in_ogg.test_basic.audio_video.mp3_h264_mp4 +ges.render.vorbis_and_theora_in_ogg.test_basic.audio_video.raw_h264_mp4 +ges.render.vorbis_and_theora_in_ogg.test_basic.audio_video.vorbis_theora_ogg +ges.render.vorbis_and_theora_in_ogg.test_basic.audio_video.vorbis_vp8_webm +ges.render.vorbis_and_theora_in_ogg.test_basic.video_only.mp3_h264_mp4 +ges.render.vorbis_and_theora_in_ogg.test_basic.video_only.raw_h264_mp4 +ges.render.vorbis_and_theora_in_ogg.test_basic.video_only.vorbis_theora_ogg +ges.render.vorbis_and_theora_in_ogg.test_basic.video_only.vorbis_vp8_webm +ges.render.vorbis_and_theora_in_ogg.test_effect.audio_video.mp3_h264_mp4 +ges.render.vorbis_and_theora_in_ogg.test_effect.audio_video.raw_h264_mp4 +ges.render.vorbis_and_theora_in_ogg.test_effect.audio_video.vorbis_theora_ogg +ges.render.vorbis_and_theora_in_ogg.test_effect.audio_video.vorbis_vp8_webm +ges.render.vorbis_and_theora_in_ogg.test_mixing.audio_only.mp3_h264_mp4 +ges.render.vorbis_and_theora_in_ogg.test_mixing.audio_video.mp3_h264_mp4 +ges.render.vorbis_and_theora_in_ogg.test_mixing.audio_video.raw_h264_mp4 +ges.render.vorbis_and_theora_in_ogg.test_mixing.audio_video.vorbis_theora_ogg +ges.render.vorbis_and_theora_in_ogg.test_mixing.audio_video.vorbis_vp8_webm +ges.render.vorbis_and_theora_in_ogg.test_mixing.video_only.mp3_h264_mp4 +ges.render.vorbis_and_theora_in_ogg.test_mixing.video_only.raw_h264_mp4 +ges.render.vorbis_and_theora_in_ogg.test_mixing.video_only.vorbis_vp8_webm +ges.render.vorbis_and_theora_in_ogg.test_simple.audio_video.svg_mp3_h264_mp4 +ges.render.vorbis_and_theora_in_ogg.test_title.audio_video.mp3_h264_mp4 +ges.render.vorbis_and_theora_in_ogg.test_title.audio_video.raw_h264_mp4 +ges.render.vorbis_and_theora_in_ogg.test_title.audio_video.vorbis_theora_ogg +ges.render.vorbis_and_theora_in_ogg.test_title.audio_video.vorbis_vp8_webm +ges.render.vorbis_and_theora_in_ogg.test_transition.audio_video.mp3_h264_mp4 +ges.render.vorbis_and_theora_in_ogg.test_transition.audio_video.raw_h264_mp4 +ges.render.vorbis_and_theora_in_ogg.test_transition.audio_video.vorbis_theora_ogg +ges.render.vorbis_and_theora_in_ogg.test_transition.audio_video.vorbis_vp8_webm +ges.render.vorbis_and_vp8_in_webm.test_basic.audio_only.mp3_h264_mp4 +ges.render.vorbis_and_vp8_in_webm.test_basic.audio_only.raw_h264_mp4 +ges.render.vorbis_and_vp8_in_webm.test_basic.audio_only.vorbis_theora_ogg +ges.render.vorbis_and_vp8_in_webm.test_basic.audio_only.vorbis_vp8_webm +ges.render.vorbis_and_vp8_in_webm.test_basic.audio_video.mp3_h264_mp4 +ges.render.vorbis_and_vp8_in_webm.test_basic.audio_video.raw_h264_mp4 +ges.render.vorbis_and_vp8_in_webm.test_basic.audio_video.vorbis_theora_ogg +ges.render.vorbis_and_vp8_in_webm.test_basic.audio_video.vorbis_vp8_webm +ges.render.vorbis_and_vp8_in_webm.test_basic.video_only.mp3_h264_mp4 +ges.render.vorbis_and_vp8_in_webm.test_basic.video_only.raw_h264_mp4 +ges.render.vorbis_and_vp8_in_webm.test_basic.video_only.vorbis_theora_ogg +ges.render.vorbis_and_vp8_in_webm.test_basic.video_only.vorbis_vp8_webm +ges.render.vorbis_and_vp8_in_webm.test_effect.audio_video.mp3_h264_mp4 +ges.render.vorbis_and_vp8_in_webm.test_effect.audio_video.raw_h264_mp4 +ges.render.vorbis_and_vp8_in_webm.test_effect.audio_video.vorbis_theora_ogg +ges.render.vorbis_and_vp8_in_webm.test_effect.audio_video.vorbis_vp8_webm +ges.render.vorbis_and_vp8_in_webm.test_mixing.audio_only.mp3_h264_mp4 +ges.render.vorbis_and_vp8_in_webm.test_mixing.audio_video.mp3_h264_mp4 +ges.render.vorbis_and_vp8_in_webm.test_mixing.audio_video.raw_h264_mp4 +ges.render.vorbis_and_vp8_in_webm.test_mixing.audio_video.vorbis_theora_ogg +ges.render.vorbis_and_vp8_in_webm.test_mixing.audio_video.vorbis_vp8_webm +ges.render.vorbis_and_vp8_in_webm.test_mixing.video_only.mp3_h264_mp4 +ges.render.vorbis_and_vp8_in_webm.test_mixing.video_only.raw_h264_mp4 +ges.render.vorbis_and_vp8_in_webm.test_mixing.video_only.vorbis_vp8_webm +ges.render.vorbis_and_vp8_in_webm.test_simple.audio_video.svg_mp3_h264_mp4 +ges.render.vorbis_and_vp8_in_webm.test_title.audio_video.mp3_h264_mp4 +ges.render.vorbis_and_vp8_in_webm.test_title.audio_video.raw_h264_mp4 +ges.render.vorbis_and_vp8_in_webm.test_title.audio_video.vorbis_theora_ogg +ges.render.vorbis_and_vp8_in_webm.test_title.audio_video.vorbis_vp8_webm +ges.render.vorbis_and_vp8_in_webm.test_transition.audio_video.mp3_h264_mp4 +ges.render.vorbis_and_vp8_in_webm.test_transition.audio_video.raw_h264_mp4 +ges.render.vorbis_and_vp8_in_webm.test_transition.audio_video.vorbis_theora_ogg +ges.render.vorbis_and_vp8_in_webm.test_transition.audio_video.vorbis_vp8_webm diff --git a/validate/testsuites/gesextras.py b/validate/testsuites/gesextras.py new file mode 100644 index 0000000..cbf7c44 --- /dev/null +++ b/validate/testsuites/gesextras.py @@ -0,0 +1,39 @@ +# -*- Mode: Python -*- vi:si:et:sw=4:sts=4:ts=4:syntax=python +# +# Copyright (c) 2014,Thibault Saunier +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the +# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, +# Boston, MA 02110-1301, USA. + +""" +The GES GstValidate testsuite with bigger and more complex projects +""" +import os + +TEST_MANAGER = "ges" + +def setup_tests(test_manager, options): + print("Setting up GES extra tests") + + extra_projects_path = os.path.abspath(os.path.join( + os.path.dirname(__file__), + "..", + "ges", + "ges-extra-projects")) + options.add_paths(os.path.abspath(os.path.join(os.path.dirname(__file__), + "..", "medias"))) + test_manager.register_defaults(extra_projects_path) + return True + diff --git a/validate/testsuites/gesextras.testslist b/validate/testsuites/gesextras.testslist new file mode 100644 index 0000000..73aa78f --- /dev/null +++ b/validate/testsuites/gesextras.testslist @@ -0,0 +1,24 @@ +ges.playback.scrub_backward_seeking.desktop_summit_2011 +ges.playback.scrub_backward_seeking.desktop_summit_2011_audio_only +ges.playback.scrub_backward_seeking.pitivi-0.91.motivational +ges.playback.scrub_backward_seeking.the_sausage_being_made +ges.playback.scrub_forward_seeking.desktop_summit_2011 +ges.playback.scrub_forward_seeking.desktop_summit_2011_audio_only +ges.playback.scrub_forward_seeking.pitivi-0.91.motivational +ges.playback.scrub_forward_seeking.the_sausage_being_made +ges.render.mp3_and_h264_in_mp4.desktop_summit_2011 +ges.render.mp3_and_h264_in_mp4.desktop_summit_2011_audio_only +ges.render.mp3_and_h264_in_mp4.pitivi-0.91.motivational +ges.render.mp3_and_h264_in_mp4.the_sausage_being_made +ges.render.vorbis_and_h264_in_mkv.desktop_summit_2011 +ges.render.vorbis_and_h264_in_mkv.desktop_summit_2011_audio_only +ges.render.vorbis_and_h264_in_mkv.pitivi-0.91.motivational +ges.render.vorbis_and_h264_in_mkv.the_sausage_being_made +ges.render.vorbis_and_theora_in_ogg.desktop_summit_2011 +ges.render.vorbis_and_theora_in_ogg.desktop_summit_2011_audio_only +ges.render.vorbis_and_theora_in_ogg.pitivi-0.91.motivational +ges.render.vorbis_and_theora_in_ogg.the_sausage_being_made +ges.render.vorbis_and_vp8_in_webm.desktop_summit_2011 +ges.render.vorbis_and_vp8_in_webm.desktop_summit_2011_audio_only +ges.render.vorbis_and_vp8_in_webm.pitivi-0.91.motivational +ges.render.vorbis_and_vp8_in_webm.the_sausage_being_made diff --git a/validate/testsuites/testsuiteutils.py b/validate/testsuites/testsuiteutils.py new file mode 100644 index 0000000..acd8c80 --- /dev/null +++ b/validate/testsuites/testsuiteutils.py @@ -0,0 +1,38 @@ +# -*- Mode: Python -*- vi:si:et:sw=4:sts=4:ts=4:syntax=python +# +# Copyright (c) 2015, Thibault Saunier +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the +# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, +# Boston, MA 02110-1301, USA. + + +import subprocess +from launcher import utils + +SYNC_ASSETS_COMMAND = "git fetch origin && git checkout origin/master && git annex get ." + +def update_assets(assets_dir): + try: + utils.launch_command("cd %s && %s" % (assets_dir, SYNC_ASSETS_COMMAND), + fails=True) + + except subprocess.CalledProcessError as e: + utils.printc("Could not update assets repository\n\nError: %s" + "\n\nMAKE SURE YOU HAVE git-annex INSTALLED!" % (e), + utils.Colors.FAIL, True) + + return False + + return True diff --git a/validate/testsuites/validate.py b/validate/testsuites/validate.py new file mode 100644 index 0000000..633cf75 --- /dev/null +++ b/validate/testsuites/validate.py @@ -0,0 +1,56 @@ +# -*- Mode: Python -*- vi:si:et:sw=4:sts=4:ts=4:syntax=python +# +# Copyright (c) 2014,Thibault Saunier +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the +# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, +# Boston, MA 02110-1301, USA. + +""" +The GstValidate default testsuite +""" + +import os +from testsuiteutils import update_assets + + +TEST_MANAGER = "validate" + +BLACKLIST = [('validate.file.transcode.to_vorbis_and_vp8_in_webm.GH1_00094_1920x1280_MTS', + 'Got error: Internal data stream error. -- Debug message: mpegtsbase.c(1371):' + 'mpegts_base_loop (): ...: stream stopped, reason not-negotiated')] + + +def setup_tests(test_manager, options): + print("Setting up GstValidate default tests") + + assets_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "medias", "defaults")) + if options.sync: + if not update_assets(assets_dir): + return False + + options.add_paths(assets_dir) + options.set_http_server_dir(os.path.abspath(os.path.join(os.path.dirname(__file__), + "..", "medias"))) + test_manager.set_default_blacklist(BLACKLIST) + test_manager.register_defaults() + + valid_mixing_scenarios = ["play_15s", + "fast_forward", + "seek_forward", + "seek_backward", + "seek_with_stop", + "scrub_forward_seeking"] + + return True diff --git a/validate/testsuites/validate.testslist b/validate/testsuites/validate.testslist new file mode 100644 index 0000000..1fcb582 --- /dev/null +++ b/validate/testsuites/validate.testslist @@ -0,0 +1,322 @@ +validate.file.audiomixer.simple.fast_forward.basic +validate.file.audiomixer.simple.play_15s.basic +validate.file.audiomixer.simple.scrub_forward_seeking.basic +validate.file.audiomixer.simple.seek_backward.basic +validate.file.audiomixer.simple.seek_forward.basic +validate.file.audiomixer.simple.seek_with_stop.basic +validate.file.compositor.simple.fast_forward.bgra +validate.file.compositor.simple.fast_forward.synchronized +validate.file.compositor.simple.play_15s.bgra +validate.file.compositor.simple.play_15s.synchronized +validate.file.compositor.simple.scrub_forward_seeking.bgra +validate.file.compositor.simple.seek_backward.bgra +validate.file.compositor.simple.seek_backward.synchronized +validate.file.compositor.simple.seek_forward.bgra +validate.file.compositor.simple.seek_forward.synchronized +validate.file.compositor.simple.seek_with_stop.bgra +validate.file.compositor.simple.seek_with_stop.synchronized +validate.file.glvideomixer.simple.fast_forward.bgra +validate.file.glvideomixer.simple.fast_forward.synchronized +validate.file.glvideomixer.simple.play_15s.bgra +validate.file.glvideomixer.simple.play_15s.synchronized +validate.file.glvideomixer.simple.scrub_forward_seeking.bgra +validate.file.glvideomixer.simple.seek_backward.bgra +validate.file.glvideomixer.simple.seek_backward.synchronized +validate.file.glvideomixer.simple.seek_forward.bgra +validate.file.glvideomixer.simple.seek_forward.synchronized +validate.file.glvideomixer.simple.seek_with_stop.bgra +validate.file.glvideomixer.simple.seek_with_stop.synchronized +validate.file.media_check.GH1_00094_1920x1280_MTS +validate.file.media_check.bowlerhatdancer_sleepytom_SGP_mjpeg_avi +validate.file.media_check.mp3_h264_0_mp4 +validate.file.media_check.op1a-mpeg2-wave_hd_mxf +validate.file.media_check.op1a-pal-mpeg2_mxf +validate.file.media_check.op2b-mpeg2-wave_hd_mxf +validate.file.media_check.png_png +validate.file.media_check.raw_h264_0_mp4 +validate.file.media_check.raw_video_avi +validate.file.media_check.raw_video_mkv +validate.file.media_check.raw_video_mov +validate.file.media_check.samples_multimedia_cx_asf_wmv_elephant_asf +validate.file.media_check.samples_multimedia_cx_asf_wmv_low_fps_cheaterlow_wmv +validate.file.media_check.samples_multimedia_cx_flac_Yesterday_flac +validate.file.media_check.samples_multimedia_cx_testsuite_iv31_avi +validate.file.media_check.test-mpeg2-mp2_mxf +validate.file.media_check.test-mpeg2-mp3_mxf +validate.file.media_check.test-uncompressed-rgb_mxf +validate.file.media_check.test5_mkv +validate.file.media_check.tron_en_ge_aac_h264_ts +validate.file.media_check.vorbis_theora_0_ogg +validate.file.media_check.vorbis_vp8_0_webm +validate.file.media_check.xdcam-pal-d10-imx30_mxf +validate.file.playback.change_state_intensive.GH1_00094_1920x1280_MTS +validate.file.playback.change_state_intensive.bowlerhatdancer_sleepytom_SGP_mjpeg_avi +validate.file.playback.change_state_intensive.mp3_h264_0_mp4 +validate.file.playback.change_state_intensive.op1a-mpeg2-wave_hd_mxf +validate.file.playback.change_state_intensive.op1a-pal-mpeg2_mxf +validate.file.playback.change_state_intensive.op2b-mpeg2-wave_hd_mxf +validate.file.playback.change_state_intensive.raw_h264_0_mp4 +validate.file.playback.change_state_intensive.raw_video_avi +validate.file.playback.change_state_intensive.raw_video_mkv +validate.file.playback.change_state_intensive.raw_video_mov +validate.file.playback.change_state_intensive.samples_multimedia_cx_asf_wmv_elephant_asf +validate.file.playback.change_state_intensive.samples_multimedia_cx_asf_wmv_low_fps_cheaterlow_wmv +validate.file.playback.change_state_intensive.samples_multimedia_cx_flac_Yesterday_flac +validate.file.playback.change_state_intensive.samples_multimedia_cx_testsuite_iv31_avi +validate.file.playback.change_state_intensive.test-mpeg2-mp2_mxf +validate.file.playback.change_state_intensive.test-mpeg2-mp3_mxf +validate.file.playback.change_state_intensive.test-uncompressed-rgb_mxf +validate.file.playback.change_state_intensive.test5_mkv +validate.file.playback.change_state_intensive.tron_en_ge_aac_h264_ts +validate.file.playback.change_state_intensive.vorbis_theora_0_ogg +validate.file.playback.change_state_intensive.vorbis_vp8_0_webm +validate.file.playback.change_state_intensive.xdcam-pal-d10-imx30_mxf +validate.file.playback.disable_subtitle_track_while_paused.test5_mkv +validate.file.playback.fast_forward.GH1_00094_1920x1280_MTS +validate.file.playback.fast_forward.bowlerhatdancer_sleepytom_SGP_mjpeg_avi +validate.file.playback.fast_forward.mp3_h264_0_mp4 +validate.file.playback.fast_forward.raw_h264_0_mp4 +validate.file.playback.fast_forward.samples_multimedia_cx_asf_wmv_elephant_asf +validate.file.playback.fast_forward.samples_multimedia_cx_asf_wmv_low_fps_cheaterlow_wmv +validate.file.playback.fast_forward.samples_multimedia_cx_flac_Yesterday_flac +validate.file.playback.fast_forward.samples_multimedia_cx_testsuite_iv31_avi +validate.file.playback.fast_forward.test5_mkv +validate.file.playback.fast_forward.tron_en_ge_aac_h264_ts +validate.file.playback.fast_forward.vorbis_theora_0_ogg +validate.file.playback.fast_forward.vorbis_vp8_0_webm +validate.file.playback.play_15s.GH1_00094_1920x1280_MTS +validate.file.playback.play_15s.bowlerhatdancer_sleepytom_SGP_mjpeg_avi +validate.file.playback.play_15s.mp3_h264_0_mp4 +validate.file.playback.play_15s.op1a-mpeg2-wave_hd_mxf +validate.file.playback.play_15s.op1a-pal-mpeg2_mxf +validate.file.playback.play_15s.op2b-mpeg2-wave_hd_mxf +validate.file.playback.play_15s.png_png +validate.file.playback.play_15s.raw_h264_0_mp4 +validate.file.playback.play_15s.raw_video_avi +validate.file.playback.play_15s.raw_video_mkv +validate.file.playback.play_15s.raw_video_mov +validate.file.playback.play_15s.samples_multimedia_cx_asf_wmv_elephant_asf +validate.file.playback.play_15s.samples_multimedia_cx_asf_wmv_low_fps_cheaterlow_wmv +validate.file.playback.play_15s.samples_multimedia_cx_flac_Yesterday_flac +validate.file.playback.play_15s.samples_multimedia_cx_testsuite_iv31_avi +validate.file.playback.play_15s.test-mpeg2-mp2_mxf +validate.file.playback.play_15s.test-mpeg2-mp3_mxf +validate.file.playback.play_15s.test-uncompressed-rgb_mxf +validate.file.playback.play_15s.test5_mkv +validate.file.playback.play_15s.tron_en_ge_aac_h264_ts +validate.file.playback.play_15s.vorbis_theora_0_ogg +validate.file.playback.play_15s.vorbis_vp8_0_webm +validate.file.playback.play_15s.xdcam-pal-d10-imx30_mxf +validate.file.playback.reverse_playback.bowlerhatdancer_sleepytom_SGP_mjpeg_avi +validate.file.playback.reverse_playback.mp3_h264_0_mp4 +validate.file.playback.reverse_playback.raw_h264_0_mp4 +validate.file.playback.reverse_playback.raw_video_avi +validate.file.playback.reverse_playback.raw_video_mov +validate.file.playback.reverse_playback.samples_multimedia_cx_testsuite_iv31_avi +validate.file.playback.reverse_playback.vorbis_theora_0_ogg +validate.file.playback.scrub_forward_seeking.GH1_00094_1920x1280_MTS +validate.file.playback.scrub_forward_seeking.bowlerhatdancer_sleepytom_SGP_mjpeg_avi +validate.file.playback.scrub_forward_seeking.mp3_h264_0_mp4 +validate.file.playback.scrub_forward_seeking.op1a-mpeg2-wave_hd_mxf +validate.file.playback.scrub_forward_seeking.op1a-pal-mpeg2_mxf +validate.file.playback.scrub_forward_seeking.op2b-mpeg2-wave_hd_mxf +validate.file.playback.scrub_forward_seeking.raw_h264_0_mp4 +validate.file.playback.scrub_forward_seeking.raw_video_avi +validate.file.playback.scrub_forward_seeking.raw_video_mkv +validate.file.playback.scrub_forward_seeking.raw_video_mov +validate.file.playback.scrub_forward_seeking.samples_multimedia_cx_asf_wmv_elephant_asf +validate.file.playback.scrub_forward_seeking.samples_multimedia_cx_asf_wmv_low_fps_cheaterlow_wmv +validate.file.playback.scrub_forward_seeking.samples_multimedia_cx_flac_Yesterday_flac +validate.file.playback.scrub_forward_seeking.samples_multimedia_cx_testsuite_iv31_avi +validate.file.playback.scrub_forward_seeking.test-mpeg2-mp2_mxf +validate.file.playback.scrub_forward_seeking.test-mpeg2-mp3_mxf +validate.file.playback.scrub_forward_seeking.test-uncompressed-rgb_mxf +validate.file.playback.scrub_forward_seeking.test5_mkv +validate.file.playback.scrub_forward_seeking.tron_en_ge_aac_h264_ts +validate.file.playback.scrub_forward_seeking.vorbis_theora_0_ogg +validate.file.playback.scrub_forward_seeking.vorbis_vp8_0_webm +validate.file.playback.scrub_forward_seeking.xdcam-pal-d10-imx30_mxf +validate.file.playback.seek_backward.GH1_00094_1920x1280_MTS +validate.file.playback.seek_backward.bowlerhatdancer_sleepytom_SGP_mjpeg_avi +validate.file.playback.seek_backward.mp3_h264_0_mp4 +validate.file.playback.seek_backward.op1a-mpeg2-wave_hd_mxf +validate.file.playback.seek_backward.op1a-pal-mpeg2_mxf +validate.file.playback.seek_backward.op2b-mpeg2-wave_hd_mxf +validate.file.playback.seek_backward.raw_h264_0_mp4 +validate.file.playback.seek_backward.raw_video_avi +validate.file.playback.seek_backward.raw_video_mkv +validate.file.playback.seek_backward.raw_video_mov +validate.file.playback.seek_backward.samples_multimedia_cx_asf_wmv_elephant_asf +validate.file.playback.seek_backward.samples_multimedia_cx_asf_wmv_low_fps_cheaterlow_wmv +validate.file.playback.seek_backward.samples_multimedia_cx_flac_Yesterday_flac +validate.file.playback.seek_backward.samples_multimedia_cx_testsuite_iv31_avi +validate.file.playback.seek_backward.test-mpeg2-mp2_mxf +validate.file.playback.seek_backward.test-mpeg2-mp3_mxf +validate.file.playback.seek_backward.test-uncompressed-rgb_mxf +validate.file.playback.seek_backward.test5_mkv +validate.file.playback.seek_backward.tron_en_ge_aac_h264_ts +validate.file.playback.seek_backward.vorbis_theora_0_ogg +validate.file.playback.seek_backward.vorbis_vp8_0_webm +validate.file.playback.seek_backward.xdcam-pal-d10-imx30_mxf +validate.file.playback.seek_forward.GH1_00094_1920x1280_MTS +validate.file.playback.seek_forward.bowlerhatdancer_sleepytom_SGP_mjpeg_avi +validate.file.playback.seek_forward.mp3_h264_0_mp4 +validate.file.playback.seek_forward.op1a-mpeg2-wave_hd_mxf +validate.file.playback.seek_forward.op1a-pal-mpeg2_mxf +validate.file.playback.seek_forward.op2b-mpeg2-wave_hd_mxf +validate.file.playback.seek_forward.raw_h264_0_mp4 +validate.file.playback.seek_forward.raw_video_avi +validate.file.playback.seek_forward.raw_video_mkv +validate.file.playback.seek_forward.raw_video_mov +validate.file.playback.seek_forward.samples_multimedia_cx_asf_wmv_elephant_asf +validate.file.playback.seek_forward.samples_multimedia_cx_asf_wmv_low_fps_cheaterlow_wmv +validate.file.playback.seek_forward.samples_multimedia_cx_flac_Yesterday_flac +validate.file.playback.seek_forward.samples_multimedia_cx_testsuite_iv31_avi +validate.file.playback.seek_forward.test-mpeg2-mp2_mxf +validate.file.playback.seek_forward.test-mpeg2-mp3_mxf +validate.file.playback.seek_forward.test-uncompressed-rgb_mxf +validate.file.playback.seek_forward.test5_mkv +validate.file.playback.seek_forward.tron_en_ge_aac_h264_ts +validate.file.playback.seek_forward.vorbis_theora_0_ogg +validate.file.playback.seek_forward.vorbis_vp8_0_webm +validate.file.playback.seek_forward.xdcam-pal-d10-imx30_mxf +validate.file.playback.seek_with_stop.GH1_00094_1920x1280_MTS +validate.file.playback.seek_with_stop.bowlerhatdancer_sleepytom_SGP_mjpeg_avi +validate.file.playback.seek_with_stop.mp3_h264_0_mp4 +validate.file.playback.seek_with_stop.op1a-mpeg2-wave_hd_mxf +validate.file.playback.seek_with_stop.op1a-pal-mpeg2_mxf +validate.file.playback.seek_with_stop.op2b-mpeg2-wave_hd_mxf +validate.file.playback.seek_with_stop.raw_h264_0_mp4 +validate.file.playback.seek_with_stop.raw_video_avi +validate.file.playback.seek_with_stop.raw_video_mkv +validate.file.playback.seek_with_stop.raw_video_mov +validate.file.playback.seek_with_stop.samples_multimedia_cx_asf_wmv_elephant_asf +validate.file.playback.seek_with_stop.samples_multimedia_cx_asf_wmv_low_fps_cheaterlow_wmv +validate.file.playback.seek_with_stop.samples_multimedia_cx_flac_Yesterday_flac +validate.file.playback.seek_with_stop.samples_multimedia_cx_testsuite_iv31_avi +validate.file.playback.seek_with_stop.test-mpeg2-mp2_mxf +validate.file.playback.seek_with_stop.test-mpeg2-mp3_mxf +validate.file.playback.seek_with_stop.test-uncompressed-rgb_mxf +validate.file.playback.seek_with_stop.test5_mkv +validate.file.playback.seek_with_stop.tron_en_ge_aac_h264_ts +validate.file.playback.seek_with_stop.vorbis_theora_0_ogg +validate.file.playback.seek_with_stop.vorbis_vp8_0_webm +validate.file.playback.seek_with_stop.xdcam-pal-d10-imx30_mxf +validate.file.playback.switch_audio_track.test5_mkv +validate.file.playback.switch_audio_track.tron_en_ge_aac_h264_ts +validate.file.playback.switch_audio_track_while_paused.test5_mkv +validate.file.playback.switch_audio_track_while_paused.tron_en_ge_aac_h264_ts +validate.file.playback.switch_subtitle_track.test5_mkv +validate.file.playback.switch_subtitle_track_while_paused.test5_mkv +validate.file.playback.switch_subtitles.test5_mkv +validate.file.transcode.to_mp3_and_h264_in_mp4.GH1_00094_1920x1280_MTS +validate.file.transcode.to_mp3_and_h264_in_mp4.bowlerhatdancer_sleepytom_SGP_mjpeg_avi +validate.file.transcode.to_mp3_and_h264_in_mp4.mp3_h264_0_mp4 +validate.file.transcode.to_mp3_and_h264_in_mp4.raw_h264_0_mp4 +validate.file.transcode.to_mp3_and_h264_in_mp4.raw_video_avi +validate.file.transcode.to_mp3_and_h264_in_mp4.raw_video_mkv +validate.file.transcode.to_mp3_and_h264_in_mp4.raw_video_mov +validate.file.transcode.to_mp3_and_h264_in_mp4.samples_multimedia_cx_asf_wmv_elephant_asf +validate.file.transcode.to_mp3_and_h264_in_mp4.samples_multimedia_cx_flac_Yesterday_flac +validate.file.transcode.to_mp3_and_h264_in_mp4.vorbis_theora_0_ogg +validate.file.transcode.to_mp3_and_h264_in_mp4.vorbis_vp8_0_webm +validate.file.transcode.to_vorbis_and_h264_in_mkv.GH1_00094_1920x1280_MTS +validate.file.transcode.to_vorbis_and_h264_in_mkv.bowlerhatdancer_sleepytom_SGP_mjpeg_avi +validate.file.transcode.to_vorbis_and_h264_in_mkv.mp3_h264_0_mp4 +validate.file.transcode.to_vorbis_and_h264_in_mkv.raw_h264_0_mp4 +validate.file.transcode.to_vorbis_and_h264_in_mkv.raw_video_avi +validate.file.transcode.to_vorbis_and_h264_in_mkv.raw_video_mkv +validate.file.transcode.to_vorbis_and_h264_in_mkv.raw_video_mov +validate.file.transcode.to_vorbis_and_h264_in_mkv.samples_multimedia_cx_asf_wmv_elephant_asf +validate.file.transcode.to_vorbis_and_h264_in_mkv.samples_multimedia_cx_flac_Yesterday_flac +validate.file.transcode.to_vorbis_and_h264_in_mkv.vorbis_theora_0_ogg +validate.file.transcode.to_vorbis_and_h264_in_mkv.vorbis_vp8_0_webm +validate.file.transcode.to_vorbis_and_theora_in_ogg.GH1_00094_1920x1280_MTS +validate.file.transcode.to_vorbis_and_theora_in_ogg.bowlerhatdancer_sleepytom_SGP_mjpeg_avi +validate.file.transcode.to_vorbis_and_theora_in_ogg.mp3_h264_0_mp4 +validate.file.transcode.to_vorbis_and_theora_in_ogg.raw_h264_0_mp4 +validate.file.transcode.to_vorbis_and_theora_in_ogg.raw_video_avi +validate.file.transcode.to_vorbis_and_theora_in_ogg.raw_video_mkv +validate.file.transcode.to_vorbis_and_theora_in_ogg.raw_video_mov +validate.file.transcode.to_vorbis_and_theora_in_ogg.samples_multimedia_cx_asf_wmv_elephant_asf +validate.file.transcode.to_vorbis_and_theora_in_ogg.samples_multimedia_cx_flac_Yesterday_flac +validate.file.transcode.to_vorbis_and_theora_in_ogg.vorbis_theora_0_ogg +validate.file.transcode.to_vorbis_and_theora_in_ogg.vorbis_vp8_0_webm +validate.file.transcode.to_vorbis_and_vp8_in_webm.bowlerhatdancer_sleepytom_SGP_mjpeg_avi +validate.file.transcode.to_vorbis_and_vp8_in_webm.mp3_h264_0_mp4 +validate.file.transcode.to_vorbis_and_vp8_in_webm.raw_h264_0_mp4 +validate.file.transcode.to_vorbis_and_vp8_in_webm.raw_video_avi +validate.file.transcode.to_vorbis_and_vp8_in_webm.raw_video_mkv +validate.file.transcode.to_vorbis_and_vp8_in_webm.raw_video_mov +validate.file.transcode.to_vorbis_and_vp8_in_webm.samples_multimedia_cx_asf_wmv_elephant_asf +validate.file.transcode.to_vorbis_and_vp8_in_webm.samples_multimedia_cx_flac_Yesterday_flac +validate.file.transcode.to_vorbis_and_vp8_in_webm.vorbis_theora_0_ogg +validate.file.transcode.to_vorbis_and_vp8_in_webm.vorbis_vp8_0_webm +validate.hls.media_check.bipbopall_m3u8 +validate.hls.playback.change_state_intensive.hls_bibbop +validate.hls.playback.play_15s.hls_bibbop +validate.http.media_check.mp3_h264_1_mp4 +validate.http.media_check.raw_h264_1_mp4 +validate.http.media_check.raw_video_mkv +validate.http.media_check.raw_video_mov +validate.http.media_check.vorbis_theora_1_ogg +validate.http.media_check.vorbis_vp8_1_webm +validate.http.playback.change_state_intensive.mp3_h264_1_mp4 +validate.http.playback.change_state_intensive.raw_h264_1_mp4 +validate.http.playback.change_state_intensive.raw_video_mkv +validate.http.playback.change_state_intensive.vorbis_theora_1_ogg +validate.http.playback.change_state_intensive.vorbis_vp8_1_webm +validate.http.playback.fast_forward.mp3_h264_1_mp4 +validate.http.playback.fast_forward.raw_h264_1_mp4 +validate.http.playback.fast_forward.vorbis_theora_1_ogg +validate.http.playback.fast_forward.vorbis_vp8_1_webm +validate.http.playback.play_15s.mp3_h264_1_mp4 +validate.http.playback.play_15s.raw_h264_1_mp4 +validate.http.playback.play_15s.raw_video_mkv +validate.http.playback.play_15s.raw_video_mov +validate.http.playback.play_15s.vorbis_theora_1_ogg +validate.http.playback.play_15s.vorbis_vp8_1_webm +validate.http.playback.reverse_playback.mp3_h264_1_mp4 +validate.http.playback.reverse_playback.raw_h264_1_mp4 +validate.http.playback.reverse_playback.raw_video_mov +validate.http.playback.reverse_playback.vorbis_theora_1_ogg +validate.http.playback.seek_backward.mp3_h264_1_mp4 +validate.http.playback.seek_backward.raw_h264_1_mp4 +validate.http.playback.seek_backward.raw_video_mkv +validate.http.playback.seek_backward.raw_video_mov +validate.http.playback.seek_backward.vorbis_theora_1_ogg +validate.http.playback.seek_backward.vorbis_vp8_1_webm +validate.http.playback.seek_forward.mp3_h264_1_mp4 +validate.http.playback.seek_forward.raw_h264_1_mp4 +validate.http.playback.seek_forward.raw_video_mkv +validate.http.playback.seek_forward.raw_video_mov +validate.http.playback.seek_forward.vorbis_theora_1_ogg +validate.http.playback.seek_forward.vorbis_vp8_1_webm +validate.http.playback.seek_with_stop.mp3_h264_1_mp4 +validate.http.playback.seek_with_stop.raw_h264_1_mp4 +validate.http.playback.seek_with_stop.raw_video_mov +validate.http.playback.seek_with_stop.vorbis_theora_1_ogg +validate.http.transcode.to_mp3_and_h264_in_mp4.mp3_h264_1_mp4 +validate.http.transcode.to_mp3_and_h264_in_mp4.raw_h264_1_mp4 +validate.http.transcode.to_mp3_and_h264_in_mp4.raw_video_mkv +validate.http.transcode.to_mp3_and_h264_in_mp4.raw_video_mov +validate.http.transcode.to_mp3_and_h264_in_mp4.vorbis_theora_1_ogg +validate.http.transcode.to_mp3_and_h264_in_mp4.vorbis_vp8_1_webm +validate.http.transcode.to_vorbis_and_h264_in_mkv.mp3_h264_1_mp4 +validate.http.transcode.to_vorbis_and_h264_in_mkv.raw_h264_1_mp4 +validate.http.transcode.to_vorbis_and_h264_in_mkv.raw_video_mkv +validate.http.transcode.to_vorbis_and_h264_in_mkv.raw_video_mov +validate.http.transcode.to_vorbis_and_h264_in_mkv.vorbis_theora_1_ogg +validate.http.transcode.to_vorbis_and_h264_in_mkv.vorbis_vp8_1_webm +validate.http.transcode.to_vorbis_and_theora_in_ogg.mp3_h264_1_mp4 +validate.http.transcode.to_vorbis_and_theora_in_ogg.raw_h264_1_mp4 +validate.http.transcode.to_vorbis_and_theora_in_ogg.raw_video_mkv +validate.http.transcode.to_vorbis_and_theora_in_ogg.raw_video_mov +validate.http.transcode.to_vorbis_and_theora_in_ogg.vorbis_theora_1_ogg +validate.http.transcode.to_vorbis_and_theora_in_ogg.vorbis_vp8_1_webm +validate.http.transcode.to_vorbis_and_vp8_in_webm.mp3_h264_1_mp4 +validate.http.transcode.to_vorbis_and_vp8_in_webm.raw_h264_1_mp4 +validate.http.transcode.to_vorbis_and_vp8_in_webm.raw_video_mkv +validate.http.transcode.to_vorbis_and_vp8_in_webm.raw_video_mov +validate.http.transcode.to_vorbis_and_vp8_in_webm.vorbis_theora_1_ogg +validate.http.transcode.to_vorbis_and_vp8_in_webm.vorbis_vp8_1_webm diff --git a/validate/testsuites/validateelements.py b/validate/testsuites/validateelements.py new file mode 100644 index 0000000..ecd794c --- /dev/null +++ b/validate/testsuites/validateelements.py @@ -0,0 +1,176 @@ + + +# -*- Mode: Python -*- vi:si:et:sw=4:sts=4:ts=4:syntax=python +# +# Copyright (c) 2015,Thibault Saunier +# 2015,Vineeth T M +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the +# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, +# Boston, MA 02110-1301, USA. + +""" +The GstValidate default testsuite +""" + +from gi.repository import Gst +from gi.repository import GObject + +TEST_MANAGER = "validate" + + +def pspec_is_numeric(prop): + return prop.value_type in [GObject.TYPE_INT, GObject.TYPE_INT64, + GObject.TYPE_UINT, GObject.TYPE_UINT64, + GObject.TYPE_LONG, GObject.TYPE_ULONG, + GObject.TYPE_DOUBLE] + + +def get_pipe_and_populate(test_manager, klass, fname, prop, loop): + prop_value = Gst.ElementFactory.make(fname, None).get_property(prop.name) + + if prop.value_type == GObject.TYPE_BOOLEAN: + if loop is 1: + bool_value = False + else: + bool_value = True + cname = fname + " %s=%s" % (prop.name, bool_value) + tname = fname + "%s=%s" % (prop.name, bool_value) + elif pspec_is_numeric(prop): + if loop is 2: + int_value = prop.default_value + elif loop is 1: + int_value = prop.minimum + else: + int_value = prop.maximum + cname = fname + " %s=%s" % (prop.name, int_value) + tname = fname + "%s=%s" % (prop.name, int_value) + else: + cname = fname + " %s=%s" % (prop.name, prop_value) + tname = fname + "%s=%s" % (prop.name, prop_value) + + if "Audio" in klass: + cpipe = "audiotestsrc num-buffers=20 ! %s " % (cname) + sink = "! audioconvert ! %(audiosink)s" + elif "Video" in klass: + if "gl" in fname: + cname = "glfilterbin filter = %s" % (cname) + cpipe = "videotestsrc num-buffers=20 ! %s " % (cname) + sink = "! videoconvert ! %(videosink)s" + else: + return None + + if test_manager.options.mute: + cpipe += "! fakesink" + else: + cpipe += "%s" % (sink) + + return (tname, cpipe) + + +def setup_tests(test_manager, options): + print("Setting up tests to validate all elements") + pipelines_descriptions = [] + test_manager.set_default_blacklist([ + ("validate.launch_pipeline.videocrop*", + "https://bugzilla.gnome.org/show_bug.cgi?id=743910"), + ("validate.launch_pipeline.videobox*", + "https://bugzilla.gnome.org/show_bug.cgi?id=743909"), + ("validate.launch_pipeline.simplevideomark*", + "https://bugzilla.gnome.org/show_bug.cgi?id=743908"), + ("validate.launch_pipeline.exclusion*", + "https://bugzilla.gnome.org/show_bug.cgi?id=743907"), + ("validate.launch_pipeline.frei0r*", + "video filter plugins"), + ("validate.launch_pipeline.*interleavechannel-positions-from-input=False*", + "https://bugzilla.gnome.org/show_bug.cgi?id=744211"), + ("validate.launch_pipeline.spectrum*", + "https://bugzilla.gnome.org/show_bug.cgi?id=744213"), + ("validate.launch_pipeline.smpte*", + "smpte cannot be tested with simple pipeline. Hence excluding"), + ("validate.launch_pipeline.gleffects_laplacian*", + "https://bugzilla.gnome.org/show_bug.cgi?id=748393"), + ("validate.launch_pipeline.glfilterbin*", + "glfilter bin doesnt launch."), + ]) + valid_scenarios = ["play_15s"] + Gst.init(None) + factories = Gst.Registry.get().get_feature_list(Gst.ElementFactory) + for element_factory in factories: + audiosrc = False + audiosink = False + videosrc = False + videosink = False + klass = element_factory.get_metadata("klass") + fname = element_factory.get_name() + + if "band" in fname: + continue + if "Audio" not in klass and "Video" not in klass: + continue + + padstemplates = element_factory.get_static_pad_templates() + for padtemplate in padstemplates: + if padtemplate.static_caps.string: + caps = padtemplate.get_caps() + for i in xrange(caps.get_size()): + structure = caps.get_structure(i) + if "audio/x-raw" in structure.get_name(): + if padtemplate.direction == Gst.PadDirection.SRC: + audiosrc = True + elif padtemplate.direction == Gst.PadDirection.SINK: + audiosink = True + elif "video/x-raw" in structure.get_name(): + if padtemplate.direction == Gst.PadDirection.SRC: + videosrc = True + elif padtemplate.direction == Gst.PadDirection.SINK: + videosink = True + + if (audiosink is False and videosink is False) or (audiosrc is False and videosrc is False): + continue + + element = Gst.ElementFactory.make(fname, None) + if element is None: + print("Could not create element: %s" % fname) + continue + + props = GObject.list_properties(element) + for prop in props: + if "name" in prop.name or "parent" in prop.name or "qos" in prop.name or \ + "latency" in prop.name or "message-forward" in prop.name: + continue + if (prop.flags & GObject.ParamFlags.WRITABLE) and \ + (prop.flags & GObject.ParamFlags.READABLE): + if prop.value_type == GObject.TYPE_BOOLEAN: + loop = 2 + elif pspec_is_numeric(prop): + loop = 3 + else: + loop = 0 + + while loop: + loop -= 1 + description = get_pipe_and_populate(test_manager, klass, + fname, prop, loop) + if None is not description: + pipelines_descriptions.append(description) + + # No restriction about scenarios that are potentially used + test_manager.add_scenarios(valid_scenarios) + test_manager.add_generators(test_manager.GstValidatePipelineTestsGenerator + ("validate_elements", test_manager, + pipelines_descriptions=pipelines_descriptions, + valid_scenarios=valid_scenarios)) + + return True diff --git a/validate/testsuites/validateextra.py b/validate/testsuites/validateextra.py new file mode 100644 index 0000000..e60ffeb --- /dev/null +++ b/validate/testsuites/validateextra.py @@ -0,0 +1,56 @@ +# -*- Mode: Python -*- vi:si:et:sw=4:sts=4:ts=4:syntax=python +# +# Copyright (c) 2014,Thibault Saunier +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the +# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, +# Boston, MA 02110-1301, USA. + +""" +The GstValidate default testsuite +""" + +import os +from testsuiteutils import update_assets + + +TEST_MANAGER = "validate" + +BLACKLIST =[("validate.*reverse.*Sintel_2010_720p_mkv", + "TODO in matroskademux: FIXME: We should build an index during playback or " + "when scanning that can be used here. The reverse playback code requires " + " seek_index and seek_entry to be set!"), + + # Subtitles known issues + ("validate.file.playback.switch_subtitle_track.Sintel_2010_720p_mkv", + "https://bugzilla.gnome.org/show_bug.cgi?id=734051"), + ] + +def setup_tests(test_manager, options): + print("Setting up GstValidate default tests") + + assets_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "medias", "big")) + if options.sync: + if not update_assets(assets_dir): + return False + + options.add_paths(assets_dir) + test_manager.set_default_blacklist(BLACKLIST) + test_manager.register_defaults() + test_manager.add_scenarios([ + "seek_forward_non_flushing", + "seek_backward_non_flushing", + ]) + + return True diff --git a/validate/testsuites/validateextra.testslist b/validate/testsuites/validateextra.testslist new file mode 100644 index 0000000..32e9141 --- /dev/null +++ b/validate/testsuites/validateextra.testslist @@ -0,0 +1,14 @@ +validate.file.media_check.Sintel_2010_720p_mkv +validate.file.playback.change_state_intensive.Sintel_2010_720p_mkv +validate.file.playback.disable_subtitle_track_while_paused.Sintel_2010_720p_mkv +validate.file.playback.fast_forward.Sintel_2010_720p_mkv +validate.file.playback.play_15s.Sintel_2010_720p_mkv +validate.file.playback.scrub_forward_seeking.Sintel_2010_720p_mkv +validate.file.playback.seek_backward.Sintel_2010_720p_mkv +validate.file.playback.seek_forward.Sintel_2010_720p_mkv +validate.file.playback.seek_with_stop.Sintel_2010_720p_mkv +validate.file.playback.set_subtitles.Sintel_2010_720p_mkv +validate.file.playback.switch_subtitle_track_while_paused.Sintel_2010_720p_mkv +validate.file.playback.switch_subtitles.Sintel_2010_720p_mkv +validate.file.playback.seek_forward_non_flushing.Sintel_2010_720p_mkv +validate.file.playback.seek_backward_non_flushing.Sintel_2010_720p_mkv