Blob Blame History Raw
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