4d98bdd9e5
The unit tests were failing to build with mingw32 because the libtest-fixtures was being included both by libcogl and the test-conformance and test-unit executables. That meant that the symbols were defined twice and it wouldn't link. The rule which depends on test-unit being built needs to be called test-unit.exe on Windows so this patch fixes it to use the $(EXEEXT) variable to get the right name. Reviewed-by: Robert Bragg <robert@linux.intel.com> (cherry picked from commit 575bac47fee0b425f4fd30761e5819443e6c045f) Conflicts: tests/conform/Makefile.am tests/unit/Makefile.am
97 lines
2.6 KiB
Makefile
97 lines
2.6 KiB
Makefile
include $(top_srcdir)/build/autotools/Makefile.am.silent
|
|
|
|
NULL =
|
|
|
|
noinst_PROGRAMS = test-unit
|
|
|
|
test_unit_SOURCES = test-unit-main.c
|
|
|
|
if OS_WIN32
|
|
SHEXT =
|
|
else
|
|
SHEXT = $(EXEEXT)
|
|
endif
|
|
|
|
# For convenience, this provides a way to easily run individual unit tests:
|
|
.PHONY: wrappers clean-wrappers
|
|
|
|
wrappers: stamp-test-unit
|
|
@true
|
|
stamp-test-unit: Makefile test-unit$(EXEEXT)
|
|
@mkdir -p wrappers
|
|
source $(top_builddir)/cogl/libcogl.la ; \
|
|
$(NM) $(top_builddir)/cogl/.libs/"$$dlname"| \
|
|
grep 'D unit_test_'|sed 's/.\+ D //' > unit-tests
|
|
@chmod +x $(top_srcdir)/tests/test-launcher.sh
|
|
@( echo "/stamp-test-unit" ; \
|
|
echo "/test-unit$(EXEEXT)" ; \
|
|
echo "*.o" ; \
|
|
echo ".gitignore" ; \
|
|
echo "unit-tests" ; ) > .gitignore
|
|
@for i in `cat unit-tests`; \
|
|
do \
|
|
unit=`echo $$i | sed -e s/_/-/g | sed s/unit-test-//`; \
|
|
echo " GEN $$unit"; \
|
|
( echo "#!/bin/sh" ; echo "$(top_srcdir)/tests/test-launcher.sh $(abs_builddir)/test-unit$(EXEEXT) 'unit_test_' '$$i' \"\$$@\"" ) > $$unit$(SHEXT) ; \
|
|
chmod +x $$unit$(SHEXT); \
|
|
echo "/$$unit$(SHEXT)" >> .gitignore; \
|
|
done \
|
|
&& echo timestamp > $(@F)
|
|
|
|
clean-wrappers:
|
|
@for i in `cat unit-tests`; \
|
|
do \
|
|
unit=`echo $$i | sed -e s/_/-/g | sed s/unit-test-//`; \
|
|
echo " RM $$unit"; \
|
|
rm -f $$unit$(SHEXT) ; \
|
|
done \
|
|
&& rm -f unit-tests \
|
|
&& rm -f stamp-test-unit
|
|
|
|
# NB: BUILT_SOURCES here a misnomer. We aren't building source, just inserting
|
|
# a phony rule that will generate symlink scripts for running individual tests
|
|
BUILT_SOURCES = wrappers
|
|
|
|
# The include of the $(buildir)/cogl directory here is to make it so
|
|
# that tests that directly include Cogl source code for whitebox
|
|
# testing (such as test-bitmask) will still compile
|
|
AM_CPPFLAGS = \
|
|
-I$(top_srcdir) \
|
|
-I$(top_srcdir)/test-fixtures \
|
|
-I$(top_builddir)/cogl
|
|
|
|
if !USE_GLIB
|
|
AM_CPPFLAGS += -I$(top_builddir)/deps/glib
|
|
endif
|
|
|
|
AM_CPPFLAGS += \
|
|
-DCOGL_DISABLE_DEPRECATED \
|
|
-DTESTS_DATADIR=\""$(top_srcdir)/tests/data"\" \
|
|
-DCOGL_COMPILATION
|
|
|
|
test_unit_CFLAGS = -g3 -O0 $(COGL_DEP_CFLAGS) $(COGL_EXTRA_CFLAGS)
|
|
test_unit_LDADD = \
|
|
$(COGL_DEP_LIBS) \
|
|
$(top_builddir)/cogl/libcogl.la \
|
|
$(LIBM)
|
|
if !USE_GLIB
|
|
test_unit_LDADD += $(top_builddir)/deps/glib/libglib.la
|
|
endif
|
|
test_unit_LDFLAGS = -export-dynamic
|
|
|
|
test: wrappers
|
|
@$(top_srcdir)/tests/run-tests.sh $(abs_builddir)/../config.env $(abs_builddir)/test-unit$(EXEEXT)
|
|
|
|
# XXX: we could prevent the unit test suite from running
|
|
# by simply defining this variable conditionally
|
|
TEST_PROGS = test-unit
|
|
|
|
.PHONY: test
|
|
|
|
DISTCLEANFILES = .gitignore
|
|
|
|
# we override the clean-generic target to clean up the wrappers so
|
|
# we cannot use CLEANFILES
|
|
clean-generic: clean-wrappers
|
|
$(QUIET_RM)rm -f .log
|