gstreamer/tests/check/Makefile.am

309 lines
7.8 KiB
Makefile
Raw Normal View History

include $(top_srcdir)/common/check.mak
CHECK_REGISTRY = $(top_builddir)/tests/check/test-registry.reg
GST_TOOLS_DIR = $(top_builddir)/tools
REGISTRY_ENVIRONMENT = \
GST_REGISTRY=$(CHECK_REGISTRY)
AM_TESTS_ENVIRONMENT += \
GST_STATE_IGNORE_ELEMENTS="$(STATE_IGNORE_ELEMENTS)" \
$(REGISTRY_ENVIRONMENT) \
GST_PLUGIN_SCANNER_1_0=$(top_builddir)/libs/gst/helpers/gst-plugin-scanner \
GST_PLUGIN_SYSTEM_PATH_1_0= \
GST_PLUGIN_PATH_1_0=$(top_builddir)/plugins
plugindir = $(libdir)/gstreamer-@GST_API_VERSION@
# override to _not_ install the test plugins
install-pluginLTLIBRARIES:
# the core dumps of some machines have PIDs appended, test registry and
# profiling data
CLEANFILES = core core.* test-registry.* *.gcno *.gcda
SUPPRESSIONS = $(top_srcdir)/common/gst.supp
clean-local: clean-local-check
2011-12-30 15:39:55 +00:00
# These tests don't even build any longer:
# gst/gstindex.c
if GST_DISABLE_PARSE
PARSE_CHECKS = pipelines/parse-disabled
else
PARSE_CHECKS = pipelines/simple-launch-lines pipelines/cleanup pipelines/parse-launch
endif
# Do not run the abi test in case any option which causes the API to change has
# been used
if !GST_DISABLE_REGISTRY
if !GST_DISABLE_TRACE
ABI_CHECKS = gst/gstabi
endif
endif
2010-12-07 17:32:53 +00:00
if !GST_DISABLE_GST_DEBUG
PRINTF_CHECKS = gst/gstprintf
else
PRINTF_CHECKS =
endif
2010-12-07 17:32:53 +00:00
LIBSABI_CHECKS = libs/libsabi
if HAVE_CXX
CXX_CHECKS = gst/gstcpp libs/gstlibscpp
else
CXX_CHECKS =
endif
# if it's calling gst_element_factory_make(), it will probably not work without
# a registry
if GST_DISABLE_REGISTRY
REGISTRY_CHECKS =
else
REGISTRY_CHECKS = \
gst/gst \
gst/gstbin \
gst/gstchildproxy \
2013-04-17 10:44:29 +00:00
gst/gstcontext \
gst/gstcontroller \
gst/gstelement \
gst/gstelementfactory \
gst/gstevent \
gst/gstutils.c: RPAD fixes all around. Original commit message from CVS: 2005-06-08 Andy Wingo <wingo@pobox.com> * gst/gstutils.c: RPAD fixes all around. (gst_element_link_pads): Refcounting fixes. * tools/gst-inspect.c: * tools/gst-xmlinspect.c: * parse/grammar.y: * gst/base/gsttypefindhelper.c: * gst/base/gstbasesink.c: * gst/gstqueue.c: RPAD fixes. * gst/gstghostpad.h: * gst/gstghostpad.c: New ghost pad implementation as full proxy pads. The tricky thing is they provide both source and sink interfaces, since they proxy the internal pad for the external pad, and vice versa. Implement with lower-level ProxyPad objects, with the interior proxy pad as a child of the exterior ghost pad. Should write a doc on this. * gst/gstpad.h: s/RPAD/PAD/, s/RealPad/Pad/. (gst_pad_set_name, gst_pad_set_parent): Macros removed, use gst_object API. * gst/gstpad.c: Big changes. No more stub base GstPad, now all pads are real pads. No ghost pads in this file. Not documenting the myriad s/RPAD/PAD/ and REALIZE fixes. (gst_pad_class_init): Add properties for "direction" and "template". Both are construct-only, so they can't change during the life of the pad. Fixes properly deriving from GstPad. (gst_pad_custom_new, gst_pad_custom_new_from_template): Gone. For derived objects, just set properties when creating the objects via g_object_new. (gst_pad_get_parent): Implement as a function, return NULL if the parent is not an element. (gst_pad_get_real_parent, gst_pad_add_ghost_pad) (gst_pad_remove_ghost_pad, gst_pad_realize): Removed. * gst/gstobject.c (gst_object_class_init): Make name a construct property. Don't set it in the object init. * gst/gstelement.c (gst_element_add_pad): Don't allow adding pads with UNKNOWN direction. (gst_element_add_ghost_pad): Remove non-orthogonal API. Replace with gst_element_add_pad (e, gst_ghost_pad_new (name, pad)). (gst_element_remove_pad): Remove ghost-pad special cases. (gst_element_pads_activate): Remove rpad cruft. * gst/gstbin.c (gst_bin_change_state): Use gst_pad_get_parent to catch the pad's-parent-not-an-element case. * gst/gst.h: Include gstghostpad.h. * gst/gst.c (init_post): No more real, ghost pads. * gst/Makefile.am: Add gstghostpad.[ch]. * check/Makefile.am: * check/gst/gstbin.c: * check/gst/gstghostpad.c (test_ghost_pads): Check that linking into a bin creates ghost pads, and that the refcounts are right. Partly moved from gstbin.c.
2005-06-08 22:16:27 +00:00
gst/gstghostpad \
gst/gstplugin \
configure.ac: Add DATADIR for storing presets. Original commit message from CVS: Patch by: Stefan Kost <ensonic@users.sf.net> * configure.ac: Add DATADIR for storing presets. * docs/gst/gstreamer-docs.sgml: * docs/gst/gstreamer-sections.txt: * docs/gst/gstreamer.types.in: Add GstPreset to docs. * gst/Makefile.am: * gst/gst.h: * gst/gstpreset.c: (preset_get_paths), (preset_skip_property), (preset_open_and_parse_header), (preset_parse_version), (preset_merge), (preset_get_keyfile), (gst_preset_default_get_preset_names), (gst_preset_default_get_property_names), (gst_preset_default_load_preset), (gst_preset_default_save_presets_file), (gst_preset_default_save_preset), (gst_preset_default_rename_preset), (gst_preset_default_delete_preset), (gst_preset_default_set_meta), (gst_preset_default_get_meta), (gst_preset_default_randomize), (gst_preset_default_reset), (gst_preset_get_preset_names), (gst_preset_get_property_names), (gst_preset_load_preset), (gst_preset_save_preset), (gst_preset_rename_preset), (gst_preset_delete_preset), (gst_preset_set_meta), (gst_preset_get_meta), (gst_preset_class_init), (gst_preset_base_init), (gst_preset_get_type): * gst/gstpreset.h: Add GstPreset to core. Fixes #396779 * tests/check/Makefile.am: * tests/check/gst/gstpreset.c: (gst_preset_test_get_property), (gst_preset_test_set_property), (gst_preset_test_class_init), (gst_preset_test_base_init), (gst_preset_test_get_type), (gst_preset_test_plugin_init), (GST_START_TEST), (remove_preset_file), (test_setup), (test_teardown), (gst_preset_suite): Add GstPreset unit tests.
2008-05-27 15:11:35 +00:00
gst/gstpreset \
protection: add GstProtectionMeta to support protected content In order to support some types of protected streams (such as those protected using DASH Common Encryption) some per-buffer information needs to be passed between elements. This commit adds a GstMeta type called GstProtectionMeta that allows protection specific information to be added to a GstBuffer. An example of its usage is qtdemux providing information to each output sample that enables a downstream element to decrypt it. This commit adds a utility function to select a supported protection system from the installed Decryption elements found in the registry. The gst_protection_select_system function that takes an array of identifiers and searches the registry for a element of klass Decryptor that supports one or more of the supplied identifiers. If multiple elements are found, the one with the highest rank is selected. This commit adds a unit test for the gst_protection_select_system function that adds a fake Decryptor element to the registry and then checks that it can correctly be selected by the utility function. This commit adds a unit test for GstProtectionMeta that creates GstProtectionMeta and adds & removes it from a buffer and performs some simple reference count checks. API: gst_buffer_add_protection_meta() API: gst_buffer_get_protection_meta() API: gst_protection_select_system() API: gst_protection_meta_api_get_type() API: gst_protection_meta_get_info() https://bugzilla.gnome.org/show_bug.cgi?id=705991
2015-04-15 14:33:31 +00:00
gst/gstprotection \
gst/gstquery \
gst/gstregistry \
gst/gsturi \
gst/gstutils \
generic/sinks \
elements/capsfilter \
elements/concat \
elements/fakesink \
elements/fakesrc \
elements/fdsrc \
elements/filesink \
elements/filesrc \
elements/funnel \
elements/identity \
elements/multiqueue \
elements/selector \
elements/tee \
2010-08-18 13:31:09 +00:00
elements/queue \
elements/queue2 \
2010-12-30 00:26:43 +00:00
elements/valve \
elements/streamiddemux \
libs/baseparse \
libs/basesrc \
libs/basesink \
libs/sparsefile \
libs/controller \
2009-09-29 07:06:13 +00:00
libs/queuearray \
libs/typefindhelper \
pipelines/seek \
pipelines/stress \
pipelines/queue-error
endif
check_PROGRAMS = \
$(ABI_CHECKS) \
gst/gstatomicqueue \
gst/gstbuffer \
gst/gstbufferlist \
2014-06-27 01:00:40 +00:00
gst/gstbufferpool \
gst/gstmeta \
gst/gstmemory \
gst/gstbus \
gst/gstcaps \
gst/gstcapsfeatures \
$(CXX_CHECKS) \
gst/gstdatetime \
2014-06-27 01:00:40 +00:00
gst/gstdevice \
gst/gstinfo \
gst/gstiterator \
gst/gstmessage \
gst/gstminiobject \
gst/gstobject \
gst/gstpad \
gst/gstparamspecs \
gst/gstpipeline \
gst/gstpoll \
protection: add GstProtectionMeta to support protected content In order to support some types of protected streams (such as those protected using DASH Common Encryption) some per-buffer information needs to be passed between elements. This commit adds a GstMeta type called GstProtectionMeta that allows protection specific information to be added to a GstBuffer. An example of its usage is qtdemux providing information to each output sample that enables a downstream element to decrypt it. This commit adds a utility function to select a supported protection system from the installed Decryption elements found in the registry. The gst_protection_select_system function that takes an array of identifiers and searches the registry for a element of klass Decryptor that supports one or more of the supplied identifiers. If multiple elements are found, the one with the highest rank is selected. This commit adds a unit test for the gst_protection_select_system function that adds a fake Decryptor element to the registry and then checks that it can correctly be selected by the utility function. This commit adds a unit test for GstProtectionMeta that creates GstProtectionMeta and adds & removes it from a buffer and performs some simple reference count checks. API: gst_buffer_add_protection_meta() API: gst_buffer_get_protection_meta() API: gst_protection_select_system() API: gst_protection_meta_api_get_type() API: gst_protection_meta_get_info() https://bugzilla.gnome.org/show_bug.cgi?id=705991
2015-04-15 14:33:31 +00:00
gst/gstprotection \
$(PRINTF_CHECKS) \
gst/gstsegment \
gst/gstsystemclock \
gst/gstclock \
gst/gststructure \
gst/gsttag \
gst/gsttracerrecord \
gst/gsttagsetter \
gst/gsttask \
gst/gsttoc \
gst/gsttocsetter \
gst/gstvalue \
generic/states \
$(PARSE_CHECKS) \
$(REGISTRY_CHECKS) \
2010-12-07 17:32:53 +00:00
$(LIBSABI_CHECKS) \
libs/adapter \
Add bit reader and byte reader classes, including documentation and an extensive unit test suite. Fixes bug #553554. Original commit message from CVS: * docs/libs/gstreamer-libs-docs.sgml: * docs/libs/gstreamer-libs-sections.txt: * libs/gst/base/Makefile.am: * libs/gst/base/gstbitreader.c: (gst_bit_reader_new), (gst_bit_reader_new_from_buffer), (gst_bit_reader_free), (gst_bit_reader_init), (gst_bit_reader_init_from_buffer), (gst_bit_reader_set_pos), (gst_bit_reader_get_pos), (gst_bit_reader_get_remaining), (gst_bit_reader_skip), (gst_bit_reader_skip_to_byte): * libs/gst/base/gstbitreader.h: * libs/gst/base/gstbytereader.c: (GDOUBLE_SWAP_LE_BE), (GFLOAT_SWAP_LE_BE), (gst_byte_reader_new), (gst_byte_reader_new_from_buffer), (gst_byte_reader_free), (gst_byte_reader_init), (gst_byte_reader_init_from_buffer), (gst_byte_reader_set_pos), (gst_byte_reader_get_pos), (gst_byte_reader_get_remaining), (gst_byte_reader_skip), (gst_byte_reader_get_uint8), (gst_byte_reader_get_int8), (gst_byte_reader_peek_uint8), (gst_byte_reader_peek_int8), (gst_byte_reader_get_uint24_le), (gst_byte_reader_get_uint24_be), (gst_byte_reader_get_int24_le), (gst_byte_reader_get_int24_be), (gst_byte_reader_peek_uint24_le), (gst_byte_reader_peek_uint24_be), (gst_byte_reader_peek_int24_le), (gst_byte_reader_peek_int24_be): * libs/gst/base/gstbytereader.h: * tests/check/Makefile.am: * tests/check/libs/bitreader.c: (GST_START_TEST), (gst_bit_reader_suite): * tests/check/libs/bytereader.c: (GST_START_TEST), (gst_byte_reader_suite): Add bit reader and byte reader classes, including documentation and an extensive unit test suite. Fixes bug #553554.
2008-10-06 12:41:53 +00:00
libs/bitreader \
libs/bytereader \
2009-10-05 09:24:35 +00:00
libs/bytewriter \
libs/bitreader-noinline \
libs/bytereader-noinline \
libs/bytewriter-noinline \
libs/flowcombiner \
libs/sparsefile \
libs/collectpads \
libs/gstharness \
libs/gstnetclientclock \
libs/gstnettimeprovider \
libs/gsttestclock \
libs/transform1 \
libs/transform2 \
tools/gstinspect
# failing tests
noinst_PROGRAMS =
# elements to ignore for the state tests
# STATE_IGNORE_ELEMENTS =
TESTS = $(check_PROGRAMS)
noinst_HEADERS = \
gst/capslist.h \
gst/struct_arm.h \
gst/struct_i386.h \
gst/struct_hppa.h \
gst/struct_ppc32.h \
gst/struct_ppc64.h \
gst/struct_sparc.h \
gst/struct_x86_64.h \
libs/struct_arm.h \
libs/struct_i386.h \
libs/struct_hppa.h \
libs/struct_ppc32.h \
libs/struct_ppc64.h \
libs/struct_sparc.h \
libs/struct_x86_64.h
EXTRA_DIST = \
libs/test_transform.c
AM_CFLAGS = $(PTHREAD_CFLAGS) $(GST_OBJ_CFLAGS) -UG_DISABLE_ASSERT -UG_DISABLE_CAST_CHECKS \
-DGST_CHECK_TEST_ENVIRONMENT_BEACON="\"GST_STATE_IGNORE_ELEMENTS\""
AM_CXXFLAGS = $(GST_OBJ_CXXFLAGS) -UG_DISABLE_ASSERT -UG_DISABLE_CAST_CHECKS \
-DGST_CHECK_TEST_ENVIRONMENT_BEACON="\"GST_STATE_IGNORE_ELEMENTS\""
LDADD = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
$(GST_OBJ_LIBS)
gst_gstcpp_SOURCES = gst/gstcpp.cc
libs_gstlibscpp_SOURCES = libs/gstlibscpp.cc
gst_gsttracerrecord_CFLAGS = $(GST_OBJ_CFLAGS) $(AM_CFLAGS) -DGST_USE_UNSTABLE_API
gst_gstutils_LDADD = $(LDADD) $(GSL_LIBS) $(GMP_LIBS)
gst_gstprintf_LDADD = \
$(top_builddir)/gst/printf/libgstprintf.la \
$(LDADD)
elements_fdsrc_CFLAGS=$(GST_OBJ_CFLAGS) $(AM_CFLAGS) \
-DTESTFILE=\"$(top_srcdir)/configure.ac\"
elements_filesrc_CFLAGS=$(GST_OBJ_CFLAGS) $(AM_CFLAGS) \
-DTESTFILE=\"$(top_srcdir)/configure.ac\"
libs_controller_LDADD = \
$(top_builddir)/libs/gst/controller/libgstcontroller-@GST_API_VERSION@.la \
$(LDADD)
libs_gstnetclientclock_LDADD = \
$(top_builddir)/libs/gst/net/libgstnet-@GST_API_VERSION@.la \
$(LDADD)
libs_gstnettimeprovider_LDADD = \
$(top_builddir)/libs/gst/net/libgstnet-@GST_API_VERSION@.la \
$(GIO_LIBS) $(LDADD)
# valgrind testing
# these just need valgrind fixing, period
VALGRIND_TO_FIX = \
gst/gstinfo \
gst/gsttracerrecord \
pipelines/parse-launch \
tools/gstinspect
VALGRIND_IGNORE = \
pipelines/stress
# these need fixing because the threads cause segfaults under valgrind
TESTS_THREADED = \
gst/gstminiobject \
gst/gstobject
VALGRIND_TESTS_DISABLE = \
$(TESTS_THREADED) \
$(VALGRIND_IGNORE) \
$(VALGRIND_TO_FIX)
# indexers does not get tested yet
COVERAGE_DIRS = \
gst \
libs/gst/base \
libs/gst/controller \
libs/gst/check \
libs/gst/net \
plugins/elements
COVERAGE_FILES = $(foreach dir,$(COVERAGE_DIRS),$(wildcard $(top_builddir)/$(dir)/*.gcov))
COVERAGE_FILES_REL = $(subst $(top_builddir)/,,$(COVERAGE_FILES))
COVERAGE_OUT_FILES = $(foreach dir,$(COVERAGE_DIRS),$(wildcard $(top_builddir)/$(dir)/*.gcov.out))
COVERAGE_OUT_FILES_REL = $(subst $(top_builddir)/,,$(COVERAGE_OUT_FILES))
debug:
echo $(COVERAGE_FILES)
echo $(COVERAGE_FILES_REL)
.PHONY: coverage
if GST_GCOV_ENABLED
# we rebuild a registry and do gst-inspect so that all the get/set codepaths
# are also covered
coverage:
for file in `find $(top_builddir) -name '*.gcda'`; do rm $$file; done
-rm $(CHECK_REGISTRY)
echo "Inspecting all elements"
for e in `$(GST_INSPECT) | head -n -2 | cut -d: -f2`; do $(GST_INSPECT) $$e > /dev/null 2>&1; done
make check
make coverage-report
else
coverage:
echo "You need to configure with --enable-gcov to get coverage data"
exit 1
endif
coverage-report:
rm -r coverage
for dir in $(COVERAGE_DIRS); do \
mkdir -p coverage/$$dir; \
make -C $(top_builddir)/$$dir gcov; \
done
for dir in $(COVERAGE_DIRS); do \
files="`ls $(top_builddir)/$$dir/*.gcov.out 2> /dev/null`"; \
if test ! -z "$$files"; then \
perl $(top_srcdir)/common/coverage/coverage-report.pl \
$(top_builddir)/$$dir/*.gcov.out > \
coverage/$$dir/index.xml; \
xsltproc $(top_srcdir)/common/coverage/coverage-report.xsl \
coverage/$$dir/index.xml > coverage/$$dir/index.html; \
fi; \
done
for file in $(COVERAGE_FILES_REL); do \
echo Generating coverage/$$file.html; \
perl $(top_srcdir)/common/coverage/coverage-report-entry.pl \
$(top_builddir)/$$file > coverage/$$file.html; \
done