mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-09-08 13:18:52 +00:00
This tests 100000 random multiplications/divisions of all scaling function variants and compares the result with the result that is generated by GMP on the same input. For this check for GSL and GMP during configure but only use it for this single unit test. Testing functions were provided by Kipp Cannon <kcannon@ligo.caltech.edu>
269 lines
6.9 KiB
Makefile
269 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)
|
|
|
|
gst_gstutils_LDADD = $(LDADD) $(GSL_LIBS) $(GMP_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
|