[cairo] [RFC] Make test/Makefile.win32 work again
Jeff Muizelaar
jeff at infidigm.net
Thu Feb 12 14:07:15 PST 2009
The attached patch adapts test/Makefile.win32 to the new test suite
architecture. As part of this, it creates a test/Makefiles.sources
that is shared with test/Makefile.win32 and test/Makefile.am.
Thoughts?
-Jeff
-------------- next part --------------
commit 2b5fd80495d795708eb768b0206001755c177a0d
Author: Jeff Muizelaar <jmuizelaar at mozilla.com>
Date: Thu Feb 12 16:34:23 2009 -0500
Add test/Makefile.sources
This lets Makefile.am and Makefile.win share a common list of sources
diff --git a/test/Makefile.am b/test/Makefile.am
index 9c670ed..758b02c 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -1,276 +1,63 @@
include $(top_srcdir)/build/Makefile.am.common
+include $(top_srcdir)/test/Makefile.sources
+
SUBDIRS=pdiff .
CLEANFILES += have-similar.*
-test_sources = \
- a1-image-sample.c \
- a1-mask.c \
- a1-traps-sample.c \
- a8-mask.c \
- alpha-similar.c \
- big-line.c \
- big-trap.c \
- bilevel-image.c \
- caps.c \
- caps-joins.c \
- caps-joins-alpha.c \
- caps-joins-curve.c \
- caps-sub-paths.c \
- clip-all.c \
- clip-empty.c \
- clip-fill-rule.c \
- clip-fill-rule-pixel-aligned.c \
- clip-nesting.c \
- clip-operator.c \
- clip-push-group.c \
- clip-twice.c \
- clip-zero.c \
- clipped-group.c \
- clipped-surface.c \
- close-path.c \
- composite-integer-translate-source.c \
- composite-integer-translate-over.c \
- composite-integer-translate-over-repeat.c \
- copy-path.c \
- create-for-stream.c \
- create-from-png.c \
- create-from-png-stream.c \
- culled-glyphs.c \
- dash-caps-joins.c \
- dash-curve.c \
- dash-no-dash.c \
- dash-offset-negative.c \
- dash-scale.c \
- dash-state.c \
- dash-zero-length.c \
- degenerate-arc.c \
- degenerate-dash.c \
- degenerate-path.c \
- degenerate-pen.c \
- device-offset.c \
- device-offset-fractional.c \
- device-offset-positive.c \
- device-offset-scale.c \
- extend-pad.c \
- extend-pad-border.c \
- extend-pad-similar.c \
- extend-reflect.c \
- extend-reflect-similar.c \
- extend-repeat.c \
- extend-repeat-similar.c \
- fill-alpha.c \
- fill-alpha-pattern.c \
- fill-and-stroke.c \
- fill-and-stroke-alpha.c \
- fill-and-stroke-alpha-add.c \
- fill-degenerate-sort-order.c \
- fill-image.c \
- fill-missed-stop.c \
- fill-rule.c \
- filter-bilinear-extents.c \
- filter-nearest-offset.c \
- filter-nearest-transformed.c \
- finer-grained-fallbacks.c \
- font-face-get-type.c \
- font-matrix-translation.c \
- font-options.c \
- glyph-cache-pressure.c \
- get-and-set.c \
- get-clip.c \
- get-group-target.c \
- get-path-extents.c \
- gradient-alpha.c \
- gradient-constant-alpha.c \
- gradient-zero-stops.c \
- group-paint.c \
- huge-linear.c \
- huge-radial.c \
- image-surface-source.c \
- infinite-join.c \
- in-fill-empty-trapezoid.c \
- in-fill-trapezoid.c \
- invalid-matrix.c \
- joins.c \
- large-clip.c \
- large-font.c \
- large-source.c \
- large-source-roi.c \
- leaky-dash.c \
- leaky-dashed-rectangle.c \
- leaky-dashed-stroke.c \
- leaky-polygon.c \
- line-width.c \
- line-width-scale.c \
- line-width-zero.c \
- linear-gradient.c \
- linear-gradient-reflect.c \
- long-dashed-lines.c \
- long-lines.c \
- mask.c \
- mask-alpha.c \
- mask-ctm.c \
- mask-surface-ctm.c \
- mask-transformed-image.c \
- mask-transformed-similar.c \
- meta-surface-pattern.c \
- mime-data.c \
- miter-precision.c \
- move-to-show-surface.c \
- new-sub-path.c \
- nil-surface.c \
- operator.c \
- operator-alpha.c \
- operator-clear.c \
- operator-source.c \
- over-above-source.c \
- over-around-source.c \
- over-below-source.c \
- over-between-source.c \
- paint.c \
- paint-repeat.c \
- paint-source-alpha.c \
- paint-with-alpha.c \
- path-precision.c \
- pattern-get-type.c \
- pattern-getters.c \
- pixman-rotate.c \
- png.c \
- push-group.c \
- radial-gradient.c \
- random-intersections.c \
- rectangle-rounding-error.c \
- rectilinear-fill.c \
- rectilinear-miter-limit.c \
- rectilinear-dash.c \
- rectilinear-stroke.c \
- reflected-stroke.c \
- rel-path.c \
- rgb24-ignore-alpha.c \
- rotate-image-surface-paint.c \
- scale-down-source-surface-paint.c \
- scale-offset-image.c \
- scale-offset-similar.c \
- scale-source-surface-paint.c \
- scaled-font-zero-matrix.c \
- stroke-ctm-caps.c \
- stroke-image.c \
- select-font-face.c \
- select-font-no-show-text.c \
- self-copy.c \
- self-copy-overlap.c \
- self-intersecting.c \
- set-source.c \
- show-glyphs-many.c \
- show-text-current-point.c \
- skew-extreme.c \
- smask.c \
- smask-fill.c \
- smask-image-mask.c \
- smask-mask.c \
- smask-paint.c \
- smask-stroke.c \
- smask-text.c \
- solid-pattern-cache-stress.c \
- source-clip.c \
- source-clip-scale.c \
- source-surface-scale-paint.c \
- spline-decomposition.c \
- surface-finish-twice.c \
- surface-pattern.c \
- surface-pattern-big-scale-down.c \
- surface-pattern-scale-down.c \
- surface-pattern-scale-up.c \
- text-antialias-gray.c \
- text-antialias-none.c \
- text-antialias-subpixel.c \
- text-cache-crash.c \
- text-glyph-range.c \
- text-pattern.c \
- text-rotate.c \
- text-transform.c \
- text-zero-len.c \
- toy-font-face.c \
- transforms.c \
- translate-show-surface.c \
- trap-clip.c \
- truetype-tables.c \
- twin.c \
- unantialiased-shapes.c \
- unbounded-operator.c \
- user-data.c \
- user-font.c \
- user-font-mask.c \
- user-font-proxy.c \
- user-font-rescale.c \
- zero-alpha.c
-
# Then we have a collection of tests that are only run if certain
# features are compiled into cairo
if HAVE_PTHREAD
-test_sources += pthread-show-text.c
+test_sources += $(pthread_test_sources)
endif
if CAIRO_HAS_FT_FONT
-test_sources += bitmap-font.c
-test_sources += ft-font-create-for-ft-face.c
-test_sources += ft-show-glyphs-positioning.c
-test_sources += ft-show-glyphs-table.c
-test_sources += ft-text-vertical-layout-type1.c
-test_sources += ft-text-vertical-layout-type3.c
-test_sources += ft-text-antialias-none.c
+test_sources += $(ft_font_sources)
endif
# Need to add quartz-surface-source
if CAIRO_HAS_QUARTZ_SURFACE
-test_sources += quartz-surface-source.c
+test_sources += $(quartz_surface_sources)
endif
if CAIRO_HAS_GLITZ_SURFACE
-test_sources += glitz-surface-source.c
+test_sources += $(glitz_surface_sources)
endif
if CAIRO_HAS_PDF_SURFACE
-test_sources += pdf-features.c
-test_sources += pdf-mime-data.c
-test_sources += pdf-surface-source.c
+test_sources += $(pdf_surface_test_sources)
endif
if CAIRO_HAS_PS_SURFACE
-test_sources += ps-features.c
-test_sources += ps-surface-source.c
+test_sources += $(ps_surface_test_sources)
endif
if CAIRO_HAS_SVG_SURFACE
-test_sources += svg-surface.c
-test_sources += svg-clip.c
-test_sources += svg-surface-source.c
+test_sources += $(svg_surface_test_sources)
endif
if CAIRO_HAS_XLIB_SURFACE
-test_sources += xlib-expose-event.c
-test_sources += xlib-surface.c
-test_sources += xlib-surface-source.c
+test_sources += $(xlib_surface_test_sources)
endif
if CAIRO_HAS_XLIB_XRENDER_SURFACE
-test_sources += get-xrender-format.c
+test_sources += $(xlib_xrender_surface_test_sources)
endif
if CAIRO_HAS_MULTI_PAGE_SURFACES
-test_sources += multi-page.c
+test_sources += $(multi_page_surface_test_sources)
endif
# Include fallback-resolution (once!) if we have any of the vector surfaces
if CAIRO_HAS_SVG_SURFACE
-test = fallback-resolution.c
+test = $(fallback_resolution_test_sources)
endif
if CAIRO_HAS_PDF_SURFACE
-test = fallback-resolution.c
+test = $(fallback_resolution_test_sources)
endif
if CAIRO_HAS_PS_SURFACE
-test = fallback-resolution.c
+test = $(fallback_resolution_test_sources)
endif
test_sources += $(test)
@@ -280,12 +67,8 @@ cairo-test-constructors.c: Makefile $(test_sources) make-cairo-test-constructors
@(cd $(srcdir) && ./make-cairo-test-constructors.pl $(test_sources)) > $@
cairo_test_suite_SOURCES = \
- buffer-diff.c \
- buffer-diff.h \
- cairo-test.c \
- cairo-test.h \
- cairo-test-private.h \
- cairo-test-runner.c \
+ $(cairo_test_suite_sources) \
+ $(cairo_test_suite_headers) \
$(test_sources)
if CAIRO_HAS_CONSTRUCTOR_ATTRIBUTE
else
diff --git a/test/Makefile.sources b/test/Makefile.sources
new file mode 100644
index 0000000..69c581b
--- /dev/null
+++ b/test/Makefile.sources
@@ -0,0 +1,251 @@
+test_sources = \
+ a1-image-sample.c \
+ a1-mask.c \
+ a1-traps-sample.c \
+ a8-mask.c \
+ alpha-similar.c \
+ big-line.c \
+ big-trap.c \
+ bilevel-image.c \
+ caps.c \
+ caps-joins.c \
+ caps-joins-alpha.c \
+ caps-joins-curve.c \
+ caps-sub-paths.c \
+ clip-all.c \
+ clip-empty.c \
+ clip-fill-rule.c \
+ clip-fill-rule-pixel-aligned.c \
+ clip-nesting.c \
+ clip-operator.c \
+ clip-push-group.c \
+ clip-twice.c \
+ clip-zero.c \
+ clipped-group.c \
+ clipped-surface.c \
+ close-path.c \
+ composite-integer-translate-source.c \
+ composite-integer-translate-over.c \
+ composite-integer-translate-over-repeat.c \
+ copy-path.c \
+ create-for-stream.c \
+ create-from-png.c \
+ create-from-png-stream.c \
+ culled-glyphs.c \
+ dash-caps-joins.c \
+ dash-curve.c \
+ dash-no-dash.c \
+ dash-offset-negative.c \
+ dash-scale.c \
+ dash-state.c \
+ dash-zero-length.c \
+ degenerate-arc.c \
+ degenerate-dash.c \
+ degenerate-path.c \
+ degenerate-pen.c \
+ device-offset.c \
+ device-offset-fractional.c \
+ device-offset-positive.c \
+ device-offset-scale.c \
+ extend-pad.c \
+ extend-pad-border.c \
+ extend-pad-similar.c \
+ extend-reflect.c \
+ extend-reflect-similar.c \
+ extend-repeat.c \
+ extend-repeat-similar.c \
+ fill-alpha.c \
+ fill-alpha-pattern.c \
+ fill-and-stroke.c \
+ fill-and-stroke-alpha.c \
+ fill-and-stroke-alpha-add.c \
+ fill-degenerate-sort-order.c \
+ fill-image.c \
+ fill-missed-stop.c \
+ fill-rule.c \
+ filter-bilinear-extents.c \
+ filter-nearest-offset.c \
+ filter-nearest-transformed.c \
+ finer-grained-fallbacks.c \
+ font-face-get-type.c \
+ font-matrix-translation.c \
+ font-options.c \
+ glyph-cache-pressure.c \
+ get-and-set.c \
+ get-clip.c \
+ get-group-target.c \
+ get-path-extents.c \
+ gradient-alpha.c \
+ gradient-constant-alpha.c \
+ gradient-zero-stops.c \
+ group-paint.c \
+ huge-linear.c \
+ huge-radial.c \
+ image-surface-source.c \
+ infinite-join.c \
+ in-fill-empty-trapezoid.c \
+ in-fill-trapezoid.c \
+ invalid-matrix.c \
+ joins.c \
+ large-clip.c \
+ large-font.c \
+ large-source.c \
+ large-source-roi.c \
+ leaky-dash.c \
+ leaky-dashed-rectangle.c \
+ leaky-dashed-stroke.c \
+ leaky-polygon.c \
+ line-width.c \
+ line-width-scale.c \
+ line-width-zero.c \
+ linear-gradient.c \
+ linear-gradient-reflect.c \
+ long-dashed-lines.c \
+ long-lines.c \
+ mask.c \
+ mask-alpha.c \
+ mask-ctm.c \
+ mask-surface-ctm.c \
+ mask-transformed-image.c \
+ mask-transformed-similar.c \
+ meta-surface-pattern.c \
+ mime-data.c \
+ miter-precision.c \
+ move-to-show-surface.c \
+ new-sub-path.c \
+ nil-surface.c \
+ operator.c \
+ operator-alpha.c \
+ operator-clear.c \
+ operator-source.c \
+ over-above-source.c \
+ over-around-source.c \
+ over-below-source.c \
+ over-between-source.c \
+ paint.c \
+ paint-repeat.c \
+ paint-source-alpha.c \
+ paint-with-alpha.c \
+ path-precision.c \
+ pattern-get-type.c \
+ pattern-getters.c \
+ pixman-rotate.c \
+ png.c \
+ push-group.c \
+ radial-gradient.c \
+ random-intersections.c \
+ rectangle-rounding-error.c \
+ rectilinear-fill.c \
+ rectilinear-miter-limit.c \
+ rectilinear-dash.c \
+ rectilinear-stroke.c \
+ reflected-stroke.c \
+ rel-path.c \
+ rgb24-ignore-alpha.c \
+ rotate-image-surface-paint.c \
+ scale-down-source-surface-paint.c \
+ scale-offset-image.c \
+ scale-offset-similar.c \
+ scale-source-surface-paint.c \
+ scaled-font-zero-matrix.c \
+ stroke-ctm-caps.c \
+ stroke-image.c \
+ select-font-face.c \
+ select-font-no-show-text.c \
+ self-copy.c \
+ self-copy-overlap.c \
+ self-intersecting.c \
+ set-source.c \
+ show-glyphs-many.c \
+ show-text-current-point.c \
+ skew-extreme.c \
+ smask.c \
+ smask-fill.c \
+ smask-image-mask.c \
+ smask-mask.c \
+ smask-paint.c \
+ smask-stroke.c \
+ smask-text.c \
+ solid-pattern-cache-stress.c \
+ source-clip.c \
+ source-clip-scale.c \
+ source-surface-scale-paint.c \
+ spline-decomposition.c \
+ surface-finish-twice.c \
+ surface-pattern.c \
+ surface-pattern-big-scale-down.c \
+ surface-pattern-scale-down.c \
+ surface-pattern-scale-up.c \
+ text-antialias-gray.c \
+ text-antialias-none.c \
+ text-antialias-subpixel.c \
+ text-cache-crash.c \
+ text-glyph-range.c \
+ text-pattern.c \
+ text-rotate.c \
+ text-transform.c \
+ text-zero-len.c \
+ toy-font-face.c \
+ transforms.c \
+ translate-show-surface.c \
+ trap-clip.c \
+ truetype-tables.c \
+ twin.c \
+ unantialiased-shapes.c \
+ unbounded-operator.c \
+ user-data.c \
+ user-font.c \
+ user-font-mask.c \
+ user-font-proxy.c \
+ user-font-rescale.c \
+ zero-alpha.c
+
+pthread_test_sources = pthread-show-text.c
+
+ft_font_test_sources = \
+ bitmap-font.c \
+ ft-font-create-for-ft-face.c \
+ ft-show-glyphs-positioning.c \
+ ft-show-glyphs-table.c \
+ ft-text-vertical-layout-type1.c \
+ ft-text-vertical-layout-type3.c \
+ ft-text-antialias-none.c
+
+quartz_surface_test_sources = quartz-surface-source.c
+
+glitz_surface_test_sources = glitz-surface-source.c
+
+pdf_surface_test_sources = \
+ pdf-features.c \
+ pdf-mime-data.c \
+ pdf-surface-source.c
+
+ps_surface_test_sources = \
+ ps-features.c \
+ ps-surface-source.c
+
+svg_surface_test_sources = \
+ svg-surface.c \
+ svg-clip.c \
+ svg-surface-source.c
+
+xlib_surface_test_sources = \
+ xlib-expose-event.c \
+ xlib-surface.c \
+ xlib-surface-source.c
+
+xlib_xrender_surface_test_sources = get-xrender-format.c
+
+multi_page_surface_test_sources = multi-page.c
+
+fallback_resolution_test_sources = fallback-resolution.c
+
+cairo_test_suite_headers = \
+ buffer-diff.h \
+ cairo-test.h \
+ cairo-test-private.h
+
+cairo_test_suite_sources = \
+ buffer-diff.c \
+ cairo-test.c \
+ cairo-test-runner.c
diff --git a/test/Makefile.win32 b/test/Makefile.win32
index 003d96a..d01b747 100644
--- a/test/Makefile.win32
+++ b/test/Makefile.win32
@@ -1,121 +1,46 @@
top_srcdir = ..
include $(top_srcdir)/build/Makefile.win32.common
+include $(top_srcdir)/test/Makefile.sources
CFLAGS += -I../src -I../boilerplate -I./pdiff
-LDFLAGS += ./pdiff/pdiff.lib ../src/$(CFG)/cairo-static.lib $(PIXMAN_LIBS) ../boilerplate/$(CFG)/boiler.lib $(EXE_LDFLAGS)
+LDFLAGS += ./pdiff/pdiff.lib ../src/$(CFG)/cairo.lib $(PIXMAN_LIBS) ../boilerplate/$(CFG)/boiler.lib $(EXE_LDFLAGS)
-TESTS = \
-a8-mask \
-caps-joins \
-caps-joins-alpha \
-caps-sub-paths \
-clip-all \
-clip-fill-rule \
-clip-fill-rule-pixel-aligned \
-clip-nesting \
-clip-operator \
-clip-twice \
-composite-integer-translate-source \
-composite-integer-translate-over \
-composite-integer-translate-over-repeat \
-create-for-stream \
-create-from-png \
-create-from-png-stream \
-dash-caps-joins \
-dash-no-dash \
-dash-offset-negative \
-dash-scale \
-dash-zero-length \
-degenerate-path \
-device-offset \
-device-offset-positive \
-extend-pad \
-extend-reflect \
-fill-and-stroke \
-fill-and-stroke-alpha \
-fill-and-stroke-alpha-add \
-fill-rule \
-filter-nearest-offset \
-font-face-get-type \
-font-matrix-translation \
-glyph-cache-pressure \
-get-and-set \
-get-clip \
-get-group-target \
-get-path-extents \
-gradient-alpha \
-leaky-dash \
-leaky-polygon \
-line-width \
-line-width-scale \
-linear-gradient \
-mask \
-mask-ctm \
-mask-surface-ctm \
-move-to-show-surface \
-new-sub-path \
-nil-surface \
-operator-clear \
-operator-source \
-paint \
-paint-source-alpha \
-paint-with-alpha \
-pattern-get-type \
-pattern-getters \
-pixman-rotate \
-rectangle-rounding-error \
-scale-source-surface-paint \
-select-font-face \
-select-font-no-show-text \
-self-copy \
-self-intersecting \
-set-source \
-show-text-current-point \
-source-clip \
-source-surface-scale-paint \
-surface-finish-twice \
-surface-pattern \
-text-antialias-gray \
-text-antialias-none \
-text-antialias-subpixel \
-text-cache-crash \
-text-pattern \
-text-rotate \
-transforms \
-translate-show-surface \
-trap-clip \
-unantialiased-shapes \
-unbounded-operator \
-user-data \
-rel-path \
-push-group \
-zero-alpha \
-$(NULL)
TESTCORE_SOURCES = \
cairo-test.c \
buffer-diff.c \
$(NULL)
-TEST_EXE = $(patsubst %, $(CFG)/%.exe, $(TESTS))
-# TEST_EXE = $(addsuffix .exe,$(TESTS))
+all: cairo-test-suite.exe
-all: $(TEST_EXE)
+cairo-test-constructors.c: $(test_sources)
+ ./make-cairo-test-constructors.pl $(test_sources) > $@
-$(CFG)/%.exe: %.c ./pdiff/pdiff.lib
- @mkdir -p $(CFG)
- @$(CC) $(CFLAGS) -Fe"$@" $< $(TESTCORE_SOURCES) -link $(LDFLAGS)
+SOURCES = $(cairo_test_suite_sources) $(test_sources) cairo-test-constructors.c
+
+OBJECTS = $(patsubst %.c, $(CFG)/%.obj, $(SOURCES))
+
+cairo-test-suite.exe: $(OBJECTS)
+ $(CC) $(OPT) $(MS_MDFLAGS) $(OBJECTS) -Fe"$@" -link $(LDFLAGS) /NODEFAULTLIB:library
./pdiff/pdiff.lib:
(cd pdiff ; $(MAKE) -f Makefile.win32)
-test: $(TEST_EXE)
- @for exe in $(TEST_EXE) ; do \
- echo $$exe ; \
- ( ./$$exe || exit 0 ) ; \
- done
+.PHONY: check test html
+
+check: cairo-test-suite.exe
+ ./cairo-test-suite.exe
+
+# define gen-html so that both 'test' and 'html' targets
+# can generate html while having different dependencies
+define gen-html
+ at echo Creating index.html...
+ at perl make-html.pl > index.html
+endef
+
+test: check
+ $(gen-html)
html:
- @echo Creating index.html...
- @perl make-html.pl > index.html
+ $(gen-html)
More information about the cairo
mailing list