glib/tests/gobject/Makefile.am

97 lines
2.7 KiB
Makefile
Raw Normal View History

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
AM_CPPFLAGS = \
$(gmodule_INCLUDES) \
-DGLIB_DISABLE_DEPRECATION_WARNINGS \
$(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
# 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)
########################################################################
noinst_LTLIBRARIES = libtestgobject.la
libtestgobject_la_SOURCES = \
testcommon.h \
testmarshal.h \
testmarshal.c \
testmodule.c \
testmodule.h
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)
$(AM_V_GEN) $(glib_genmarshal) --prefix=test_marshal $(srcdir)/testmarshal.list --header >> xgen-gmh \
&& (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.h testmarshal.list $(glib_genmarshal)
$(AM_V_GEN) (echo "#include \"testmarshal.h\""; $(glib_genmarshal) --prefix=test_marshal $(srcdir)/testmarshal.list --body) >> xgen-gmc \
&& cp xgen-gmc testmarshal.c \
&& rm -f xgen-gmc xgen-gmc~
BUILT_SOURCES = testmarshal.h testmarshal.c
CLEANFILES = stamp-testmarshal.h
########################################################################
LDADD = libtestgobject.la $(libgobject)
test_programs = \
deftype \
gvalue-test \
paramspec-test \
accumulator \
defaultiface \
dynamictype \
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 \
performance-threaded \
singleton \
references
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)
performance_threaded_LDADD = $(libgobject) $(libgthread)
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 \
MALLOC_PERTURB_=$$(($${RANDOM:-256} % 256))
########################################################################
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 += \
testmarshal.list
BUILT_EXTRA_DIST = \
testmarshal.h \
testmarshal.c
dist-hook: $(BUILT_EXTRA_DIST)
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
distclean-local:
if test $(srcdir) = .; then :; else \
rm -f $(BUILT_EXTRA_DIST); \
fi