SUBDIRS = \
reference \
tests
# The test program returns 'success' if all buffer tests passed
TESTS = buffer-tests-results.sh
buffer-tests-results.sh: buffer-tests-report
TESTS_ENVIRONMENT = REFERENCE_DIR=$(top_srcdir)/tests/buffer/reference
EXTRA_DIST = buffer-tests-results.sh
# Always build buffer-test to catch compilation problems early
BUILT_SOURCES = buffer-tests.inc
check_PROGRAMS = buffer-test
AM_CPPFLAGS = \
-I$(top_srcdir) \
-I$(top_builddir)/gegl \
-I$(top_srcdir)/gegl \
-I$(top_builddir)/gegl/buffer \
-I$(top_srcdir)/gegl/buffer \
-I$(top_builddir)/gegl/property-types \
-I$(top_srcdir)/gegl/property-types \
-I$(top_builddir)/gegl/operation \
-I$(top_srcdir)/gegl/operation \
-I$(top_builddir)/gegl/opencl \
-I$(top_srcdir)/gegl/opencl
AM_CFLAGS = $(DEP_CFLAGS) $(BABL_CFLAGS)
buffer_test_LDADD = \
$(top_builddir)/gegl/libgegl-$(GEGL_API_VERSION).la \
$(DEP_LIBS) $(BABL_LIBS)
# Our custom target rules
buffer-tests.inc: $(buffer_test_SOURCES) Makefile.am $(top_srcdir)/tests/buffer/tests/*.c
@echo 'Generating $@'
@echo '/* this file is generated by the build system */' > $@
@for TEST in `ls $(top_srcdir)/tests/buffer/tests/*.c | sed -e s:$(top_srcdir)/tests/buffer/tests/:: -e s:\\\.c::`; do \
echo "#define TESTNAME $$TEST" >> $@;\
echo "#define TEST() static gchar * TESTNAME (void)" >> $@;\
echo "#include \"tests/"$$TEST".c\"" >> $@;\
echo "#undef TESTNAME" >> $@;\
echo "#undef TEST" >> $@;\
done;
@echo 'typedef gchar *(*TestFunc) ();TestFunc tests[]={' >> $@
@for TEST in `ls $(top_srcdir)/tests/buffer/tests/*.c | sed -e s:$(top_srcdir)/tests/buffer/tests/:: -e s:\\\.c::`; do \
echo $$TEST, >> $@;\
done;
@echo '};' >> $@
@echo 'static gchar *test_names[]={' >> $@
@for TEST in `ls $(top_srcdir)/tests/buffer/tests/*.c | sed -e s:$(top_srcdir)/tests/buffer/tests/:: -e s:\\\.c::`; do \
echo \"$$TEST\", >> $@;\
done;
@echo '};' >> $@
builddir_gegl_env = GEGL_SWAP=RAM GEGL_PATH=$(top_builddir)/operations
buffer-tests-report: buffer-test$(EXEEXT) $(top_srcdir)/tests/buffer/reference/*.buf
@mkdir -p output > /dev/null 2>&1
$(builddir_gegl_env) ./buffer-test$(EXEEXT)
for f in $(top_srcdir)/tests/buffer/reference/*.buf; do LC_ALL=C diff --report-identical-files --context=50 $$f output/`basename $$f`; done > buffer-tests-report; true
clean-local:
rm -rf output
# Don't forget to clean
CLEANFILES = buffer-tests.inc buffer-tests-report