remove submodule created by mistake. This should be created as a normal folder 21/43521/4 master
authorVineeth TM <vineeth.tm@samsung.com>
Fri, 10 Jul 2015 01:34:28 +0000 (10:34 +0900)
committerVineeth TM <vineeth.tm@samsung.com>
Wed, 15 Jul 2015 07:29:34 +0000 (16:29 +0900)
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 <vineeth.tm@samsung.com>
20 files changed:
gst-integration-testsuites [deleted submodule]
packaging/gst-validate.spec
packaging/gst-validate.spec~ [deleted file]
validate/Makefile.am
validate/configure.ac
validate/launcher/utils.py
validate/po/Makevars [new file with mode: 0644]
validate/po/POTFILES.in [new file with mode: 0644]
validate/testsuites/Makefile.am [new file with mode: 0644]
validate/testsuites/__init__.py [new file with mode: 0644]
validate/testsuites/ges.py [new file with mode: 0644]
validate/testsuites/ges.testslist [new file with mode: 0644]
validate/testsuites/gesextras.py [new file with mode: 0644]
validate/testsuites/gesextras.testslist [new file with mode: 0644]
validate/testsuites/testsuiteutils.py [new file with mode: 0644]
validate/testsuites/validate.py [new file with mode: 0644]
validate/testsuites/validate.testslist [new file with mode: 0644]
validate/testsuites/validateelements.py [new file with mode: 0644]
validate/testsuites/validateextra.py [new file with mode: 0644]
validate/testsuites/validateextra.testslist [new file with mode: 0644]

diff --git a/gst-integration-testsuites b/gst-integration-testsuites
deleted file mode 160000 (submodule)
index c7f00c5..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit c7f00c599c5b60cc4ffc238511fb2849a2ad514f
index 4c193e8..8deed2f 100755 (executable)
@@ -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}/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
 
 %files devel
 %manifest validate/gst-validate-devel.manifest
diff --git a/packaging/gst-validate.spec~ b/packaging/gst-validate.spec~
deleted file mode 100755 (executable)
index bf8c49d..0000000
+++ /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
index a035b92..3f7ff89 100644 (file)
@@ -11,7 +11,8 @@ SUBDIRS =     \
        pkgconfig       \
        docs    \
        tests    \
        pkgconfig       \
        docs    \
        tests    \
-       po
+       po  \
+        testsuites
 
 DIST_SUBDIRS = $(SUBDIRS)
 
 
 DIST_SUBDIRS = $(SUBDIRS)
 
index 2db82ba..4c29de2 100644 (file)
@@ -333,6 +333,7 @@ docs/version.entities
 docs/validate/Makefile
 docs/plugins/Makefile
 docs/launcher/Makefile
 docs/validate/Makefile
 docs/plugins/Makefile
 docs/launcher/Makefile
+testsuites/Makefile
 ])
 AC_OUTPUT
 
 ])
 AC_OUTPUT
 
index 6d43847..2b2079e 100644 (file)
@@ -31,7 +31,7 @@ from operator import itemgetter
 
 GST_SECOND = long(1000000000)
 DEFAULT_TIMEOUT = 30
 
 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'
 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 (file)
index 0000000..1f1ea52
--- /dev/null
@@ -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 (file)
index 0000000..02f5d6c
--- /dev/null
@@ -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 (file)
index 0000000..f6a1edf
--- /dev/null
@@ -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 (file)
index 0000000..e69de29
diff --git a/validate/testsuites/ges.py b/validate/testsuites/ges.py
new file mode 100644 (file)
index 0000000..de5e679
--- /dev/null
@@ -0,0 +1,33 @@
+# -*- Mode: Python -*- vi:si:et:sw=4:sts=4:ts=4:syntax=python
+#
+# Copyright (c) 2014,Thibault Saunier <thibault.saunier@collabora.com>
+#
+# 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 (file)
index 0000000..ac19277
--- /dev/null
@@ -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 (file)
index 0000000..cbf7c44
--- /dev/null
@@ -0,0 +1,39 @@
+# -*- Mode: Python -*- vi:si:et:sw=4:sts=4:ts=4:syntax=python
+#
+# Copyright (c) 2014,Thibault Saunier <thibault.saunier@collabora.com>
+#
+# 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 (file)
index 0000000..73aa78f
--- /dev/null
@@ -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 (file)
index 0000000..acd8c80
--- /dev/null
@@ -0,0 +1,38 @@
+# -*- Mode: Python -*- vi:si:et:sw=4:sts=4:ts=4:syntax=python
+#
+# Copyright (c) 2015, Thibault Saunier <thibault.saunier@collabora.com>
+#
+# 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 (file)
index 0000000..633cf75
--- /dev/null
@@ -0,0 +1,56 @@
+# -*- Mode: Python -*- vi:si:et:sw=4:sts=4:ts=4:syntax=python
+#
+# Copyright (c) 2014,Thibault Saunier <thibault.saunier@collabora.com>
+#
+# 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 (file)
index 0000000..1fcb582
--- /dev/null
@@ -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 (file)
index 0000000..ecd794c
--- /dev/null
@@ -0,0 +1,176 @@
+
+
+# -*- Mode: Python -*- vi:si:et:sw=4:sts=4:ts=4:syntax=python
+#
+# Copyright (c) 2015,Thibault Saunier <thibault.saunier@collabora.com>
+#               2015,Vineeth T M <vineeth.tm@samsung.com>
+#
+# 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 (file)
index 0000000..e60ffeb
--- /dev/null
@@ -0,0 +1,56 @@
+# -*- Mode: Python -*- vi:si:et:sw=4:sts=4:ts=4:syntax=python
+#
+# Copyright (c) 2014,Thibault Saunier <thibault.saunier@collabora.com>
+#
+# 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 (file)
index 0000000..32e9141
--- /dev/null
@@ -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