initialize automake variables EXTRA_DIST and TEST_PROGS for unconditional
2007-11-21 21:06:47 Tim Janik <timj@imendio.com>
* Makefile.decl: initialize automake variables EXTRA_DIST and
TEST_PROGS for unconditional appending via += in other makefiles.
define recursive test targets: test, test-report, perf-report,
full-report, as described here:
http://mail.gnome.org/archives/gtk-devel-list/2007-November/msg00000.html
* Makefile.am:
* build/win32/vs8/Makefile.am, build/win32/dirent/Makefile.am:
* build/win32/Makefile.am, build/Makefile.am:
* docs/Makefile.am, docs/reference/Makefile.am:
* docs/reference/glib/Makefile.am, docs/reference/gobject/Makefile.am:
* gmodule/Makefile.am, tests/Makefile.am:
* tests/refcount/Makefile.am, tests/gobject/Makefile.am:
* glib/update-pcre/Makefile.am, glib/libcharset/Makefile.am:
* glib/tests/Makefile.am, glib/pcre/Makefile.am:
* glib/gnulib/Makefile.am, gobject/Makefile.am, m4macros/Makefile.am:
* gthread/Makefile.am, glib/Makefile.am:
include $(top_srcdir)/Makefile.decl, adapted EXTRA_DIST assignments.
* glib/tests/Makefile.am: removed example testing rules.
* glib/tests/testing.c: conditionalized performance and slow tests.
* glib/gtestutils.h:
* glib/gtestutils.c: work around g_test_config_vars not changing its
exported value after value assignments, aparently due to symbol aliases.
* glib/gtester.c: fixed off-by-one error which produced junk in logs.
* configure.in: check for python >= 2.4 and provide $PYTHON for scripts.
svn path=/trunk/; revision=5914
2007-11-21 21:09:46 +01:00
|
|
|
include $(top_srcdir)/Makefile.decl
|
|
|
|
|
2003-09-12 22:37:09 +02:00
|
|
|
INCLUDES = \
|
|
|
|
-I$(top_srcdir) \
|
|
|
|
-I$(top_srcdir)/glib \
|
|
|
|
-I$(top_srcdir)/gmodule \
|
2010-08-05 15:08:34 +02:00
|
|
|
-I$(top_builddir)/glib \
|
2003-09-12 22:37:09 +02:00
|
|
|
$(GLIB_DEBUG_FLAGS)
|
|
|
|
|
|
|
|
libglib = $(top_builddir)/glib/libglib-2.0.la
|
|
|
|
libgthread = $(top_builddir)/gthread/libgthread-2.0.la
|
|
|
|
libgmodule = $(top_builddir)/gmodule/libgmodule-2.0.la
|
|
|
|
libgobject = $(top_builddir)/gobject/libgobject-2.0.la
|
|
|
|
|
2010-02-10 17:29:12 +01:00
|
|
|
|
|
|
|
# libtool dependency tracking seems broken. this is currently
|
|
|
|
# required to get the tests to dynamic link against the in-tree
|
|
|
|
# libglib instead of the system one
|
|
|
|
libgobject += $(libglib)
|
|
|
|
|
2003-09-12 22:37:09 +02:00
|
|
|
########################################################################
|
|
|
|
|
|
|
|
noinst_LTLIBRARIES = libtestgobject.la
|
|
|
|
|
|
|
|
libtestgobject_la_SOURCES = \
|
|
|
|
testcommon.h \
|
|
|
|
testmarshal.h \
|
2003-09-29 16:54:39 +02:00
|
|
|
testmarshal.c \
|
|
|
|
testmodule.c \
|
|
|
|
testmodule.h
|
2003-09-12 22:37:09 +02:00
|
|
|
|
|
|
|
if CROSS_COMPILING
|
|
|
|
glib_genmarshal=$(GLIB_GENMARSHAL)
|
|
|
|
else
|
|
|
|
glib_genmarshal=$(top_builddir)/gobject/glib-genmarshal
|
|
|
|
endif
|
|
|
|
|
|
|
|
testmarshal.h: stamp-testmarshal.h
|
|
|
|
@true
|
|
|
|
stamp-testmarshal.h: @REBUILD@ testmarshal.list $(glib_genmarshal)
|
2010-06-16 04:01:02 +02:00
|
|
|
$(AM_V_GEN) $(glib_genmarshal) --prefix=test_marshal $(srcdir)/testmarshal.list --header >> xgen-gmh \
|
2003-09-12 22:37:09 +02:00
|
|
|
&& (cmp -s xgen-gmh testmarshal.h 2>/dev/null || cp xgen-gmh testmarshal.h) \
|
|
|
|
&& rm -f xgen-gmh xgen-gmh~ \
|
|
|
|
&& echo timestamp > $@
|
|
|
|
testmarshal.c: @REBUILD@ testmarshal.list $(glib_genmarshal)
|
2010-06-16 04:01:02 +02:00
|
|
|
$(AM_V_GEN) $(glib_genmarshal) --prefix=test_marshal $(srcdir)/testmarshal.list --body >> xgen-gmc \
|
2003-09-12 22:37:09 +02:00
|
|
|
&& cp xgen-gmc testmarshal.c \
|
|
|
|
&& rm -f xgen-gmc xgen-gmc~
|
|
|
|
|
|
|
|
BUILT_SOURCES = testmarshal.h testmarshal.c
|
2003-10-24 00:42:31 +02:00
|
|
|
CLEANFILES = stamp-testmarshal.h
|
2003-09-12 22:37:09 +02:00
|
|
|
|
|
|
|
########################################################################
|
|
|
|
|
2010-02-10 17:29:12 +01:00
|
|
|
LDADD = libtestgobject.la $(libgobject)
|
2003-09-12 22:37:09 +02:00
|
|
|
|
|
|
|
test_programs = \
|
2006-05-02 15:01:10 +02:00
|
|
|
deftype \
|
2005-08-09 21:20:33 +02:00
|
|
|
gvalue-test \
|
2006-02-18 22:07:18 +01:00
|
|
|
paramspec-test \
|
2003-09-12 22:37:09 +02:00
|
|
|
accumulator \
|
2003-09-29 16:54:39 +02:00
|
|
|
defaultiface \
|
2006-12-29 07:12:11 +01:00
|
|
|
dynamictype \
|
2003-10-02 07:28:00 +02:00
|
|
|
ifacecheck \
|
2003-09-12 22:37:09 +02:00
|
|
|
ifaceinit \
|
2003-10-02 06:03:57 +02:00
|
|
|
ifaceinherit \
|
2003-10-21 21:15:07 +02:00
|
|
|
ifaceproperties \
|
2005-05-05 16:57:29 +02:00
|
|
|
override \
|
Add performance tests for GObject primitives
These are basic performance test for a couple of basic gobject
primitives:
* construction of simple objects. Simple is a bare gobject derived
class with no properties, signals or interfaces.
* construction of complex objects. Complex is a gobject subclass
with construct properties, normal properties, signals, and
implements an interface.
* run-time type check of complex objects
* signal emissions
Lots of care is taken to try to make the results reproducible. Each
test is run for multible "rounds", where we try to make each round be
"not too short" in order to be significant wrt timer accuracy, but
also "not to long" to make the probability of some other random event
happening on the system (interrupts, other process scheduled, etc)
during the round less likely.
The current target round time is 4 msecs, which was picked without
rigour, but seems small wrt e.g. scheduler time.
For each test we then run the calculated round size for 60 seconds,
and then report the performance based on the minimal time of one
round. The model here is that any random stuff that happens during a
round can only slow it down, there is nothing that can make it go
faster, so the minimal time is the best estimate of how fast one round
goes.
The result is not ideal, even on a "idle" system the results vary
from round to round, but the variation seems to be less than 1%.
So, any performance difference reported by this test over 1% is
probably statistically significant.
Additionally the tests can be run with or without threads being
initialized. The script tests/gobject/run-performance.sh makes
it easy to produce a performance report for the current checkout.
https://bugzilla.gnome.org/show_bug.cgi?id=557100
2009-08-20 14:34:51 +02:00
|
|
|
performance \
|
2009-09-09 17:08:57 +02:00
|
|
|
performance-threaded \
|
2006-08-16 14:11:03 +02:00
|
|
|
singleton \
|
2005-05-05 16:57:29 +02:00
|
|
|
references
|
2003-09-12 22:37:09 +02:00
|
|
|
|
Add performance tests for GObject primitives
These are basic performance test for a couple of basic gobject
primitives:
* construction of simple objects. Simple is a bare gobject derived
class with no properties, signals or interfaces.
* construction of complex objects. Complex is a gobject subclass
with construct properties, normal properties, signals, and
implements an interface.
* run-time type check of complex objects
* signal emissions
Lots of care is taken to try to make the results reproducible. Each
test is run for multible "rounds", where we try to make each round be
"not too short" in order to be significant wrt timer accuracy, but
also "not to long" to make the probability of some other random event
happening on the system (interrupts, other process scheduled, etc)
during the round less likely.
The current target round time is 4 msecs, which was picked without
rigour, but seems small wrt e.g. scheduler time.
For each test we then run the calculated round size for 60 seconds,
and then report the performance based on the minimal time of one
round. The model here is that any random stuff that happens during a
round can only slow it down, there is nothing that can make it go
faster, so the minimal time is the best estimate of how fast one round
goes.
The result is not ideal, even on a "idle" system the results vary
from round to round, but the variation seems to be less than 1%.
So, any performance difference reported by this test over 1% is
probably statistically significant.
Additionally the tests can be run with or without threads being
initialized. The script tests/gobject/run-performance.sh makes
it easy to produce a performance report for the current checkout.
https://bugzilla.gnome.org/show_bug.cgi?id=557100
2009-08-20 14:34:51 +02:00
|
|
|
performance_LDADD = $(libgobject) $(libgthread)
|
2009-09-09 17:08:57 +02:00
|
|
|
performance_threaded_LDADD = $(libgobject) $(libgthread)
|
2003-09-12 22:37:09 +02:00
|
|
|
check_PROGRAMS = $(test_programs)
|
|
|
|
|
|
|
|
TESTS = $(test_programs)
|
|
|
|
TESTS_ENVIRONMENT = srcdir=$(srcdir) \
|
2005-12-05 17:39:34 +01:00
|
|
|
LIBCHARSET_ALIAS_DIR=$(top_builddir)/glib/libcharset \
|
|
|
|
MALLOC_CHECK_=2 \
|
2007-03-23 07:27:58 +01:00
|
|
|
MALLOC_PERTURB_=$$(($${RANDOM:-256} % 256))
|
2003-09-12 22:37:09 +02:00
|
|
|
|
|
|
|
########################################################################
|
|
|
|
|
initialize automake variables EXTRA_DIST and TEST_PROGS for unconditional
2007-11-21 21:06:47 Tim Janik <timj@imendio.com>
* Makefile.decl: initialize automake variables EXTRA_DIST and
TEST_PROGS for unconditional appending via += in other makefiles.
define recursive test targets: test, test-report, perf-report,
full-report, as described here:
http://mail.gnome.org/archives/gtk-devel-list/2007-November/msg00000.html
* Makefile.am:
* build/win32/vs8/Makefile.am, build/win32/dirent/Makefile.am:
* build/win32/Makefile.am, build/Makefile.am:
* docs/Makefile.am, docs/reference/Makefile.am:
* docs/reference/glib/Makefile.am, docs/reference/gobject/Makefile.am:
* gmodule/Makefile.am, tests/Makefile.am:
* tests/refcount/Makefile.am, tests/gobject/Makefile.am:
* glib/update-pcre/Makefile.am, glib/libcharset/Makefile.am:
* glib/tests/Makefile.am, glib/pcre/Makefile.am:
* glib/gnulib/Makefile.am, gobject/Makefile.am, m4macros/Makefile.am:
* gthread/Makefile.am, glib/Makefile.am:
include $(top_srcdir)/Makefile.decl, adapted EXTRA_DIST assignments.
* glib/tests/Makefile.am: removed example testing rules.
* glib/tests/testing.c: conditionalized performance and slow tests.
* glib/gtestutils.h:
* glib/gtestutils.c: work around g_test_config_vars not changing its
exported value after value assignments, aparently due to symbol aliases.
* glib/gtester.c: fixed off-by-one error which produced junk in logs.
* configure.in: check for python >= 2.4 and provide $PYTHON for scripts.
svn path=/trunk/; revision=5914
2007-11-21 21:09:46 +01:00
|
|
|
EXTRA_DIST += \
|
2003-10-24 00:42:31 +02:00
|
|
|
testmarshal.list
|
|
|
|
|
2003-09-12 22:37:09 +02:00
|
|
|
BUILT_EXTRA_DIST = \
|
|
|
|
testmarshal.h \
|
|
|
|
testmarshal.c
|
|
|
|
|
2003-10-24 00:42:31 +02:00
|
|
|
dist-hook: $(BUILT_EXTRA_DIST)
|
2003-09-12 22:37:09 +02:00
|
|
|
files='$(BUILT_EXTRA_DIST)'; \
|
|
|
|
for f in $$files; do \
|
|
|
|
if test -f $$f; then d=.; else d=$(srcdir); fi; \
|
|
|
|
cp $$d/$$f $(distdir) || exit 1; done
|
|
|
|
|
2003-10-24 00:42:31 +02:00
|
|
|
distclean-local:
|
2003-09-12 22:37:09 +02:00
|
|
|
if test $(srcdir) = .; then :; else \
|
|
|
|
rm -f $(BUILT_EXTRA_DIST); \
|
|
|
|
fi
|