[perf] Make targets more consistent with the test suite

That is:
1) no VALGRING vs VG abbreviations
2) setting TARGETS and ITERS on the make command line works now
This commit is contained in:
Behdad Esfahbod 2007-04-18 19:09:53 -04:00
parent 9f3e0694e6
commit b9026d0b13
2 changed files with 23 additions and 11 deletions

View file

@ -57,20 +57,28 @@ $(top_builddir)/boilerplate/libcairoboilerplate.la: $(top_builddir)/src/libcairo
$(top_builddir)/src/libcairo.la:
cd $(top_builddir)/src && $(MAKE) $(AM_MAKEFLAGS) libcairo.la
# Do a funny transition of CAIRO_TEST_TARGET through TARGETS such that
# one can limit tested targets both through CAIRO_TEST_TARGET env var
# and TARGETS make var on the command line.
TARGETS = $(CAIRO_TEST_TARGET)
ITERS = $(CAIRO_PERF_ITERATIONS)
CAIRO_PERF_ENVIRONMENT = CAIRO_TEST_TARGET="$(TARGETS)" CAIRO_PERF_ITERATIONS="$(ITERS)"
perf: cairo-perf FORCE
./cairo-perf
$(CAIRO_PERF_ENVIRONMENT) ./cairo-perf
html: index.html
index.html: cairo-perf
./cairo-perf-diff -h HEAD > $@
$(CAIRO_PERF_ENVIRONMENT) ./cairo-perf-diff -h HEAD > $@
EXTRA_VG_FLAGS = $(CAIRO_EXTRA_VALGRIND_FLAGS)
VG_MEMCHECK_FLAGS = \
EXTRA_VALGRIND_FLAGS = $(CAIRO_EXTRA_VALGRIND_FLAGS)
VALGRIND_MEMCHECK_FLAGS = \
--tool=memcheck \
--suppressions=$(top_srcdir)/test/.valgrind-suppressions \
--leak-check=yes --show-reachable=yes
VG_CALLGRIND_FLAGS = \
VALGRIND_CALLGRIND_FLAGS = \
--tool=callgrind
CLEANFILES = \
valgrind-log \
@ -78,12 +86,12 @@ CLEANFILES = \
perf-valgrind: cairo-perf FORCE
$(top_srcdir)/libtool --mode=execute \
valgrind $(VG_MEMCHECK_FLAGS) $(EXTRA_VG_FLAGS) \
./cairo-perf 2>&1 | tee valgrind-log
valgrind $(VALGRIND_MEMCHECK_FLAGS) $(EXTRA_VALGRIND_FLAGS) \
$(CAIRO_PERF_ENVIRONMENT) ./cairo-perf 2>&1 | tee valgrind-log
perf-callgrind: cairo-perf FORCE
$(top_srcdir)/libtool --mode=execute \
valgrind $(VG_CALLGRIND_FLAGS) $(EXTRA_VG_FLAGS) \
./cairo-perf
valgrind $(VALGRIND_CALLGRIND_FLAGS) $(EXTRA_VALGRIND_FLAGS) \
$(CAIRO_PERF_ENVIRONMENT) ./cairo-perf
FORCE:

View file

@ -216,10 +216,11 @@ static void
parse_options (cairo_perf_t *perf, int argc, char *argv[])
{
int c;
const char *iters;
char *end;
if (getenv("CAIRO_PERF_ITERATIONS"))
perf->iterations = strtol(getenv("CAIRO_PERF_ITERATIONS"), NULL, 0);
if ((iters = getenv("CAIRO_PERF_ITERATIONS")) && *iters)
perf->iterations = strtol(iters, NULL, 0);
else
perf->iterations = CAIRO_PERF_ITERATIONS_DEFAULT;
perf->exact_iterations = 0;
@ -323,6 +324,9 @@ main (int argc, char *argv[])
stderr);
}
if (!*cairo_test_target)
cairo_test_target = NULL;
for (i = 0; targets[i].name; i++) {
perf.target = target = &targets[i];
perf.test_number = 0;