From d64ef355217db7a555da0029187d19c80ec12609 Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Thu, 19 Apr 2007 23:12:09 +0100 Subject: [PATCH] Include cairo-perf in make check Although cairo-perf is not written to perform explicit failure testing of cairo, it does generate long sequences of cairo operations which often trigger unexpected errors. By including it with make check, it becomes even easier for the programmer to check that one has not broken cairo in terms of expected behaviour or performance. --- Makefile.am | 3 ++- perf/Makefile.am | 30 +++++++++++++++++++----------- 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/Makefile.am b/Makefile.am index 23166ea02..3d8e36034 100644 --- a/Makefile.am +++ b/Makefile.am @@ -2,7 +2,7 @@ DIST_SUBDIRS = pixman src boilerplate test perf doc SUBDIRS = pixman src doc # libpng is required for our test programs if CAIRO_HAS_PNG_FUNCTIONS -SUBDIRS += boilerplate test +SUBDIRS += boilerplate test perf endif @@ -19,6 +19,7 @@ recheck: all cd test && $(MAKE) $(AM_MAKEFLAGS) recheck check-valgrind: all cd test && $(MAKE) $(AM_MAKEFLAGS) check-valgrind + cd perf && $(MAKE) $(AM_MAKEFLAGS) check-valgrind perf: all cd perf && $(MAKE) $(AM_MAKEFLAGS) perf lcov: check diff --git a/perf/Makefile.am b/perf/Makefile.am index 59e0b339b..86bdd26f8 100644 --- a/perf/Makefile.am +++ b/perf/Makefile.am @@ -65,7 +65,12 @@ TARGETS = $(CAIRO_TEST_TARGET) ITERS = $(CAIRO_PERF_ITERATIONS) CAIRO_PERF_ENVIRONMENT = CAIRO_TEST_TARGET="$(TARGETS)" CAIRO_PERF_ITERATIONS="$(ITERS)" -perf: cairo-perf FORCE +# Cap the maximum number of iterations during 'make check' +TESTS_ENVIRONMENT = CAIRO_TEST_TARGET="$(TARGETS)" CAIRO_PERF_ITERATIONS="10" + +TESTS = cairo-perf + +perf: cairo-perf $(CAIRO_PERF_ENVIRONMENT) ./cairo-perf html: index.html @@ -73,6 +78,7 @@ html: index.html index.html: cairo-perf $(CAIRO_PERF_ENVIRONMENT) ./cairo-perf-diff -h HEAD > $@ + EXTRA_VALGRIND_FLAGS = $(CAIRO_EXTRA_VALGRIND_FLAGS) VALGRIND_MEMCHECK_FLAGS = \ --tool=memcheck \ @@ -85,15 +91,17 @@ CLEANFILES = \ callgrind.out.* \ index.html -perf-valgrind: cairo-perf FORCE - $(CAIRO_PERF_ENVIRONMENT) $(top_srcdir)/libtool --mode=execute \ - valgrind $(VALGRIND_MEMCHECK_FLAGS) $(EXTRA_VALGRIND_FLAGS) \ - ./cairo-perf 2>&1 | tee valgrind-log -perf-callgrind: cairo-perf FORCE - $(CAIRO_PERF_ENVIRONMENT) $(top_srcdir)/libtool --mode=execute \ - valgrind $(VALGRIND_CALLGRIND_FLAGS) $(EXTRA_VALGRIND_FLAGS) \ - ./cairo-perf +check-valgrind perf-valgrind: + $(MAKE) $(AM_MAKEFLAGS) check \ + TESTS_ENVIRONMENT='$(TESTS_ENVIRONMENT) \ + $(top_srcdir)/libtool --mode=execute \ + valgrind $(VALGRIND_MEMCHECK_FLAGS) $(EXTRA_VALGRIND_FLAGS)' \ + | tee valgrind-log -FORCE: +perf-callgrind: + $(MAKE) $(AM_MAKEFLAGS) check \ + TESTS_ENVIRONMENT='$(TESTS_ENVIRONMENT) \ + $(top_srcdir)/libtool --mode=execute \ + valgrind $(VALGRIND_CALLGRIND_FLAGS) $(EXTRA_VALGRIND_FLAGS)' -.PHONY: perf perf-valgrind perf-callgrind FORCE +.PHONY: perf html check-valgrind perf-valgrind perf-callgrind