mutter/tests/conform/Makefile.am
Neil Roberts 1d59fccf10 Add a conformance test for point sprites
This adds a conformance test which renders a texture point using a 2x2
texture with a different color for each texel. It then verifies that
each texel is mapped to the correct position on the point. The test is
currently failing.

The test requires the point sprite feature flag so this patch also
adds a TEST_REQUIREMENT_* flag for that.

Reviewed-by: Robert Bragg <robert@linux.intel.com>
2012-03-07 15:13:29 +00:00

173 lines
5.3 KiB
Makefile

include $(top_srcdir)/build/autotools/Makefile.am.silent
NULL =
noinst_PROGRAMS = test-conformance
common_sources = \
test-utils.h \
test-utils.c \
test-conform-main.c \
$(NULL)
unported_test_sources = \
test-fixed.c \
test-materials.c \
test-viewport.c \
test-multitexture.c \
test-npot-texture.c \
test-object.c \
test-premult.c \
test-readpixels.c \
test-texture-get-set-data.c \
test-texture-mipmaps.c \
test-texture-pixmap-x11.c \
test-texture-rectangle.c \
test-atlas-migration.c \
test-vertex-buffer-contiguous.c \
test-vertex-buffer-interleved.c \
test-vertex-buffer-mutability.c \
$(NULL)
test_sources = \
test-bitmask.c \
test-blend-strings.c \
test-depth-test.c \
test-color-mask.c \
test-backface-culling.c \
test-just-vertex-shader.c \
test-path.c \
test-pipeline-user-matrix.c \
test-pipeline-uniforms.c \
test-pixel-buffer.c \
test-snippets.c \
test-wrap-modes.c \
test-sub-texture.c \
test-custom-attributes.c \
test-offscreen.c \
test-primitive.c \
test-texture-3d.c \
test-sparse-pipeline.c \
test-read-texture-formats.c \
test-write-texture-formats.c \
test-point-size.c \
test-point-sprite.c \
$(NULL)
test_conformance_SOURCES = $(common_sources) $(test_sources)
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-conformance
@true
stamp-test-conformance: Makefile $(srcdir)/test-conform-main.c
@mkdir -p wrappers
@sed -n -e 's/^ \{1,\}ADD_TEST *( *\([a-zA-Z0-9_]\{1,\}\).*/\1/p' $(srcdir)/test-conform-main.c > unit-tests
@chmod +x test-launcher.sh
@( echo "/stamp-test-conformance" ; \
echo "/test-conformance$(EXEEXT)" ; \
echo "*.o" ; \
echo ".gitignore" ; \
echo "unit-tests" ; ) > .gitignore
@for i in `cat unit-tests`; \
do \
unit=`basename $$i | sed -e s/_/-/g`; \
echo " GEN $$unit"; \
( echo "#!/bin/sh" ; echo "$(abs_builddir)/test-launcher.sh '$$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=`basename $$i | sed -e s/_/-/g`; \
echo " RM $$unit"; \
rm -f $$unit$(SHEXT) ; \
done \
&& rm -f unit-tests \
&& rm -f stamp-test-conformance
# 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
INCLUDES = \
-I$(top_srcdir) \
-I$(top_builddir)/cogl
test_conformance_CPPFLAGS = \
-DCOGL_ENABLE_EXPERIMENTAL_API \
-DCOGL_DISABLE_DEPRECATED \
-DTESTS_DATADIR=\""$(top_srcdir)/tests/data"\" \
-DCLUTTER_COMPILATION
test_conformance_CFLAGS = -g3 -O0 $(COGL_DEP_CFLAGS) $(COGL_EXTRA_CFLAGS)
test_conformance_LDADD = $(COGL_DEP_LIBS) $(top_builddir)/cogl/libcogl.la
test_conformance_LDFLAGS = -export-dynamic
test: wrappers
@$(top_srcdir)/tests/conform/run-tests.sh $(abs_builddir)/config.env
# XXX: we could prevent the conformance test suite from running
# by simply defining this variable conditionally
TEST_PROGS = test-conformance
.PHONY: test
EXTRA_DIST = test-launcher.sh.in run-tests.sh
DISTCLEANFILES = test-launcher.sh .gitignore
dist-hook: ../../build/win32/vs9/test-conformance-cogl.vcproj ../../build/win32/vs10/test-conformance-cogl.vcxproj ../../build/win32/vs10/test-conformance-cogl.vcxproj.filters
../../build/win32/vs9/test-conformance-cogl.vcproj: $(top_srcdir)/build/win32/vs9/test-conformance-cogl.vcprojin
for F in $(test_conformance_SOURCES); do \
case $$F in \
*.c) echo ' <File RelativePath="..\..\..\tests\conform\'$$F'" />' \
;; \
esac; \
done >testconformance.sourcefiles
$(CPP) -P - <$(top_srcdir)/build/win32/vs9/test-conformance-cogl.vcprojin >$@
rm testconformance.sourcefiles
../../build/win32/vs10/test-conformance-cogl.vcxproj: $(top_srcdir)/build/win32/vs10/test-conformance-cogl.vcxprojin
for F in $(test_conformance_SOURCES); do \
case $$F in \
*.c) echo ' <ClCompile Include="..\..\..\tests\conform\'$$F'" />' \
;; \
esac; \
done >testconformance.vs10.sourcefiles
$(CPP) -P - <$(top_srcdir)/build/win32/vs10/test-conformance-cogl.vcxprojin >$@
rm testconformance.vs10.sourcefiles
../../build/win32/vs10/test-conformance-cogl.vcxproj.filters: $(top_srcdir)/build/win32/vs10/test-conformance-cogl.vcxproj.filtersin
for F in $(test_conformance_SOURCES); do \
case $$F in \
*.c) echo ' <ClCompile Include="..\..\..\tests\conform\'$$F'"><Filter>Sources</Filter></ClCompile>' \
;; \
esac; \
done >testconformance.vs10.sourcefiles.filters
$(CPP) -P - <$(top_srcdir)/build/win32/vs10/test-conformance-cogl.vcxproj.filtersin >$@
rm testconformance.vs10.sourcefiles.filters
# Let the VS9/VS10 Project files be cleared out before they are re-expanded...
DISTCLEANFILES += ../../build/win32/vs9/test-conformance-cogl.vcproj \
../../build/win32/vs10/test-conformance-cogl.vcxproj \
../../build/win32/vs10/test-conformance-cogl.vcxproj.filters
# 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