gstreamer/tests/check/Makefile.am
Mark Nauwelaerts 3f0e4bd6f6 queue: add unit test
Make a downstream element return an error after upstream has already
put all data into queue (including EOS).  As such, upstream
will not be around to pick up the error, so it is up to queue to
act appropriately.  See #589991.

Note there may be downstream fatal errors (e.g. negotiation) that do
not warrant an error message already having been posted.
2009-08-06 13:40:18 +02:00

267 lines
6.9 KiB
Makefile

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)
TESTS_ENVIRONMENT = \
STATE_IGNORE_ELEMENTS="$(STATE_IGNORE_ELEMENTS)" \
$(REGISTRY_ENVIRONMENT) \
GST_PLUGIN_SYSTEM_PATH= \
GST_PLUGIN_PATH=$(top_builddir)/plugins
plugindir = $(libdir)/gstreamer-@GST_MAJORMINOR@
# 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
if GST_DISABLE_PARSE
PARSE_CHECKS = pipelines/parse-disabled
else
PARSE_CHECKS = pipelines/simple-launch-lines pipelines/cleanup pipelines/parse-launch
endif
if GST_DISABLE_LOADSAVE
LOADSAVE_CHECKS =
else
LOADSAVE_CHECKS = gst/gstxml
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/gstelement \
gst/gstevent \
gst/gstghostpad \
gst/gstindex \
gst/gstinterface \
gst/gstplugin \
gst/gstpreset \
gst/gstquery \
gst/gstregistry \
gst/gsturi \
gst/gstutils \
generic/sinks \
elements/capsfilter \
elements/fakesink \
elements/fakesrc \
elements/fdsrc \
elements/filesink \
elements/filesrc \
elements/identity \
elements/multiqueue \
elements/tee \
libs/basesrc \
libs/controller \
libs/typefindhelper \
pipelines/stress \
pipelines/queue-error
endif
check_PROGRAMS = \
gst/gstabi \
gst/gstbuffer \
gst/gstbufferlist \
gst/gstbus \
gst/gstcaps \
gst/gstinfo \
gst/gstiterator \
gst/gstmessage \
gst/gstminiobject \
gst/gstobject \
gst/gstpad \
gst/gstparamspecs \
gst/gstpoll \
gst/gstsegment \
gst/gstsystemclock \
gst/gststructure \
gst/gsttag \
gst/gsttagsetter \
gst/gsttask \
gst/gstvalue \
$(LOADSAVE_CHECKS) \
generic/states \
$(PARSE_CHECKS) \
$(REGISTRY_CHECKS) \
libs/libsabi \
libs/gdp \
libs/adapter \
libs/bitreader \
libs/bytereader \
libs/gstnetclientclock \
libs/gstnettimeprovider \
libs/transform1
# failing tests
# queue : tests is unstable (race conditions)
noinst_PROGRAMS = \
gst/gstpipeline \
libs/collectpads \
elements/queue
# elements to ignore for the state tests
# STATE_IGNORE_ELEMENTS =
TESTS = $(check_PROGRAMS)
noinst_HEADERS = \
gst/capslist.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_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 = $(GST_OBJ_CFLAGS) $(CHECK_CFLAGS)
LDADD = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
$(GST_OBJ_LIBS) \
$(CHECK_LIBS)
libs_gdp_SOURCES = \
libs/gdp.c
libs_gdp_CFLAGS = $(AM_CFLAGS)
libs_gdp_LDADD = \
$(top_builddir)/libs/gst/dataprotocol/libgstdataprotocol-@GST_MAJORMINOR@.la \
$(LDADD)
elements_fdsrc_CFLAGS=$(GST_OBJ_CFLAGS) $(CHECK_CFLAGS) -DTESTFILE=\"$(top_srcdir)/configure.ac\"
elements_filesrc_CFLAGS=$(GST_OBJ_CFLAGS) $(CHECK_CFLAGS) -DTESTFILE=\"$(top_srcdir)/configure.ac\"
elements_fakesink_LDADD = \
$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
$(LDADD)
libs_basesrc_LDADD = \
$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
$(LDADD)
libs_bitreader_LDADD = \
$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
$(LDADD)
libs_bytereader_LDADD = \
$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
$(LDADD)
libs_adapter_LDADD = \
$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
$(LDADD)
libs_collectpads_LDADD = \
$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
$(LDADD)
libs_controller_LDADD = \
$(top_builddir)/libs/gst/controller/libgstcontroller-@GST_MAJORMINOR@.la \
$(LDADD)
libs_gstnetclientclock_LDADD = \
$(top_builddir)/libs/gst/net/libgstnet-@GST_MAJORMINOR@.la \
$(LDADD)
libs_gstnettimeprovider_LDADD = \
$(top_builddir)/libs/gst/net/libgstnet-@GST_MAJORMINOR@.la \
$(LDADD)
libs_typefindhelper_LDADD = \
$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
$(LDADD)
libs_transform1_LDADD = \
$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
$(LDADD)
# valgrind testing
# these just need valgrind fixing, period
VALGRIND_TO_FIX = \
gst/gstinfo \
libs/collectpads \
pipelines/parse-launch
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/dataprotocol \
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