diff options
38 files changed, 974 insertions, 1119 deletions
diff --git a/Makefile.am b/Makefile.am index b2555adc6..807bc6063 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,23 +1,18 @@ ## Process this file with automake to produce Makefile.in -include $(top_srcdir)/Makefile.decl +include $(top_srcdir)/glib.mk # http://people.gnome.org/~walters/docs/build-api.txt .buildapi-allow-builddir: ACLOCAL_AMFLAGS = -I m4macros ${ACLOCAL_FLAGS} -SUBDIRS = . m4macros glib gmodule gthread gobject gio po docs +SUBDIRS = . m4macros glib gmodule gthread gobject gio po docs tests DIST_SUBDIRS = $(SUBDIRS) build -if BUILD_MODULAR_TESTS -SUBDIRS += tests -else -DIST_SUBDIRS += tests -endif bin_SCRIPTS = glib-gettextize if OS_LINUX -TESTS = check-abis.sh +TESTS += check-abis.sh endif AM_CPPFLAGS = \ @@ -49,7 +44,7 @@ EXTRA_DIST += \ README.win32 \ HACKING \ autogen.sh \ - Makefile.decl \ + glib.mk \ makefile.msc \ msvc_recommended_pragmas.h \ config.h.win32.in \ @@ -67,7 +62,7 @@ EXTRA_DIST += \ # These may be in the builddir too -BUILT_EXTRA_DIST = \ +BUILT_EXTRA_DIST += \ README \ INSTALL \ ChangeLog \ @@ -105,7 +100,7 @@ $(pkgconfig_DATA): config.status # build documentation when doing distcheck DISTCHECK_CONFIGURE_FLAGS = --enable-debug --enable-gtk-doc --enable-man --disable-maintainer-mode -DISTCLEANFILES = config.lt +DISTCLEANFILES += config.lt distclean-local: lcov-clean if test $(srcdir) = .; then :; else \ diff --git a/Makefile.decl b/Makefile.decl deleted file mode 100644 index 067e7e5cd..000000000 --- a/Makefile.decl +++ /dev/null @@ -1,97 +0,0 @@ -# GLIB - Library of useful C routines - -#GTESTER = gtester # for non-GLIB packages -GTESTER = $(top_builddir)/glib/gtester # for the GLIB package -GTESTER_REPORT = $(top_builddir)/glib/gtester-report # for the GLIB package - -# initialize variables for unconditional += appending -EXTRA_DIST = -TEST_PROGS = - -### testing rules - -# test: run all tests in cwd and subdirs -test: test-nonrecursive -if OS_UNIX - @ for subdir in $(SUBDIRS) . ; do \ - test "$$subdir" = "." -o "$$subdir" = "po" || \ - ( cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $@ ) || exit $? ; \ - done - -# test-nonrecursive: run tests only in cwd -test-nonrecursive: ${TEST_PROGS} - @test -z "${TEST_PROGS}" || G_TEST_SRCDIR="$(abs_srcdir)" G_TEST_BUILDDIR="$(abs_builddir)" G_DEBUG=gc-friendly MALLOC_CHECK_=2 MALLOC_PERTURB_=$$(($${RANDOM:-256} % 256)) ${GTESTER} --verbose ${TEST_PROGS} -else -test-nonrecursive: -endif - -# test-report: run tests in subdirs and generate report -# perf-report: run tests in subdirs with -m perf and generate report -# full-report: like test-report: with -m perf and -m slow -test-report perf-report full-report: ${TEST_PROGS} - @test -z "${TEST_PROGS}" || { \ - case $@ in \ - test-report) test_options="-k";; \ - perf-report) test_options="-k -m=perf";; \ - full-report) test_options="-k -m=perf -m=slow";; \ - esac ; \ - if test -z "$$GTESTER_LOGDIR" ; then \ - G_TEST_SRCDIR="$(abs_srcdir)" G_TEST_BUILDDIR="$(abs_builddir)" ${GTESTER} --verbose $$test_options -o test-report.xml ${TEST_PROGS} ; \ - elif test -n "${TEST_PROGS}" ; then \ - G_TEST_SRCDIR="$(abs_srcdir)" G_TEST_BUILDDIR="$(abs_builddir)" ${GTESTER} --verbose $$test_options -o `mktemp "$$GTESTER_LOGDIR/log-XXXXXX"` ${TEST_PROGS} ; \ - fi ; \ - } - @ ignore_logdir=true ; \ - if test -z "$$GTESTER_LOGDIR" ; then \ - GTESTER_LOGDIR=`mktemp -d "\`pwd\`/.testlogs-XXXXXX"`; export GTESTER_LOGDIR ; \ - ignore_logdir=false ; \ - fi ; \ - if test -d "$(top_srcdir)/.git" ; then \ - REVISION=`git describe` ; \ - else \ - REVISION=$(VERSION) ; \ - fi ; \ - for subdir in $(SUBDIRS) . ; do \ - test "$$subdir" = "." -o "$$subdir" = "po" || \ - ( cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $@ ) || exit $? ; \ - done ; \ - $$ignore_logdir || { \ - echo '<?xml version="1.0"?>' > $@.xml ; \ - echo '<report-collection>' >> $@.xml ; \ - echo '<info>' >> $@.xml ; \ - echo ' <package>$(PACKAGE)</package>' >> $@.xml ; \ - echo ' <version>$(VERSION)</version>' >> $@.xml ; \ - echo " <revision>$$REVISION</revision>" >> $@.xml ; \ - echo '</info>' >> $@.xml ; \ - for lf in `ls -L "$$GTESTER_LOGDIR"/.` ; do \ - sed '1,1s/^<?xml\b[^>?]*?>//' <"$$GTESTER_LOGDIR"/"$$lf" >> $@.xml ; \ - done ; \ - echo >> $@.xml ; \ - echo '</report-collection>' >> $@.xml ; \ - rm -rf "$$GTESTER_LOGDIR"/ ; \ - ${GTESTER_REPORT} --version 2>/dev/null 1>&2 ; test "$$?" != 0 || ${GTESTER_REPORT} $@.xml >$@.html ; \ - } -.PHONY: test test-report perf-report full-report test-nonrecursive - -.PHONY: lcov genlcov lcov-clean -# use recursive makes in order to ignore errors during check -lcov: - -$(MAKE) $(AM_MAKEFLAGS) -k check - $(MAKE) $(AM_MAKEFLAGS) genlcov - -# we have to massage the lcov.info file slightly to hide the effect of libtool -# placing the objects files in the .libs/ directory separate from the *.c -# we also have to delete tests/.libs/libmoduletestplugin_*.gcda -genlcov: - rm -f $(top_builddir)/tests/.libs/libmoduletestplugin_*.gcda - $(LTP) --directory $(top_builddir) --capture --output-file glib-lcov.info --test-name GLIB_PERF --no-checksum --compat-libtool - LANG=C $(LTP_GENHTML) --prefix $(top_builddir) --output-directory glib-lcov --title "GLib Code Coverage" --legend --show-details glib-lcov.info - @echo "file://$(abs_top_builddir)/glib-lcov/index.html" - -lcov-clean: - -$(LTP) --directory $(top_builddir) -z - -rm -rf glib-lcov.info glib-lcov - -find -name '*.gcda' -print | xargs rm - -# run tests in cwd as part of make check -check-local: test-nonrecursive diff --git a/configure.ac b/configure.ac index 7617c1b2a..eb37a4d02 100644 --- a/configure.ac +++ b/configure.ac @@ -254,16 +254,8 @@ AC_ARG_ENABLE(rebuilds, [AS_HELP_STRING([--disable-rebuilds], [disable all source autogeneration rules])],, [enable_rebuilds=yes]) -AC_ARG_ENABLE(modular_tests, - AS_HELP_STRING([--disable-modular-tests], - [Disable build of test programs (default: no)]),, - [enable_modular_tests=yes]) -AC_ARG_ENABLE(installed_tests, - AS_HELP_STRING([--enable-installed-tests], - [Install test programs (default: no)]),, - [enable_installed_tests=no]) -AM_CONDITIONAL(BUILD_MODULAR_TESTS, test x$enable_modular_tests = xyes || test x$enable_installed_tests=xyes) -AM_CONDITIONAL(BUILDOPT_INSTALL_TESTS, test x$enable_installed_tests = xyes) + +GLIB_TESTS AC_MSG_CHECKING([whether to enable garbage collector friendliness]) AS_IF([test "x$enable_gc_friendly" = "xyes"], [ @@ -2710,7 +2702,7 @@ dnl ****************************************************************** AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes) -AS_IF([ test $cross_compiling = yes && test x$enable_modular_tests = xyes], [ +AS_IF([ test $cross_compiling = yes ], [ AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal, no) if test x$GLIB_GENMARSHAL = xno; then AC_MSG_ERROR(Could not find a glib-genmarshal in your PATH) @@ -3653,14 +3645,12 @@ AC_CHECK_ALIGNOF([unsigned long]) # Check for libdbus1 - Optional - is only used in the GDBus test cases # # 1.2.14 required for dbus_message_set_serial -AS_IF([ test x$enable_modular_tests = xyes], [ - PKG_CHECK_MODULES(DBUS1, - dbus-1 >= 1.2.14, - [AC_DEFINE(HAVE_DBUS1, 1, [Define if dbus-1 is available]) have_dbus1=yes], - have_dbus1=no) - AC_SUBST(DBUS1_CFLAGS) - AC_SUBST(DBUS1_LIBS) -]) +PKG_CHECK_MODULES(DBUS1, + dbus-1 >= 1.2.14, + [AC_DEFINE(HAVE_DBUS1, 1, [Define if dbus-1 is available]) have_dbus1=yes], + have_dbus1=no) +AC_SUBST(DBUS1_CFLAGS) +AC_SUBST(DBUS1_LIBS) AM_CONDITIONAL(HAVE_DBUS1, [test "x$have_dbus1" = "xyes"]) AC_CHECK_PROGS([DBUS_DAEMON], [dbus-daemon]) diff --git a/gio/Makefile.am b/gio/Makefile.am index ff662638f..1e7b6b717 100644 --- a/gio/Makefile.am +++ b/gio/Makefile.am @@ -1,6 +1,4 @@ -include $(top_srcdir)/Makefile.decl - -NULL = +include $(top_srcdir)/glib.mk SUBDIRS = gdbus-2.0/codegen @@ -10,7 +8,7 @@ endif if OS_WIN32_AND_DLL_COMPILATION if MS_LIB_AVAILABLE -noinst_DATA = gio-2.0.lib +noinst_DATA += gio-2.0.lib install_ms_lib_cmd = $(INSTALL) gio-2.0.lib $(DESTDIR)$(libdir) uninstall_ms_lib_cmd = -rm $(DESTDIR)$(libdir)/gio-2.0.lib @@ -233,7 +231,7 @@ platform_libadd += win32/libgiowin32.la platform_deps += win32/libgiowin32.la endif -SUBDIRS += . +SUBDIRS += . tests if HAVE_FAM SUBDIRS += fam @@ -327,10 +325,6 @@ giowin32include_HEADERS = \ endif -if BUILD_MODULAR_TESTS -SUBDIRS += tests -endif - libgio_2_0_la_SOURCES = \ gappinfo.c \ gasynchelper.c \ @@ -622,7 +616,7 @@ gioinclude_HEADERS = \ gioenumtypes.h # these sources (also mentioned above) are generated. -BUILT_SOURCES = \ +BUILT_SOURCES += \ gconstructor_as_data.h \ gioenumtypes.h \ gioenumtypes.c \ @@ -642,17 +636,17 @@ EXTRA_DIST += \ gnetworking.h.win32 \ $(NULL) -BUILT_EXTRA_DIST = \ +BUILT_EXTRA_DIST += \ gio.rc # This is read by gobject-introspection/misc/ and gtk-doc gio-public-headers.txt: Makefile $(AM_V_GEN) echo $(gioinclude_HEADERS) $(giowin32include_HEADERS) $(giounixinclude_HEADERS) > $@.tmp && mv $@.tmp $@ -CLEANFILES = gdbus-daemon-generated.c gdbus-daemon-generated.h gio-public-headers.txt gconstructor_as_data.h +CLEANFILES += gdbus-daemon-generated.c gdbus-daemon-generated.h gio-public-headers.txt gconstructor_as_data.h -DISTCLEANFILES = \ +DISTCLEANFILES += \ gioenumtypes.h \ gioenumtypes.c diff --git a/gio/fam/Makefile.am b/gio/fam/Makefile.am index 429d7f424..67e0d6766 100644 --- a/gio/fam/Makefile.am +++ b/gio/fam/Makefile.am @@ -1,6 +1,4 @@ -include $(top_srcdir)/Makefile.decl - -NULL = +include $(top_srcdir)/glib.mk module_flags = -export_dynamic -avoid-version -module -no-undefined -export-symbols-regex '^g_io_module_(load|unload|query)' diff --git a/gio/fen/Makefile.am b/gio/fen/Makefile.am index 0a22a6456..2b5eb50d0 100644 --- a/gio/fen/Makefile.am +++ b/gio/fen/Makefile.am @@ -1,8 +1,6 @@ -include $(top_srcdir)/Makefile.decl +include $(top_srcdir)/glib.mk -NULL = - -noinst_LTLIBRARIES = libfen.la +noinst_LTLIBRARIES += libfen.la libfen_la_SOURCES = \ fen-dump.c \ diff --git a/gio/gdbus-2.0/codegen/Makefile.am b/gio/gdbus-2.0/codegen/Makefile.am index 1afdaf08b..b3fb2c292 100644 --- a/gio/gdbus-2.0/codegen/Makefile.am +++ b/gio/gdbus-2.0/codegen/Makefile.am @@ -1,8 +1,6 @@ -include $(top_srcdir)/Makefile.decl +include $(top_srcdir)/glib.mk -NULL = bin_SCRIPTS = -CLEANFILES = codegendir = $(datadir)/glib-2.0/codegen codegen_PYTHON = \ diff --git a/gio/glib-compile-schemas.c b/gio/glib-compile-schemas.c index b80c08ade..d414d1c35 100644 --- a/gio/glib-compile-schemas.c +++ b/gio/glib-compile-schemas.c @@ -1126,7 +1126,7 @@ parse_state_start_schema (ParseState *state, { g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_INVALID_CONTENT, - _("<schema id='%s'> extends not-yet-existing " + _("<schema id='%s'> extends not yet existing " "schema '%s'"), id, extends_name); return; } @@ -1142,7 +1142,7 @@ parse_state_start_schema (ParseState *state, { g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_INVALID_CONTENT, - _("<schema id='%s'> is list of not-yet-existing " + _("<schema id='%s'> is list of not yet existing " "schema '%s'"), id, list_of); return; } diff --git a/gio/inotify/Makefile.am b/gio/inotify/Makefile.am index b51a0a903..283868553 100644 --- a/gio/inotify/Makefile.am +++ b/gio/inotify/Makefile.am @@ -1,8 +1,6 @@ -include $(top_srcdir)/Makefile.decl +include $(top_srcdir)/glib.mk -NULL = - -noinst_LTLIBRARIES = libinotify.la +noinst_LTLIBRARIES += libinotify.la libinotify_la_SOURCES = \ inotify-kernel.c \ diff --git a/gio/kqueue/Makefile.am b/gio/kqueue/Makefile.am index 652c43ed6..77f4cb2aa 100644 --- a/gio/kqueue/Makefile.am +++ b/gio/kqueue/Makefile.am @@ -1,8 +1,6 @@ -include $(top_srcdir)/Makefile.decl +include $(top_srcdir)/glib.mk -NULL = - -noinst_LTLIBRARIES = libkqueue.la +noinst_LTLIBRARIES += libkqueue.la libkqueue_la_SOURCES = \ gkqueuefilemonitor.c \ diff --git a/gio/tests/Makefile.am b/gio/tests/Makefile.am index f9d5d8021..14982515e 100644 --- a/gio/tests/Makefile.am +++ b/gio/tests/Makefile.am @@ -1,311 +1,101 @@ - -NULL = -BUILT_SOURCES = - -include $(top_srcdir)/Makefile.decl - -insttestdir = $(pkglibexecdir)/installed-tests +include $(top_srcdir)/glib.mk +dist_uninstalled_test_data = +test_ltlibraries = SUBDIRS = gdbus-object-manager-example services -AM_CPPFLAGS = \ - -DG_LOG_DOMAIN=\"GLib-GIO\" \ - $(gio_INCLUDES) \ - $(GLIB_DEBUG_FLAGS) \ - -I$(top_builddir)/gio \ - -I$(top_srcdir)/gio \ - $(DBUS1_CFLAGS) \ - -DSRCDIR=\""$(srcdir)"\" \ - -DBUILDDIR=\""$(abs_builddir)"\" \ - -DTEST_SERVICES=\""$(abs_top_builddir)/gio/tests/services"\" - -AM_CFLAGS = $(GLIB_WARN_CFLAGS) - -noinst_PROGRAMS = $(TEST_PROGS) $(SAMPLE_PROGS) -noinst_DATA = $(MISC_STUFF) - -LDADD = \ - $(top_builddir)/glib/libglib-2.0.la \ - $(top_builddir)/gthread/libgthread-2.0.la \ +LDADD = \ + $(top_builddir)/glib/libglib-2.0.la \ $(top_builddir)/gobject/libgobject-2.0.la \ $(top_builddir)/gmodule/libgmodule-2.0.la \ $(top_builddir)/gio/libgio-2.0.la +AM_CPPFLAGS = $(gio_INCLUDES) $(GLIB_DEBUG_FLAGS) -I$(top_builddir)/gio -I$(top_srcdir)/gio +DEFS = -DG_LOG_DOMAIN=\"GLib-GIO\" -DTEST_SERVICES=\""$(abs_top_builddir)/gio/tests/services"\" +AM_CFLAGS = $(GLIB_WARN_CFLAGS) -test_progs = \ - io-stream \ - memory-input-stream \ - memory-output-stream \ - readwrite \ - g-file \ - g-file-info \ - converter-stream \ - data-input-stream \ - data-output-stream \ - g-icon \ - buffered-input-stream \ - buffered-output-stream \ - sleepy-stream \ - filter-streams \ - volumemonitor \ - simple-async-result \ - srvtarget \ - contexts \ - gsettings \ - gschema-compile \ - async-close-output-stream \ - gdbus-addresses \ - network-address \ - gdbus-message \ - socket \ - pollable \ - tls-certificate \ - tls-interaction \ - cancellable \ - vfs \ - network-monitor \ - fileattributematcher \ - resources \ - proxy-test \ - simple-proxy \ - inet-address \ - permission \ - task \ - credentials \ - $(NULL) - -if HAVE_DBUS_DAEMON -test_progs += \ - actions \ - gdbus-connection \ - gdbus-connection-loss \ - gdbus-connection-slow \ - gdbus-names \ - gdbus-proxy \ - gdbus-proxy-threads \ - gdbus-proxy-well-known-name \ - gdbus-introspection \ - gdbus-threading \ - gdbus-export \ - gdbus-error \ - gdbus-bz627724 \ - gmenumodel \ - $(NULL) -endif - -if OS_UNIX -test_progs += \ - gdbus-close-pending \ - gdbus-connection-flush \ - gdbus-peer \ - gdbus-overflow \ - gdbus-exit-on-close \ - gdbus-non-socket \ - gdbus-peer-object-manager \ - appinfo \ - contenttype \ - mimeapps \ - file \ - $(NULL) -endif - -SAMPLE_PROGS = \ - resolver \ - socket-server \ - socket-client \ - echo-server \ - httpd \ - send-data \ - filter-cat \ - gdbus-example-export \ - gdbus-example-own-name \ - gdbus-example-watch-name \ - gdbus-example-watch-proxy \ - gdbus-example-server \ - gdbus-example-subtree \ - gdbus-example-peer \ - gdbus-example-proxy-subclass \ - proxy \ - gapplication-example-open \ - gapplication-example-cmdline \ - gapplication-example-cmdline2 \ - gapplication-example-cmdline3 \ - gapplication-example-actions \ - gapplication-example-dbushooks \ - gdbus-daemon \ - $(NULL) - -other_progs = \ - gdbus-testserver \ - gdbus-connection-flush-helper \ +# ----------------------------------------------------------------------------- +# Test programs buildable on all platforms + +test_programs = \ + io-stream \ + memory-input-stream \ + memory-output-stream \ + readwrite \ + g-file \ + g-file-info \ + converter-stream \ + data-input-stream \ + data-output-stream \ + g-icon \ + buffered-input-stream \ + buffered-output-stream \ + sleepy-stream \ + filter-streams \ + volumemonitor \ + simple-async-result \ + srvtarget \ + contexts \ + async-close-output-stream \ + gdbus-addresses \ + network-address \ + gdbus-message \ + socket \ + pollable \ + tls-interaction \ + cancellable \ + vfs \ + network-monitor \ + fileattributematcher \ + proxy-test \ + simple-proxy \ + inet-address \ + permission \ + task \ + credentials \ $(NULL) -noinst_PROGRAMS += $(other_progs) -if OS_UNIX -test_progs += \ - live-g-file \ - desktop-app-info \ - unix-fd \ - unix-streams \ - gapplication \ - basic-application \ - gdbus-test-codegen \ - socket-address \ +uninstalled_test_programs = \ $(NULL) -other_progs += \ - appinfo-test \ +dist_test_data = \ + contexts.c \ + g-icon.c \ $(NULL) -SAMPLE_PROGS += \ - gdbus-example-unix-fd-client \ - gdbus-example-objectmanager-server \ - gdbus-example-objectmanager-client \ - gdbus-test-fixture \ +test_data = \ + test.gresource \ $(NULL) -endif - -if OS_WIN32 -TEST_PROGS += win32-streams -endif - -if PLATFORM_WIN32 -no_undefined = -no-undefined -endif - -actions_SOURCES = actions.c gdbus-sessionbus.c gdbus-sessionbus.h - -unix_streams_LDADD = $(LDADD) \ - $(top_builddir)/gthread/libgthread-2.0.la - -win32_streams_LDADD = $(LDADD) \ - $(top_builddir)/gthread/libgthread-2.0.la - -resolver_LDADD = $(LDADD) \ - $(top_builddir)/gthread/libgthread-2.0.la - -socket_server_LDADD = $(LDADD) \ - $(top_builddir)/gthread/libgthread-2.0.la - -socket_client_SOURCES = socket-client.c \ - gtlsconsoleinteraction.c \ - gtlsconsoleinteraction.h -socket_client_LDADD = $(LDADD) \ - $(top_builddir)/gthread/libgthread-2.0.la - -echo_server_LDADD = $(LDADD) \ - $(top_builddir)/gthread/libgthread-2.0.la - -httpd_LDADD = $(LDADD) \ - $(top_builddir)/gthread/libgthread-2.0.la - -send_data_LDADD = $(LDADD) \ - $(top_builddir)/gthread/libgthread-2.0.la - -contexts_LDADD = $(LDADD) \ - $(top_builddir)/gthread/libgthread-2.0.la - -gdbus_daemon_SOURCES = gdbus-daemon.c $(top_srcdir)/gio/gdbusdaemon.c $(top_builddir)/gio/gdbus-daemon-generated.c - -gdbus_testserver_SOURCES = gdbus-testserver.c - -if HAVE_DBUS1 -test_progs += gdbus-serialization -gdbus_serialization_SOURCES = gdbus-serialization.c gdbus-tests.h gdbus-tests.c -gdbus_serialization_CFLAGS = $(AM_CFLAGS) $(DBUS1_CFLAGS) -gdbus_serialization_LDADD = $(LDADD) $(DBUS1_LIBS) -endif -test_progs += gdbus-auth -gdbus_auth_SOURCES = gdbus-auth.c gdbus-sessionbus.c gdbus-sessionbus.h gdbus-tests.h gdbus-tests.c -gdbus_auth_LDADD = $(LDADD) - -gdbus_bz627724_SOURCES = gdbus-bz627724.c gdbus-sessionbus.c gdbus-sessionbus.h gdbus-tests.h gdbus-tests.c - -gdbus_close_pending_SOURCES = gdbus-close-pending.c gdbus-sessionbus.c gdbus-sessionbus.h gdbus-tests.h gdbus-tests.c - -if OS_UNIX -gdbus-test-codegen-generated.h gdbus-test-codegen-generated.c : test-codegen.xml Makefile $(top_builddir)/gio/gdbus-2.0/codegen/gdbus-codegen - $(AM_V_GEN) UNINSTALLED_GLIB_SRCDIR=$(top_srcdir) \ - UNINSTALLED_GLIB_BUILDDIR=$(top_builddir) \ - $(PYTHON) $(top_builddir)/gio/gdbus-2.0/codegen/gdbus-codegen \ - --interface-prefix org.project. \ - --generate-c-code gdbus-test-codegen-generated \ - --c-generate-object-manager \ - --c-namespace Foo_iGen \ - --generate-docbook gdbus-test-codegen-generated-doc \ - --annotate "org.project.Bar" Key1 Value1 \ - --annotate "org.project.Bar" org.gtk.GDBus.Internal Value2 \ - --annotate "org.project.Bar.HelloWorld()" Key3 Value3 \ - --annotate "org.project.Bar::TestSignal" Key4 Value4 \ - --annotate "org.project.Bar:ay" Key5 Value5 \ - --annotate "org.project.Bar.TestPrimitiveTypes()[val_int32]" Key6 Value6 \ - --annotate "org.project.Bar.TestPrimitiveTypes()[ret_uint32]" Key7 Value7 \ - --annotate "org.project.Bar::TestSignal[array_of_strings]" Key8 Value8 \ - $(srcdir)/test-codegen.xml \ - $(NULL) - -BUILT_SOURCES += gdbus-test-codegen-generated.c gdbus-test-codegen-generated.h - -gdbus_test_codegen_SOURCES = gdbus-test-codegen.c gdbus-sessionbus.c gdbus-sessionbus.h gdbus-tests.h gdbus-tests.c -gdbus_test_codegen_SOURCES += gdbus-test-codegen-generated.c gdbus-test-codegen-generated.h - -endif # OS_UNIX - -gdbus_connection_SOURCES = gdbus-connection.c gdbus-sessionbus.c gdbus-sessionbus.h gdbus-tests.h gdbus-tests.c - -gdbus_connection_flush_SOURCES = \ - gdbus-connection-flush.c \ - test-io-stream.c \ - test-io-stream.h \ - test-pipe-unix.c \ - test-pipe-unix.h \ +uninstalled_test_extra_programs = \ + resolver \ + socket-server \ + echo-server \ + httpd \ + send-data \ + filter-cat \ + gdbus-example-export \ + gdbus-example-own-name \ + gdbus-example-watch-name \ + gdbus-example-watch-proxy \ + gdbus-example-server \ + gdbus-example-subtree \ + gdbus-example-peer \ + gdbus-example-proxy-subclass \ + proxy \ + gapplication-example-open \ + gapplication-example-cmdline \ + gapplication-example-cmdline2 \ + gapplication-example-cmdline3 \ + gapplication-example-actions \ + gapplication-example-dbushooks \ $(NULL) -gdbus_connection_loss_SOURCES = gdbus-connection-loss.c gdbus-sessionbus.c gdbus-sessionbus.h gdbus-tests.h gdbus-tests.c - -gdbus_connection_slow_SOURCES = gdbus-connection-slow.c gdbus-sessionbus.c gdbus-sessionbus.h gdbus-tests.h gdbus-tests.c - -gdbus_names_SOURCES = gdbus-names.c gdbus-sessionbus.c gdbus-sessionbus.h gdbus-tests.h gdbus-tests.c - -gdbus_proxy_SOURCES = gdbus-proxy.c gdbus-sessionbus.c gdbus-sessionbus.h gdbus-tests.h gdbus-tests.c - -gdbus_proxy_threads_SOURCES = gdbus-proxy-threads.c gdbus-sessionbus.c gdbus-sessionbus.h gdbus-tests.h gdbus-tests.c - -gdbus_proxy_well_known_name_SOURCES = gdbus-proxy-well-known-name.c gdbus-sessionbus.c gdbus-sessionbus.h gdbus-tests.h gdbus-tests.c - -gdbus_introspection_SOURCES = gdbus-introspection.c gdbus-sessionbus.c gdbus-sessionbus.h gdbus-tests.h gdbus-tests.c - -gdbus_threading_SOURCES = gdbus-threading.c gdbus-sessionbus.c gdbus-sessionbus.h gdbus-tests.h gdbus-tests.c - -gdbus_export_SOURCES = gdbus-export.c gdbus-sessionbus.c gdbus-sessionbus.h gdbus-tests.h gdbus-tests.c - -gdbus_error_SOURCES = gdbus-error.c gdbus-sessionbus.c gdbus-sessionbus.h gdbus-tests.h gdbus-tests.c - -gdbus_non_socket_SOURCES = \ - gdbus-non-socket.c \ - gdbus-tests.c \ - gdbus-tests.h \ - test-io-stream.c \ - test-io-stream.h \ - test-pipe-unix.c \ - test-pipe-unix.h \ +test_extra_programs = \ + gdbus-testserver \ + gdbus-connection-flush-helper \ $(NULL) -gdbus_exit_on_close_SOURCES = gdbus-exit-on-close.c gdbus-sessionbus.c gdbus-sessionbus.h gdbus-tests.h gdbus-tests.c - -resources_SOURCES = resources.c test_resources.c test_resources2.c test_resources2.h -resources_DEPENDENCIES = test.gresource - -gapplication_SOURCES = gapplication.c gdbus-sessionbus.h gdbus-sessionbus.c gdbus-tests.h gdbus-tests.c - -gmenumodel_SOURCES = gmenumodel.c gdbus-sessionbus.h gdbus-sessionbus.c - -TEST_PROGS += $(test_progs) - -TESTS_ENVIRONMENT = \ - GLIB_MKENUMS=../../gobject/glib-mkenums \ - GLIB_COMPILE_SCHEMAS=../glib-compile-schemas - +dist_uninstalled_test_data += $(addprefix schema-tests/,$(schema_tests)) schema_tests = \ array-default-not-in-choices.gschema.xml \ bad-choice.gschema.xml \ @@ -358,7 +148,7 @@ schema_tests = \ key-in-list-indirect.gschema.xml \ key-in-list.gschema.xml \ list-of-missing.gschema.xml \ - missing-quotes.gschema.xml \ + missing-quotes.gschema.xml \ no-default.gschema.xml \ overflow.gschema.xml \ override-missing.gschema.xml \ @@ -380,167 +170,277 @@ schema_tests = \ wrong-category.gschema.xml \ $(NULL) -schema_test_files = $(addprefix schema-tests/,$(schema_tests)) - -proxy_LDADD = $(LDADD) \ - $(top_builddir)/gthread/libgthread-2.0.la - -tls_certificate_SOURCES = tls-certificate.c gtesttlsbackend.c gtesttlsbackend.h - -cert_tests = \ - cert1.pem \ - cert2.pem \ - cert3.pem \ - cert-key.pem \ - cert-list.pem \ - key8.pem \ - key-cert.pem \ - key.pem \ - nothing.pem \ +test_programs += tls-certificate +tls_certificate_SOURCES = \ + tls-certificate.c \ + gtesttlsbackend.c \ + gtesttlsbackend.h +dist_test_data += $(cert_data_files) +cert_data_files = $(addprefix cert-tests/,$(cert_tests)) +cert_tests = \ + cert1.pem \ + cert2.pem \ + cert3.pem \ + cert-key.pem \ + cert-list.pem \ + key8.pem \ + key-cert.pem \ + key.pem \ + nothing.pem \ $(NULL) -cert_test_files = $(addprefix cert-tests/,$(cert_tests)) +uninstalled_test_extra_programs += socket-client +socket_client_SOURCES = \ + socket-client.c \ + gtlsconsoleinteraction.c \ + gtlsconsoleinteraction.h +EXTRA_DIST += socket-common.c + +uninstalled_test_extra_programs += gdbus-daemon +nodist_gdbus_daemon_SOURCES = \ + $(top_builddir)/gio/gdbus-daemon-generated.c +gdbus_daemon_SOURCES = \ + gdbus-daemon.c \ + $(top_srcdir)/gio/gdbusdaemon.c # ----------------------------------------------------------------------------- +# Test programs buildable on UNIX only if OS_UNIX -gdbus_example_objectmanager_server_CFLAGS = $(AM_CFLAGS) -I$(top_builddir)/gio/tests/gdbus-object-manager-example -gdbus_example_objectmanager_server_LDADD = $(top_builddir)/gio/tests/gdbus-object-manager-example/libgdbus-example-objectmanager.la $(LDADD) - -gdbus_example_objectmanager_client_CFLAGS = $(AM_CFLAGS) -I$(top_builddir)/gio/tests/gdbus-object-manager-example -gdbus_example_objectmanager_client_LDADD = $(top_builddir)/gio/tests/gdbus-object-manager-example/libgdbus-example-objectmanager.la $(LDADD) - -gdbus_peer_SOURCES = gdbus-peer.c gdbus-tests.h gdbus-tests.c -gdbus_peer_CFLAGS = $(AM_CFLAGS) -I$(top_builddir)/gio/tests/gdbus-object-manager-example -gdbus_peer_LDADD = $(top_builddir)/gio/tests/gdbus-object-manager-example/libgdbus-example-objectmanager.la $(LDADD) - -gdbus_test_fixture_SOURCES = gdbus-test-fixture.c -gdbus_test_fixture_CFLAGS = $(AM_CFLAGS) -I$(top_builddir)/gio/tests/gdbus-object-manager-example -gdbus_test_fixture_LDADD = $(top_builddir)/gio/tests/gdbus-object-manager-example/libgdbus-example-objectmanager.la $(LDADD) - -endif OS_UNIX +test_programs += \ + live-g-file \ + unix-fd \ + unix-streams \ + basic-application \ + socket-address \ + gdbus-peer-object-manager \ + contenttype \ + file \ + $(NULL) -# ----------------------------------------------------------------------------- +# Uninstalled because of the check-for-executable logic in DesktopAppInfo unable to find the installed executable +uninstalled_test_programs += \ + appinfo \ + desktop-app-info \ + $(NULL) -desktop_test_files = \ +dist_test_data += \ appinfo-test.desktop \ appinfo-test2.desktop \ appinfo-test-gnome.desktop \ appinfo-test-notgnome.desktop \ + file.c \ + $(NULL) + +test_extra_programs += \ + appinfo-test \ $(NULL) -EXTRA_DIST += \ - socket-common.c \ - org.gtk.test.gschema.xml \ - de.po \ - $(schema_test_files) \ - test-codegen.xml \ - $(cert_test_files) \ - test.gresource.xml \ - test1.txt \ - test2.gresource.xml \ - test2.txt \ - test3.gresource.xml \ - test3.txt \ - test4.gresource.xml \ - $(desktop_test_files) \ +uninstalled_test_extra_programs += \ + gdbus-example-unix-fd-client \ $(NULL) -MISC_STUFF = test.mo test.gresource +test_programs += mimeapps +clean-local: clean-mimeapps +clean-mimeapps: + rm -rf xdgdatadir xdgdatahome +uninstalled_test_programs += gsettings gschema-compile +gsettings_DEPENDENCIES = test.mo +CLEANFILES += test.mo de/LC_MESSAGES/test.mo +gsettings_CFLAGS = $(AM_CFLAGS) -DSRCDIR=\"$(abs_srcdir)\" test.mo: de.po - $(MSGFMT) -o test.mo $(srcdir)/de.po; \ + $(AM_V_GEN) $(MSGFMT) -o test.mo $(srcdir)/de.po; \ $(MKDIR_P) de/LC_MESSAGES; \ cp -f test.mo de/LC_MESSAGES +EXTRA_DIST += de.po +dist_uninstalled_test_data += \ + org.gtk.test.gschema.xml \ + org.gtk.schemasourcecheck.gschema.xml \ + testenum.h \ + enums.xml.template +# Generated while running the testcase itself... +CLEANFILES += \ + org.gtk.test.enums.xml \ + gsettings.store \ + gschemas.compiled \ + schema-source/gschemas.compiled -if CROSS_COMPILING - glib_compile_resources=$(GLIB_COMPILE_RESOURCES) -else - glib_compile_resources=$(top_builddir)/gio/glib-compile-resources -endif +test_programs += gdbus-connection-flush +gdbus_connection_flush_SOURCES = \ + gdbus-connection-flush.c \ + test-io-stream.c \ + test-io-stream.h \ + test-pipe-unix.c \ + test-pipe-unix.h -BUILT_SOURCES += test_resources.c test_resources2.c test_resources2.h -test_resources.c: test2.gresource.xml Makefile $(shell $(glib_compile_resources) --sourcedir=$(srcdir) --generate-dependencies $(srcdir)/test2.gresource.xml) - $(AM_V_GEN) $(glib_compile_resources) --target=$@ --sourcedir=$(srcdir) --generate-source --c-name _g_test1 $< +test_programs += gdbus-exit-on-close +gdbus_exit_on_close_SOURCES = gdbus-exit-on-close.c $(gdbus_tests_sources) $(gdbus_sessionbus_sources) -test_resources2.h test_resources2.c: test3.gresource.xml Makefile $(shell $(glib_compile_resources) --sourcedir=$(srcdir) --generate-dependencies $(srcdir)/test3.gresource.xml) - $(AM_V_GEN) $(glib_compile_resources) --target=$@ --sourcedir=$(srcdir) --generate --c-name _g_test2 --manual-register $< +test_programs += gdbus-non-socket +gdbus_non_socket_SOURCES = \ + gdbus-non-socket.c \ + gdbus-tests.c \ + gdbus-tests.h \ + test-io-stream.c \ + test-io-stream.h \ + test-pipe-unix.c \ + test-pipe-unix.h -plugin_resources.c: test4.gresource.xml Makefile $(shell $(glib_compile_resources) --sourcedir=$(srcdir) --generate-dependencies $(srcdir)/test4.gresource.xml) - $(AM_V_GEN) $(glib_compile_resources) --target=$@ --sourcedir=$(srcdir) --generate-source --c-name _g_plugin $< +# These three are manual-run tests because they need a session bus but don't bring one up themselves +uninstalled_test_extra_programs += gdbus-example-objectmanager-client +gdbus_example_objectmanager_client_LDADD = gdbus-object-manager-example/libgdbus-example-objectmanager.la $(LDADD) -test.gresource: test.gresource.xml Makefile $(shell $(glib_compile_resources) --sourcedir=$(srcdir) --generate-dependencies $(srcdir)/test.gresource.xml) - $(AM_V_GEN) $(glib_compile_resources) --target=$@ --sourcedir=$(srcdir) $< +uninstalled_test_extra_programs += gdbus-example-objectmanager-server +gdbus_example_objectmanager_server_LDADD = gdbus-object-manager-example/libgdbus-example-objectmanager.la $(LDADD) -if BUILDOPT_INSTALL_TESTS -insttest_LTLIBRARIES = libresourceplugin.la -else -noinst_LTLIBRARIES = libresourceplugin.la -endif +uninstalled_test_extra_programs += gdbus-test-fixture +gdbus_test_fixture_LDADD = gdbus-object-manager-example/libgdbus-example-objectmanager.la $(LDADD) -libresourceplugin_la_SOURCES = resourceplugin.c plugin_resources.c -libresourceplugin_la_LDFLAGS = -avoid-version -module $(no_undefined) -rpath $(insttestdir) -libresourceplugin_la_LIBADD = $(LDADD) - -CLEANFILES = gdbus-test-codegen-generated.[ch] gdbus-test-codegen-generated-doc-*.xml test_resources2.[ch] plugin_resources.c +# This is peer to peer so it doesn't need a session bus (so we can run it normally) +test_programs += gdbus-peer +gdbus_peer_LDADD = gdbus-object-manager-example/libgdbus-example-objectmanager.la $(LDADD) -DISTCLEANFILES = \ - applications/mimeinfo.cache \ - org.gtk.test.enums.xml \ - de/LC_MESSAGES/test.mo \ - test.mo \ - test.gresource \ - test_resources.c \ - gsettings.store \ - gschemas.compiled \ - schema-source/gschemas.compiled +# This test is currently unreliable +test_extra_programs += gdbus-overflow -distclean-local: - rm -rf xdgdatahome xdgdatadir +# ----------------------------------------------------------------------------- +# Test programs that need to bring up a session bus (requires dbus-daemon) -test_files = \ - contexts.c \ - g-icon.c \ - file.c \ - enums.xml.template \ - testenum.h \ - org.gtk.test.gschema.xml \ - org.gtk.schemasourcecheck.gschema.xml \ - test.gresource \ +if HAVE_DBUS_DAEMON +gdbus_sessionbus_sources = gdbus-sessionbus.c gdbus-sessionbus.h gdbus-tests.h gdbus-tests.c + +test_programs += \ + gapplication \ + actions \ + gdbus-auth \ + gdbus-connection \ + gdbus-bz627724 \ + gdbus-connection-loss \ + gdbus-connection-slow \ + gdbus-names \ + gdbus-proxy \ + gdbus-proxy-threads \ + gdbus-proxy-well-known-name \ + gdbus-introspection \ + gdbus-threading \ + gdbus-export \ + gdbus-test-codegen \ + gdbus-close-pending \ + gdbus-error \ + gmenumodel \ $(NULL) -EXTRA_DIST += $(test_files) -if BUILDOPT_INSTALL_TESTS -insttest_PROGRAMS = $(test_progs) $(other_progs) +gdbus_proxy_threads_CFLAGS = $(AM_CFLAGS) $(DBUS1_CFLAGS) +gapplication_SOURCES = $(gdbus_sessionbus_sources) gapplication.c +actions_SOURCES = $(gdbus_sessionbus_sources) actions.c +gdbus_auth_SOURCES = $(gdbus_sessionbus_sources) gdbus-auth.c +gdbus_connection_SOURCES = $(gdbus_sessionbus_sources) gdbus-connection.c +gdbus_bz627724_SOURCES = $(gdbus_sessionbus_sources) gdbus-bz627724.c +gdbus_connection_loss_SOURCES = $(gdbus_sessionbus_sources) gdbus-connection-loss.c +gdbus_connection_slow_SOURCES = $(gdbus_sessionbus_sources) gdbus-connection-slow.c +gdbus_names_SOURCES = $(gdbus_sessionbus_sources) gdbus-names.c +gdbus_proxy_SOURCES = $(gdbus_sessionbus_sources) gdbus-proxy.c +gdbus_proxy_threads_SOURCES = $(gdbus_sessionbus_sources) gdbus-proxy-threads.c +gdbus_proxy_well_known_name_SOURCES = $(gdbus_sessionbus_sources) gdbus-proxy-well-known-name.c +gdbus_introspection_SOURCES = $(gdbus_sessionbus_sources) gdbus-introspection.c +gdbus_threading_SOURCES = $(gdbus_sessionbus_sources) gdbus-threading.c +gdbus_export_SOURCES = $(gdbus_sessionbus_sources) gdbus-export.c +gdbus_error_SOURCES = $(gdbus_sessionbus_sources) gdbus-error.c +gmenumodel_SOURCES = $(gdbus_sessionbus_sources) gmenumodel.c +gdbus_close_pending_SOURCES = $(gdbus_sessionbus_sources) gdbus-close-pending.c +gdbus_test_codegen_SOURCES = $(gdbus_sessionbus_sources) gdbus-test-codegen.c +nodist_gdbus_test_codegen_SOURCES = gdbus-test-codegen-generated.c gdbus-test-codegen-generated.h + +gdbus-test-codegen.o: gdbus-test-codegen-generated.h +gdbus-test-codegen-generated.h gdbus-test-codegen-generated.c: test-codegen.xml Makefile $(top_builddir)/gio/gdbus-2.0/codegen/gdbus-codegen + $(AM_V_GEN) UNINSTALLED_GLIB_SRCDIR=$(top_srcdir) \ + UNINSTALLED_GLIB_BUILDDIR=$(top_builddir) \ + $(PYTHON) $(top_builddir)/gio/gdbus-2.0/codegen/gdbus-codegen \ + --interface-prefix org.project. \ + --generate-c-code gdbus-test-codegen-generated \ + --c-generate-object-manager \ + --c-namespace Foo_iGen \ + --generate-docbook gdbus-test-codegen-generated-doc \ + --annotate "org.project.Bar" Key1 Value1 \ + --annotate "org.project.Bar" org.gtk.GDBus.Internal Value2 \ + --annotate "org.project.Bar.HelloWorld()" Key3 Value3 \ + --annotate "org.project.Bar::TestSignal" Key4 Value4 \ + --annotate "org.project.Bar:ay" Key5 Value5 \ + --annotate "org.project.Bar.TestPrimitiveTypes()[val_int32]" Key6 Value6 \ + --annotate "org.project.Bar.TestPrimitiveTypes()[ret_uint32]" Key7 Value7 \ + --annotate "org.project.Bar::TestSignal[array_of_strings]" Key8 Value8 \ + $(srcdir)/test-codegen.xml \ + $(NULL) + +EXTRA_DIST += test-codegen.xml +CLEANFILES += gdbus-test-codegen-generated.[ch] gdbus-test-codegen-generated-doc-*.xml +endif # OS_UNIX +endif # HAVE_DBUS_DAEMON -schematestdir = $(insttestdir)/schema-tests -schematest_DATA = $(schema_test_files) +# ----------------------------------------------------------------------------- + +if OS_WIN32 +test_programs += win32-streams +endif -certtestdir = $(insttestdir)/cert-tests -certtest_DATA = $(cert_test_files) +if PLATFORM_WIN32 +no_undefined = -no-undefined +endif -testdatadir = $(insttestdir) -testdata_DATA = $(test_files) +if HAVE_DBUS1 +test_programs += gdbus-serialization +gdbus_serialization_CFLAGS = $(AM_CFLAGS) $(DBUS1_CFLAGS) +gdbus_serialization_LDADD = $(LDADD) $(DBUS1_LIBS) +gdbus_serialization_SOURCES = \ + gdbus-serialization.c \ + gdbus-tests.h \ + gdbus-tests.c +endif -testmetadir = $(datadir)/installed-tests/$(PACKAGE) -xfail_tests = desktop-app-info.test -developer_only_tests = gsettings.test gdbus-overflow.test -testmeta_DATA = $(filter-out $(xfail_tests) $(developer_only_tests),$(test_progs:=.test)) +# ----------------------------------------------------------------------------- +# The resources test is a bit more complicated... -%.test: %$(EXEEXT) Makefile - $(AM_V_GEN) (echo '[Test]' > $@.tmp; \ - echo 'Type=session' >> $@.tmp; \ - echo 'Exec=$(pkglibexecdir)/installed-tests/$<' >> $@.tmp; \ - mv $@.tmp $@) +test_programs += resources +resources_SOURCES = resources.c +nodist_resources_SOURCES = test_resources.c test_resources2.c test_resources2.h +resources_DEPENDENCIES = test.gresource -%.desktop.insttest: %.desktop - sed -e s,Exec=./appinfo-test,Exec=$(insttestdir)/appinfo-test, < $< >$@.tmp && mv $@.tmp $@ +test_ltlibraries += libresourceplugin.la +libresourceplugin_la_SOURCES = resourceplugin.c plugin_resources.c +libresourceplugin_la_LDFLAGS = -avoid-version -module -export-dynamic $(no_undefined) +libresourceplugin_la_LIBADD = $(LDADD) -installed_desktop_test_files = $(desktop_test_files:.desktop=.desktop.insttest) -install-data-local: $(installed_desktop_test_files) - for x in $(desktop_test_files); do \ - install -m 0644 $${x}.insttest $(DESTDIR)$(testdatadir)/$$x; \ - done - install -d -m 0755 $(DESTDIR)$(testdatadir)/schema-tests +# libtool contains a bug whereby the created .la file doesn't contain the correct dlname='' in the case that +# you're building a library but not installing it. This is apparently because the only considered use for an +# uninstalled library is as a convenience library for linking (despite the fact that we give -module). The lack +# of dlname='' in the .la trips up libltdl and GModule as well. We can trick libtool into believing that we +# will install the module by giving it a bogus -rpath for the uninstalled cases. +# +# See http://lists.gnu.org/archive/html/bug-libtool/2013-05/msg00009.html +if !ENABLE_INSTALLED_TESTS +libresourceplugin_la_LDFLAGS += -rpath / +endif +if CROSS_COMPILING + glib_compile_resources=$(GLIB_COMPILE_RESOURCES) +else + glib_compile_resources=$(top_builddir)/gio/glib-compile-resources endif + +resources.o: test_resources2.h +test_resources.c: test2.gresource.xml Makefile $(shell $(glib_compile_resources) --sourcedir=$(srcdir) --generate-dependencies $(srcdir)/test2.gresource.xml) + $(AM_V_GEN) $(glib_compile_resources) --target=$@ --sourcedir=$(srcdir) --generate-source --c-name _g_test1 $< + +test_resources2.h test_resources2.c: test3.gresource.xml Makefile $(shell $(glib_compile_resources) --sourcedir=$(srcdir) --generate-dependencies $(srcdir)/test3.gresource.xml) + $(AM_V_GEN) $(glib_compile_resources) --target=$@ --sourcedir=$(srcdir) --generate --c-name _g_test2 --manual-register $< + +plugin_resources.c: test4.gresource.xml Makefile $(shell $(glib_compile_resources) --sourcedir=$(srcdir) --generate-dependencies $(srcdir)/test4.gresource.xml) + $(AM_V_GEN) $(glib_compile_resources) --target=$@ --sourcedir=$(srcdir) --generate-source --c-name _g_plugin $< + +test.gresource: test.gresource.xml Makefile $(shell $(glib_compile_resources) --sourcedir=$(srcdir) --generate-dependencies $(srcdir)/test.gresource.xml) + $(AM_V_GEN) $(glib_compile_resources) --target=$@ --sourcedir=$(srcdir) $< + +EXTRA_DIST += test.gresource.xml test1.txt test2.gresource.xml test2.txt test3.gresource.xml test3.txt test4.gresource.xml + +CLEANFILES += test_resources.c test_resources2.[ch] plugin_resources.c test.gresource diff --git a/gio/tests/appinfo.c b/gio/tests/appinfo.c index f077a369a..5f84cbd63 100644 --- a/gio/tests/appinfo.c +++ b/gio/tests/appinfo.c @@ -15,6 +15,12 @@ test_launch (void) const gchar *path; gchar *uri; + if (!g_getenv ("DISPLAY")) + { + g_printerr ("No DISPLAY. Skipping test. "); + return; + } + path = g_test_get_filename (G_TEST_DIST, "appinfo-test.desktop", NULL); appinfo = (GAppInfo*)g_desktop_app_info_new_from_filename (path); g_assert (appinfo != NULL); diff --git a/gio/tests/file.c b/gio/tests/file.c index 86d00581d..c59a66013 100644 --- a/gio/tests/file.c +++ b/gio/tests/file.c @@ -91,7 +91,7 @@ test_type (void) g_assert_cmpint (type, ==, G_FILE_TYPE_REGULAR); g_object_unref (file); - file = g_file_get_child (datapath_f, "schema-tests"); + file = g_file_get_child (datapath_f, "cert-tests"); type = g_file_query_file_type (file, 0, NULL); g_assert_cmpint (type, ==, G_FILE_TYPE_DIRECTORY); diff --git a/gio/tests/gdbus-example-objectmanager-client.c b/gio/tests/gdbus-example-objectmanager-client.c index a99399665..b235ca140 100644 --- a/gio/tests/gdbus-example-objectmanager-client.c +++ b/gio/tests/gdbus-example-objectmanager-client.c @@ -1,5 +1,5 @@ -#include "gdbus-example-objectmanager-generated.h" +#include "gdbus-object-manager-example/gdbus-example-objectmanager-generated.h" /* ---------------------------------------------------------------------------------------------------- */ diff --git a/gio/tests/gdbus-example-objectmanager-server.c b/gio/tests/gdbus-example-objectmanager-server.c index 1233958b7..2a7bf63b6 100644 --- a/gio/tests/gdbus-example-objectmanager-server.c +++ b/gio/tests/gdbus-example-objectmanager-server.c @@ -1,5 +1,5 @@ -#include "gdbus-example-objectmanager-generated.h" +#include "gdbus-object-manager-example/gdbus-example-objectmanager-generated.h" /* ---------------------------------------------------------------------------------------------------- */ diff --git a/gio/tests/gdbus-object-manager-example/Makefile.am b/gio/tests/gdbus-object-manager-example/Makefile.am index 6875210a6..d6d141289 100644 --- a/gio/tests/gdbus-object-manager-example/Makefile.am +++ b/gio/tests/gdbus-object-manager-example/Makefile.am @@ -1,24 +1,14 @@ -NULL = -BUILT_SOURCES = -CLEANFILES = +include $(top_srcdir)/glib.mk -include $(top_srcdir)/Makefile.decl - -AM_CPPFLAGS = \ - -g \ - $(gio_INCLUDES) \ - $(GLIB_DEBUG_FLAGS) \ - -I$(top_builddir)/gio \ - -I$(top_srcdir)/gio \ - -DSRCDIR=\""$(srcdir)"\" +AM_CPPFLAGS = -g $(gio_INCLUDES) $(GLIB_DEBUG_FLAGS) -I$(top_builddir)/gio -I$(top_srcdir)/gio # ------------------------------------------------------------------------ -GDBUS_GENERATED = \ - gdbus-example-objectmanager-generated.h \ - gdbus-example-objectmanager-generated.c \ +GDBUS_GENERATED = \ + gdbus-example-objectmanager-generated.h \ + gdbus-example-objectmanager-generated.c \ gdbus-example-objectmanager-generated-org.gtk.GDBus.Example.ObjectManager.Animal.xml \ - gdbus-example-objectmanager-generated-org.gtk.GDBus.Example.ObjectManager.Cat.xml \ + gdbus-example-objectmanager-generated-org.gtk.GDBus.Example.ObjectManager.Cat.xml \ $(NULL) $(GDBUS_GENERATED) : gdbus-example-objectmanager.xml Makefile $(top_builddir)/gio/gdbus-2.0/codegen/gdbus-codegen @@ -33,11 +23,19 @@ $(GDBUS_GENERATED) : gdbus-example-objectmanager.xml Makefile $(top_builddir)/gi $< \ $(NULL) +test_ltlibraries = libgdbus-example-objectmanager.la + +if ENABLE_GTK_DOC +# The docs pull these in, so we need them even if not doing 'make check' BUILT_SOURCES += $(GDBUS_GENERATED) +noinst_LTLIBRARIES += libgdbus-example-objectmanager.la +endif -noinst_LTLIBRARIES = libgdbus-example-objectmanager.la -libgdbus_example_objectmanager_la_SOURCES = gdbus-example-objectmanager-generated.h gdbus-example-objectmanager-generated.c -libgdbus_example_objectmanager_la_LIBADD = \ +nodist_libgdbus_example_objectmanager_la_SOURCES = \ + gdbus-example-objectmanager-generated.h \ + gdbus-example-objectmanager-generated.c + +libgdbus_example_objectmanager_la_LIBADD = \ $(top_builddir)/glib/libglib-2.0.la \ $(top_builddir)/gobject/libgobject-2.0.la \ $(top_builddir)/gmodule/libgmodule-2.0.la \ @@ -47,4 +45,3 @@ libgdbus_example_objectmanager_la_LIBADD = \ EXTRA_DIST += gdbus-example-objectmanager.xml CLEANFILES += $(GDBUS_GENERATED) - diff --git a/gio/tests/gdbus-peer.c b/gio/tests/gdbus-peer.c index d85e94821..dba892b6b 100644 --- a/gio/tests/gdbus-peer.c +++ b/gio/tests/gdbus-peer.c @@ -53,7 +53,7 @@ #include "gdbus-tests.h" -#include "gdbus-example-objectmanager-generated.h" +#include "gdbus-object-manager-example/gdbus-example-objectmanager-generated.h" #ifdef G_OS_UNIX static gboolean is_unix = TRUE; diff --git a/gio/tests/gdbus-test-fixture.c b/gio/tests/gdbus-test-fixture.c index a4403dd72..1e0a3223c 100644 --- a/gio/tests/gdbus-test-fixture.c +++ b/gio/tests/gdbus-test-fixture.c @@ -1,5 +1,5 @@ -#include "gdbus-example-objectmanager-generated.h" +#include "gdbus-object-manager-example/gdbus-example-objectmanager-generated.h" /* ---------------------------------------------------------------------------------------------------- */ diff --git a/gio/tests/gschema-compile.c b/gio/tests/gschema-compile.c index aa83731f8..b687ab431 100644 --- a/gio/tests/gschema-compile.c +++ b/gio/tests/gschema-compile.c @@ -107,14 +107,14 @@ static const SchemaTest tests[] = { { "range-parse-error", NULL, "*invalid character in number*" }, { "from-docs", NULL, NULL }, { "extending", NULL, NULL }, - { "extend-missing", NULL, "*extends not-yet-existing schema*" }, + { "extend-missing", NULL, "*extends not yet existing schema*" }, { "extend-nonlist", NULL, "*which is not a list*" }, - { "extend-self", NULL, "*not-yet-existing*" }, + { "extend-self", NULL, "*not yet existing*" }, { "extend-wrong-list-indirect", NULL, "*'y' does not extend 'x'*" }, { "extend-wrong-list", NULL, "*'y' does not extend 'x'*" }, { "key-in-list-indirect", NULL, "*cannot add keys to a 'list*" }, { "key-in-list", NULL, "*cannot add keys to a 'list*" }, - { "list-of-missing", NULL, "*is list of not-yet-existing schema*" }, + { "list-of-missing", NULL, "*is list of not yet existing schema*" }, { "extend-and-shadow", NULL, "*shadows*use <override>*" }, { "extend-and-shadow-indirect", NULL, "*shadows*use <override>*" }, { "override", NULL, NULL }, diff --git a/gio/tests/gsettings.c b/gio/tests/gsettings.c index 922eea262..20967f463 100644 --- a/gio/tests/gsettings.c +++ b/gio/tests/gsettings.c @@ -660,14 +660,20 @@ test_l10n (void) str = NULL; setlocale (LC_MESSAGES, "de_DE"); - str = g_settings_get_string (settings, "error-message"); - setlocale (LC_MESSAGES, locale); + /* Only do the test if translation is actually working... */ + if (g_str_equal (dgettext ("test", "\"Unnamed\""), "\"Unbenannt\"")) + { + str = g_settings_get_string (settings, "error-message"); - g_assert_cmpstr (str, ==, "Unbenannt"); - g_object_unref (settings); - g_free (str); - str = NULL; + g_assert_cmpstr (str, ==, "Unbenannt"); + g_object_unref (settings); + g_free (str); + str = NULL; + } + else + g_printerr ("warning: translation is not working... skipping test. "); + setlocale (LC_MESSAGES, locale); g_free (locale); } @@ -701,14 +707,20 @@ test_l10n_context (void) str = NULL; setlocale (LC_MESSAGES, "de_DE"); - g_settings_get (settings, "backspace", "s", &str); - setlocale (LC_MESSAGES, locale); + /* Only do the test if translation is actually working... */ + if (g_str_equal (dgettext ("test", "\"Unnamed\""), "\"Unbenannt\"")) + { + g_settings_get (settings, "backspace", "s", &str); - g_assert_cmpstr (str, ==, "Löschen"); - g_object_unref (settings); - g_free (str); - str = NULL; + g_assert_cmpstr (str, ==, "Löschen"); + g_object_unref (settings); + g_free (str); + str = NULL; + } + else + g_printerr ("warning: translation is not working... skipping test. "); + setlocale (LC_MESSAGES, locale); g_free (locale); } @@ -1578,24 +1590,6 @@ test_child_schema (void) g_object_unref (settings); } -static gboolean -glib_translations_work (void) -{ - gboolean works; - gchar *locale; - gchar *orig = "Unnamed"; - - locale = g_strdup (setlocale (LC_MESSAGES, NULL)); - if (!setlocale (LC_MESSAGES, "de")) - works = FALSE; - else - works = dgettext ("glib20", orig) != orig; - setlocale (LC_MESSAGES, locale); - g_free (locale); - - return works; -} - #include "../strinfo.c" static void @@ -2316,11 +2310,8 @@ main (int argc, char *argv[]) g_test_add_func ("/gsettings/complex-types", test_complex_types); g_test_add_func ("/gsettings/changes", test_changes); - if (glib_translations_work ()) - { - g_test_add_func ("/gsettings/l10n", test_l10n); - g_test_add_func ("/gsettings/l10n-context", test_l10n_context); - } + g_test_add_func ("/gsettings/l10n", test_l10n); + g_test_add_func ("/gsettings/l10n-context", test_l10n_context); g_test_add_func ("/gsettings/delay-apply", test_delay_apply); g_test_add_func ("/gsettings/delay-revert", test_delay_revert); diff --git a/gio/win32/Makefile.am b/gio/win32/Makefile.am index b75bc36de..a48c68f03 100644 --- a/gio/win32/Makefile.am +++ b/gio/win32/Makefile.am @@ -1,8 +1,6 @@ -include $(top_srcdir)/Makefile.decl +include $(top_srcdir)/glib.mk -NULL = - -noinst_LTLIBRARIES = libgiowin32.la +noinst_LTLIBRARIES += libgiowin32.la libgiowin32_la_SOURCES = \ gwin32directorymonitor.c \ diff --git a/gio/xdgmime/Makefile.am b/gio/xdgmime/Makefile.am index fa39d05e5..42348a6ab 100644 --- a/gio/xdgmime/Makefile.am +++ b/gio/xdgmime/Makefile.am @@ -1,8 +1,8 @@ -include $(top_srcdir)/Makefile.decl +include $(top_srcdir)/glib.mk AM_CPPFLAGS = -DXDG_PREFIX=_gio_xdg -noinst_LTLIBRARIES = libxdgmime.la +noinst_LTLIBRARIES += libxdgmime.la libxdgmime_la_CFLAGS = $(GLIB_HIDDEN_VISIBILITY_CFLAGS) libxdgmime_la_SOURCES = \ diff --git a/glib.mk b/glib.mk new file mode 100644 index 000000000..e38d0662a --- /dev/null +++ b/glib.mk @@ -0,0 +1,223 @@ +# GLIB - Library of useful C routines + +#GTESTER = gtester # for non-GLIB packages +GTESTER = $(top_builddir)/glib/gtester # for the GLIB package +GTESTER_REPORT = $(top_builddir)/glib/gtester-report # for the GLIB package +NULL = + +# initialize variables for unconditional += appending +BUILT_SOURCES = +BUILT_EXTRA_DIST = +CLEANFILES = +DISTCLEANFILES = +MAINTAINERCLEANFILES = +EXTRA_DIST = +TEST_PROGS = + +installed_test_LTLIBRARIES = +installed_test_PROGRAMS = +installed_test_SCRIPTS = +nobase_installed_test_DATA = + +noinst_LTLIBRARIES = +noinst_PROGRAMS = +noinst_SCRIPTS = +noinst_DATA = + +check_LTLIBRARIES = +check_PROGRAMS = +check_SCRIPTS = +check_DATA = + +TESTS = + +### testing rules + +# test: run all tests in cwd and subdirs +test: test-nonrecursive +if OS_UNIX + @ for subdir in $(SUBDIRS) . ; do \ + test "$$subdir" = "." -o "$$subdir" = "po" || \ + ( cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $@ ) || exit $? ; \ + done + +# test-nonrecursive: run tests only in cwd +test-nonrecursive: ${TEST_PROGS} + @test -z "${TEST_PROGS}" || G_TEST_SRCDIR="$(abs_srcdir)" G_TEST_BUILDDIR="$(abs_builddir)" G_DEBUG=gc-friendly MALLOC_CHECK_=2 MALLOC_PERTURB_=$$(($${RANDOM:-256} % 256)) ${GTESTER} --verbose ${TEST_PROGS} +else +test-nonrecursive: +endif + +if OS_WIN32 +TESTS += $(addsuffix .exe, $(TEST_PROGS)) +endif + +# test-report: run tests in subdirs and generate report +# perf-report: run tests in subdirs with -m perf and generate report +# full-report: like test-report: with -m perf and -m slow +test-report perf-report full-report: ${TEST_PROGS} + @test -z "${TEST_PROGS}" || { \ + case $@ in \ + test-report) test_options="-k";; \ + perf-report) test_options="-k -m=perf";; \ + full-report) test_options="-k -m=perf -m=slow";; \ + esac ; \ + if test -z "$$GTESTER_LOGDIR" ; then \ + G_TEST_SRCDIR="$(abs_srcdir)" G_TEST_BUILDDIR="$(abs_builddir)" ${GTESTER} --verbose $$test_options -o test-report.xml ${TEST_PROGS} ; \ + elif test -n "${TEST_PROGS}" ; then \ + G_TEST_SRCDIR="$(abs_srcdir)" G_TEST_BUILDDIR="$(abs_builddir)" ${GTESTER} --verbose $$test_options -o `mktemp "$$GTESTER_LOGDIR/log-XXXXXX"` ${TEST_PROGS} ; \ + fi ; \ + } + @ ignore_logdir=true ; \ + if test -z "$$GTESTER_LOGDIR" ; then \ + GTESTER_LOGDIR=`mktemp -d "\`pwd\`/.testlogs-XXXXXX"`; export GTESTER_LOGDIR ; \ + ignore_logdir=false ; \ + fi ; \ + if test -d "$(top_srcdir)/.git" ; then \ + REVISION=`git describe` ; \ + else \ + REVISION=$(VERSION) ; \ + fi ; \ + for subdir in $(SUBDIRS) . ; do \ + test "$$subdir" = "." -o "$$subdir" = "po" || \ + ( cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $@ ) || exit $? ; \ + done ; \ + $$ignore_logdir || { \ + echo '<?xml version="1.0"?>' > $@.xml ; \ + echo '<report-collection>' >> $@.xml ; \ + echo '<info>' >> $@.xml ; \ + echo ' <package>$(PACKAGE)</package>' >> $@.xml ; \ + echo ' <version>$(VERSION)</version>' >> $@.xml ; \ + echo " <revision>$$REVISION</revision>" >> $@.xml ; \ + echo '</info>' >> $@.xml ; \ + for lf in `ls -L "$$GTESTER_LOGDIR"/.` ; do \ + sed '1,1s/^<?xml\b[^>?]*?>//' <"$$GTESTER_LOGDIR"/"$$lf" >> $@.xml ; \ + done ; \ + echo >> $@.xml ; \ + echo '</report-collection>' >> $@.xml ; \ + rm -rf "$$GTESTER_LOGDIR"/ ; \ + ${GTESTER_REPORT} --version 2>/dev/null 1>&2 ; test "$$?" != 0 || ${GTESTER_REPORT} $@.xml >$@.html ; \ + } +.PHONY: test test-report perf-report full-report test-nonrecursive + +.PHONY: lcov genlcov lcov-clean +# use recursive makes in order to ignore errors during check +lcov: + -$(MAKE) $(AM_MAKEFLAGS) -k check + $(MAKE) $(AM_MAKEFLAGS) genlcov + +# we have to massage the lcov.info file slightly to hide the effect of libtool +# placing the objects files in the .libs/ directory separate from the *.c +# we also have to delete tests/.libs/libmoduletestplugin_*.gcda +genlcov: + rm -f $(top_builddir)/tests/.libs/libmoduletestplugin_*.gcda + $(LTP) --directory $(top_builddir) --capture --output-file glib-lcov.info --test-name GLIB_PERF --no-checksum --compat-libtool + LANG=C $(LTP_GENHTML) --prefix $(top_builddir) --output-directory glib-lcov --title "GLib Code Coverage" --legend --show-details glib-lcov.info + @echo "file://$(abs_top_builddir)/glib-lcov/index.html" + +lcov-clean: + -$(LTP) --directory $(top_builddir) -z + -rm -rf glib-lcov.info glib-lcov + -find -name '*.gcda' -print | xargs rm + +# run tests in cwd as part of make check +check-local: test-nonrecursive + +# We support a fairly large range of possible variables. It is expected that all types of files in a test suite +# will belong in exactly one of the following variables. +# +# First, we support the usual automake suffixes, but in lowercase, with the customary meaning: +# +# test_programs, test_scripts, test_data, test_ltlibraries +# +# The above are used to list files that are involved in both uninstalled and installed testing. The +# test_programs and test_scripts are taken to be actual testcases and will be run as part of the test suite. +# Note that _data is always used with the nobase_ automake variable name to ensure that installed test data is +# installed in the same way as it appears in the package layout. +# +# In order to mark a particular file as being only for one type of testing, use 'installed' or 'uninstalled', +# like so: +# +# installed_test_programs, uninstalled_test_programs +# installed_test_scripts, uninstalled_test_scripts +# installed_test_data, uninstalled_test_data +# installed_test_ltlibraries, uninstalled_test_ltlibraries +# +# Additionally, we support 'extra' infixes for programs and scripts. This is used for support programs/scripts +# that should not themselves be run as testcases (but exist to be used from other testcases): +# +# test_extra_programs, installed_test_extra_programs, uninstalled_test_extra_programs +# test_extra_scripts, installed_test_extra_scripts, uninstalled_test_extra_scripts +# +# Additionally, for _scripts and _data, we support the customary dist_ prefix so that the named script or data +# file automatically end up in the tarball. +# +# dist_test_scripts, dist_test_data, dist_test_extra_scripts +# dist_installed_test_scripts, dist_installed_test_data, dist_installed_test_extra_scripts +# dist_uninstalled_test_scripts, dist_uninstalled_test_data, dist_uninstalled_test_extra_scripts +# +# Note that no file is automatically disted unless it appears in one of the dist_ variables. This follows the +# standard automake convention of not disting programs scripts or data by default. +# +# test_programs, test_scripts, uninstalled_test_programs and uninstalled_test_scripts (as well as their disted +# variants) will be run as part of the in-tree 'make check'. These are all assumed to be runnable under +# gtester. That's a bit strange for scripts, but it's possible. + +# we use test -z "$(TEST_PROGS)" above, so make sure we have no extra whitespace... +TEST_PROGS += $(strip $(test_programs) $(test_scripts) $(uninstalled_test_programs) $(uninstalled_test_scripts) \ + $(dist_test_scripts) $(dist_uninstalled_test_scripts)) + +# Note: build even the installed-only targets during 'make check' to ensure that they still work. +# We need to do a bit of trickery here and manage disting via EXTRA_DIST instead of using dist_ prefixes to +# prevent automake from mistreating gmake functions like $(wildcard ...) and $(addprefix ...) as if they were +# filenames, including removing duplicate instances of the opening part before the space, eg. '$(addprefix'. +all_test_programs = $(test_programs) $(uninstalled_test_programs) $(installed_test_programs) \ + $(test_extra_programs) $(uninstalled_test_extra_programs) $(installed_test_extra_programs) +all_test_scripts = $(test_scripts) $(uninstalled_test_scripts) $(installed_test_scripts) \ + $(test_extra_scripts) $(uninstalled_test_extra_scripts) $(installed_test_extra_scripts) +all_dist_test_scripts = $(dist_test_scripts) $(dist_uninstalled_test_scripts) $(dist_installed_test_scripts) \ + $(dist_test_extra_scripts) $(dist_uninstalled_test_extra_scripts) $(dist_installed_test_extra_scripts) +all_test_scripts += $(all_dist_test_scripts) +EXTRA_DIST += $(all_dist_test_scripts) +all_test_data = $(test_data) $(uninstalled_test_data) $(installed_test_data) +all_dist_test_data = $(dist_test_data) $(dist_uninstalled_test_data) $(dist_installed_test_data) +all_test_data += $(all_dist_test_data) +EXTRA_DIST += $(all_dist_test_data) +all_test_ltlibs = $(test_ltlibraries) $(uninstalled_test_ltlibraries) $(installed_test_ltlibraries) + +if ENABLE_ALWAYS_BUILD_TESTS +noinst_LTLIBRARIES += $(all_test_ltlibs) +noinst_PROGRAMS += $(all_test_programs) +noinst_SCRIPTS += $(all_test_scripts) +noinst_DATA += $(all_test_data) +else +check_LTLIBRARIES += $(all_test_ltlibs) +check_PROGRAMS += $(all_test_programs) +check_SCRIPTS += $(all_test_scripts) +check_DATA += $(all_test_data) +endif + +if ENABLE_INSTALLED_TESTS +installed_test_PROGRAMS += $(test_programs) $(installed_test_programs) \ + $(test_extra_programs) $(installed_test_extra_programs) +installed_test_SCRIPTS += $(test_scripts) $(installed_test_scripts) \ + $(test_extra_scripts) $(test_installed_extra_scripts) +installed_test_SCRIPTS += $(dist_test_scripts) $(dist_test_extra_scripts) \ + $(dist_installed_test_scripts) $(dist_installed_test_extra_scripts) +nobase_installed_test_DATA += $(test_data) $(installed_test_data) +nobase_installed_test_DATA += $(dist_test_data) $(dist_installed_test_data) +installed_test_LTLIBRARIES += $(test_ltlibraries) $(installed_test_ltlibraries) +installed_testcases = $(test_programs) $(installed_test_programs) \ + $(test_scripts) $(installed_test_scripts) \ + $(dist_test_scripts) $(dist_installed_test_scripts) + +installed_test_meta_DATA = $(installed_testcases:=.test) + +%.test: %$(EXEEXT) Makefile + $(AM_V_GEN) (echo '[Test]' > $@.tmp; \ + echo 'Type=session' >> $@.tmp; \ + echo 'Exec=$(installed_testdir)/$<' >> $@.tmp; \ + mv $@.tmp $@) + +CLEANFILES += $(installed_test_meta_DATA) +endif diff --git a/glib/Makefile.am b/glib/Makefile.am index 0744a6c52..12463fa67 100644 --- a/glib/Makefile.am +++ b/glib/Makefile.am @@ -1,9 +1,5 @@ ## Process this file with automake to produce Makefile.in -include $(top_srcdir)/Makefile.decl - -BUILT_SOURCES = -DISTCLEANFILES = -CLEANFILES = +include $(top_srcdir)/glib.mk # # Generate glibconfig.h @@ -35,11 +31,8 @@ else MAYBE_PCRE = pcre endif -SUBDIRS = libcharset $(PRINTF_SUBDIR) $(MAYBE_PCRE) update-pcre . +SUBDIRS = libcharset $(PRINTF_SUBDIR) $(MAYBE_PCRE) update-pcre . tests DIST_SUBDIRS = libcharset gnulib pcre update-pcre tests -if BUILD_MODULAR_TESTS -SUBDIRS += tests -endif AM_CPPFLAGS = \ $(glib_INCLUDES) \ @@ -77,7 +70,7 @@ EXTRA_DIST += \ CLEANFILES += libglib-gdb.py # These may be in the builddir too -BUILT_EXTRA_DIST = \ +BUILT_EXTRA_DIST += \ makefile.msc \ glibconfig.h.win32 \ glib.rc @@ -86,7 +79,7 @@ lib_LTLIBRARIES = libglib-2.0.la if OS_WIN32_AND_DLL_COMPILATION if MS_LIB_AVAILABLE -noinst_DATA = glib-2.0.lib +noinst_DATA += glib-2.0.lib install_ms_lib_cmd = $(INSTALL) glib-2.0.lib $(DESTDIR)$(libdir) uninstall_ms_lib_cmd = -rm $(DESTDIR)$(libdir)/glib-2.0.lib diff --git a/glib/gnulib/Makefile.am b/glib/gnulib/Makefile.am index 03e1d1860..931230e55 100644 --- a/glib/gnulib/Makefile.am +++ b/glib/gnulib/Makefile.am @@ -1,5 +1,5 @@ ## Process this file with automake to produce Makefile.in -include $(top_srcdir)/Makefile.decl +include $(top_srcdir)/glib.mk AM_CPPFLAGS = \ $(glib_INCLUDES) \ @@ -8,7 +8,7 @@ AM_CPPFLAGS = \ -DG_DISABLE_DEPRECATED \ -DGLIB_COMPILATION -noinst_LTLIBRARIES = libgnulib.la +noinst_LTLIBRARIES += libgnulib.la libgnulib_la_CFLAGS = $(GLIB_HIDDEN_VISIBILITY_CFLAGS) libgnulib_la_SOURCES = \ diff --git a/glib/libcharset/Makefile.am b/glib/libcharset/Makefile.am index fb9a9785b..642f75c39 100644 --- a/glib/libcharset/Makefile.am +++ b/glib/libcharset/Makefile.am @@ -1,11 +1,11 @@ ## Process this file with automake to produce Makefile.in -include $(top_srcdir)/Makefile.decl +include $(top_srcdir)/glib.mk AM_CPPFLAGS = \ -DLIBDIR=\"$(libdir)\" \ $(config_h_INCLUDES) -noinst_LTLIBRARIES = libcharset.la +noinst_LTLIBRARIES += libcharset.la libcharset_la_CFLAGS = $(GLIB_HIDDEN_VISIBILITY_CFLAGS) libcharset_la_SOURCES = \ @@ -63,4 +63,4 @@ SUFFIXES = .sed .sin $(AM_V_GEN) $(SED) -e '/^#/d' -e 's/@''PACKAGE''@/@PACKAGE@/g' $< > t-$@ @mv t-$@ $@ -CLEANFILES = charset.alias ref-add.sed ref-del.sed +CLEANFILES += charset.alias ref-add.sed ref-del.sed diff --git a/glib/pcre/Makefile.am b/glib/pcre/Makefile.am index 53669a0b2..14442dcc0 100644 --- a/glib/pcre/Makefile.am +++ b/glib/pcre/Makefile.am @@ -1,6 +1,6 @@ -include $(top_srcdir)/Makefile.decl +include $(top_srcdir)/glib.mk -noinst_LTLIBRARIES = libpcre.la +noinst_LTLIBRARIES += libpcre.la libpcre_la_CPPFLAGS = \ -DG_LOG_DOMAIN=\"GLib-GRegex\" \ diff --git a/glib/tests/Makefile.am b/glib/tests/Makefile.am index 5ee09dd79..5753d531e 100644 --- a/glib/tests/Makefile.am +++ b/glib/tests/Makefile.am @@ -1,81 +1,31 @@ -include $(top_srcdir)/Makefile.decl -NULL = +include $(top_srcdir)/glib.mk -insttestdir=$(pkglibexecdir)/installed-tests +LDADD = $(top_builddir)/glib/libglib-2.0.la -lm +AM_CPPFLAGS = -g $(glib_INCLUDES) $(GLIB_DEBUG_FLAGS) +DEFS = -DG_LOG_DOMAIN=\"GLib\" -DEXEEXT=\"$(EXEEXT)\" +AM_CFLAGS = $(GLIB_WARN_CFLAGS) -bookmark_test_files = \ - bookmarks/fail-01.xbel \ - bookmarks/fail-02.xbel \ - bookmarks/fail-03.xbel \ - bookmarks/fail-04.xbel \ - bookmarks/fail-05.xbel \ - bookmarks/fail-06.xbel \ - bookmarks/fail-07.xbel \ - bookmarks/fail-08.xbel \ - bookmarks/fail-09.xbel \ - bookmarks/fail-10.xbel \ - bookmarks/fail-11.xbel \ - bookmarks/fail-12.xbel \ - bookmarks/fail-13.xbel \ - bookmarks/fail-14.xbel \ - bookmarks/fail-15.xbel \ - bookmarks/fail-16.xbel \ - bookmarks/fail-17.xbel \ - bookmarks/valid-01.xbel \ - bookmarks/valid-02.xbel \ - bookmarks/valid-03.xbel \ - $(NULL) +# ----------------------------------------------------------------------------- -markup_tests = \ - fail-1 fail-2 fail-3 fail-4 fail-5 \ - fail-6 fail-7 fail-8 fail-9 fail-10 \ - fail-11 fail-12 fail-13 fail-14 fail-15 \ - fail-16 fail-17 fail-18 fail-19 fail-20 \ - fail-21 fail-22 fail-23 fail-24 fail-25 \ - fail-26 fail-27 fail-28 fail-29 fail-30 \ - fail-31 fail-32 fail-33 fail-34 fail-35 \ - fail-36 fail-37 fail-38 fail-39 fail-40 \ - fail-41 fail-42 fail-43 fail-44 fail-45 \ - fail-46 fail-47 fail-48 fail-49 \ - valid-1 valid-2 valid-3 valid-4 valid-5 \ - valid-6 valid-7 valid-8 valid-9 valid-10 \ - valid-11 valid-12 valid-13 valid-14 valid-15 \ +dist_test_data = \ + keyfiletest.ini \ + pages.ini \ + keyfile.c \ + empty \ + 4096-random-bytes \ $(NULL) -all_markup_test_files = $(addprefix markups/,$(markup_tests:=.gmarkup) $(markup_tests:=.expected)) - -test_files = \ - keyfiletest.ini \ - pages.ini \ - keyfile.c \ - empty \ - 4096-random-bytes \ +dist_test_extra_scripts = \ + echo-script \ $(NULL) -test_script_files = \ - echo-script - -AM_CPPFLAGS = \ - -g \ - $(glib_INCLUDES) \ - -DG_LOG_DOMAIN=\"GLib\" \ - -DSRCDIR=\""$(srcdir)"\" \ - -DEXEEXT=\"$(EXEEXT)\" \ - $(GLIB_DEBUG_FLAGS) - -AM_CFLAGS = $(GLIB_WARN_CFLAGS) - -LDADD = $(top_builddir)/glib/libglib-2.0.la -lm - -TEST_PROGS += \ - 1bit-emufutex \ - gwakeup \ +test_extra_programs = \ + test-spawn-echo \ $(NULL) -all_test_programs = \ +test_programs = \ array-test \ asyncqueue \ - atomic \ base64 \ bitlock \ bookmarkfile \ @@ -130,7 +80,7 @@ all_test_programs = \ spawn-singlethread \ strfuncs \ string \ - testing \ + testing \ test-printf \ thread \ timeout \ @@ -144,63 +94,79 @@ all_test_programs = \ uri \ 1bit-mutex \ 642026 \ - 642026-ec - -if OS_UNIX -all_test_programs += unix -all_test_programs += include -endif - -extra_test_binaries = test-spawn-echo - -if BUILD_MODULAR_TESTS -TEST_PROGS += $(all_test_programs) -noinst_PROGRAMS = $(TEST_PROGS) $(extra_test_binaries) -endif - -if BUILDOPT_INSTALL_TESTS -insttest_PROGRAMS = $(all_test_programs) $(extra_test_binaries) -testmetadir = $(datadir)/installed-tests/$(PACKAGE) -testmeta_DATA = $(all_test_programs:=.test) + $(NULL) -testdatadir=$(insttestdir) -testdata_DATA = $(test_files) +uninstalled_test_programs = \ + $(NULL) -testdata_SCRIPTS = $(test_script_files) +dist_test_data += \ + bookmarks/fail-01.xbel \ + bookmarks/fail-02.xbel \ + bookmarks/fail-03.xbel \ + bookmarks/fail-04.xbel \ + bookmarks/fail-05.xbel \ + bookmarks/fail-06.xbel \ + bookmarks/fail-07.xbel \ + bookmarks/fail-08.xbel \ + bookmarks/fail-09.xbel \ + bookmarks/fail-10.xbel \ + bookmarks/fail-11.xbel \ + bookmarks/fail-12.xbel \ + bookmarks/fail-13.xbel \ + bookmarks/fail-14.xbel \ + bookmarks/fail-15.xbel \ + bookmarks/fail-16.xbel \ + bookmarks/fail-17.xbel \ + bookmarks/valid-01.xbel \ + bookmarks/valid-02.xbel \ + bookmarks/valid-03.xbel \ + $(NULL) -bookmarksdir=$(insttestdir)/bookmarks -bookmarks_DATA = $(bookmark_test_files) +markup_tests = \ + fail-1 fail-2 fail-3 fail-4 fail-5 \ + fail-6 fail-7 fail-8 fail-9 fail-10 \ + fail-11 fail-12 fail-13 fail-14 fail-15 \ + fail-16 fail-17 fail-18 fail-19 fail-20 \ + fail-21 fail-22 fail-23 fail-24 fail-25 \ + fail-26 fail-27 fail-28 fail-29 fail-30 \ + fail-31 fail-32 fail-33 fail-34 fail-35 \ + fail-36 fail-37 fail-38 fail-39 fail-40 \ + fail-41 fail-42 fail-43 fail-44 fail-45 \ + fail-46 fail-47 fail-48 fail-49 \ + valid-1 valid-2 valid-3 valid-4 valid-5 \ + valid-6 valid-7 valid-8 valid-9 valid-10 \ + valid-11 valid-12 valid-13 valid-14 valid-15 \ + $(NULL) -markupsdir=$(insttestdir)/markups -markups_DATA = $(all_markup_test_files) -endif +dist_test_data += $(all_markup_data) +all_markup_data = $(addprefix markups/,$(markup_tests:=.gmarkup) $(markup_tests:=.expected)) -%.test: %$(EXEEXT) Makefile - $(AM_V_GEN) (echo '[Test]' > $@.tmp; \ - echo 'Type=session' >> $@.tmp; \ - echo 'Exec=$(pkglibexecdir)/installed-tests/$<' >> $@.tmp; \ - mv $@.tmp $@) +# ----------------------------------------------------------------------------- +test_programs += atomic atomic_CFLAGS = $(AM_CFLAGS) if HAVE_GCC atomic_CFLAGS += -Wstrict-aliasing=2 endif +test_programs += 642026-ec 642026_ec_SOURCES = 642026.c 642026_ec_CFLAGS = -DG_ERRORCHECK_MUTEXES +uninstalled_test_programs += 1bit-emufutex 1bit_emufutex_SOURCES = 1bit-mutex.c 1bit_emufutex_CFLAGS = $(AM_CFLAGS) -DTEST_EMULATED_FUTEX +uninstalled_test_programs += gwakeup gwakeup_SOURCES = gwakeuptest.c ../../glib/gwakeup.c -if HAVE_EVENTFD -TEST_PROGS += gwakeup-fallback -gwakeup_fallback_SOURCES = gwakeuptest.c ../../glib/gwakeup.c -gwakeup_fallback_CFLAGS = $(AM_CFLAGS) -DTEST_EVENTFD_FALLBACK -endif +# ----------------------------------------------------------------------------- if OS_UNIX +test_programs += \ + unix \ + include \ + $(NULL) # some testing of gtester functionality XMLLINT = xmllint @@ -209,19 +175,21 @@ gtester-xmllint-check: # check testreport xml with xmllint if present ${GTESTER} -k --quiet -o tmpsample.xml --test-arg=--gtester-selftest ${GTESTER} ${XMLLINT} --version 2>/dev/null; test "$$?" != 0 || ${XMLLINT} --noout tmpsample.xml +CLEANFILES += tmpsample.xml + check-am: gtester-xmllint-check private_LDFLAGS = @G_THREAD_LIBS@ +endif + +# ----------------------------------------------------------------------------- +if HAVE_EVENTFD +uninstalled_test_programs += gwakeup-fallback +gwakeup_fallback_SOURCES = gwakeuptest.c ../../glib/gwakeup.c +gwakeup_fallback_CFLAGS = $(AM_CFLAGS) -DTEST_EVENTFD_FALLBACK endif -CLEANFILES = \ - tmpsample.xml +# ----------------------------------------------------------------------------- -EXTRA_DIST += \ - $(bookmark_test_files) \ - $(all_markup_test_files) \ - $(test_files) \ - $(test_script_files) \ - bookmarks.xbel \ - $(NULL) +EXTRA_DIST += bookmarks.xbel diff --git a/glib/update-pcre/Makefile.am b/glib/update-pcre/Makefile.am index 66943ec94..864880b3f 100644 --- a/glib/update-pcre/Makefile.am +++ b/glib/update-pcre/Makefile.am @@ -1,4 +1,4 @@ -include $(top_srcdir)/Makefile.decl +include $(top_srcdir)/glib.mk EXTRA_DIST += \ update.sh \ diff --git a/gmodule/Makefile.am b/gmodule/Makefile.am index 4a75a304b..6acd8464f 100644 --- a/gmodule/Makefile.am +++ b/gmodule/Makefile.am @@ -1,5 +1,5 @@ ## Process this file with automake to produce Makefile.in -include $(top_srcdir)/Makefile.decl +include $(top_srcdir)/glib.mk AM_CPPFLAGS = \ $(glib_INCLUDES) \ @@ -22,11 +22,11 @@ EXTRA_DIST += \ gmoduleconf.h.win32 \ gmodule.rc.in -BUILT_EXTRA_DIST = \ +BUILT_EXTRA_DIST += \ makefile.msc \ gmodule.rc -BUILT_SOURCES = gmoduleconf.h +BUILT_SOURCES += gmoduleconf.h gmoduleconf.h: gmoduleconf.h.in glibincludedir=$(includedir)/glib-2.0 @@ -41,7 +41,7 @@ lib_LTLIBRARIES = libgmodule-2.0.la if OS_WIN32_AND_DLL_COMPILATION if MS_LIB_AVAILABLE -noinst_DATA = gmodule-2.0.lib +noinst_DATA += gmodule-2.0.lib install_ms_lib_cmd = $(INSTALL) gmodule-2.0.lib $(DESTDIR)$(libdir) uninstall_ms_lib_cmd = -rm $(DESTDIR)$(libdir)/gmodule-2.0.lib diff --git a/gobject/Makefile.am b/gobject/Makefile.am index d1b52d103..f899e47c5 100644 --- a/gobject/Makefile.am +++ b/gobject/Makefile.am @@ -2,15 +2,9 @@ # Copyright (C) 1997,98,99,2000 Tim Janik and Red Hat, Inc. # ## Process this file with automake to produce Makefile.in -include $(top_srcdir)/Makefile.decl +include $(top_srcdir)/glib.mk -SUBDIRS = . -if BUILD_MODULAR_TESTS -SUBDIRS += tests -endif - -BUILT_SOURCES= -CLEANFILES= +SUBDIRS = . tests AM_CPPFLAGS = \ -DG_LOG_DOMAIN=\"GLib-GObject\" \ @@ -27,7 +21,7 @@ lib_LTLIBRARIES = libgobject-2.0.la if OS_WIN32_AND_DLL_COMPILATION if MS_LIB_AVAILABLE -noinst_DATA = gobject-2.0.lib +noinst_DATA += gobject-2.0.lib install_ms_lib_cmd = $(INSTALL) gobject-2.0.lib $(DESTDIR)$(libdir) uninstall_ms_lib_cmd = -rm $(DESTDIR)$(libdir)/gobject-2.0.lib @@ -210,7 +204,7 @@ EXTRA_DIST += \ CLEANFILES += libgobject-gdb.py -BUILT_EXTRA_DIST = \ +BUILT_EXTRA_DIST += \ makefile.msc \ gobject.rc diff --git a/gobject/tests/Makefile.am b/gobject/tests/Makefile.am index 988a13900..91dc49117 100644 --- a/gobject/tests/Makefile.am +++ b/gobject/tests/Makefile.am @@ -1,66 +1,48 @@ -include $(top_srcdir)/Makefile.decl -NULL = - -AM_CPPFLAGS = \ - -g \ - -DG_LOG_DOMAIN=\"GLib-GObject\" \ - $(gobject_INCLUDES) \ - $(GLIB_DEBUG_FLAGS) +include $(top_srcdir)/glib.mk +LDADD = ../libgobject-2.0.la $(top_builddir)/glib/libglib-2.0.la +AM_CPPFLAGS = -g $(gobject_INCLUDES) $(GLIB_DEBUG_FLAGS) +DEFS = -DG_LOG_DOMAIN=\"GLib-GObject\" AM_CFLAGS = $(GLIB_WARN_CFLAGS) +# ----------------------------------------------------------------------------- + +test_programs = \ + qdata \ + boxed \ + enums \ + param \ + threadtests \ + dynamictests \ + binding \ + properties \ + reference \ + valuearray \ + type \ + $(NULL) + +# ----------------------------------------------------------------------------- + +test_programs += ifaceproperties +ifaceproperties_SOURCES = ifaceproperties.c testcommon.h + +# ----------------------------------------------------------------------------- + +test_programs += signals +signals_SOURCES = signals.c +nodist_signals_SOURCES = marshalers.c marshalers.h +signals.o: marshalers.h +CLEANFILES += marshalers.h marshalers.c +EXTRA_DIST += marshalers.list + if CROSS_COMPILING glib_genmarshal=$(GLIB_GENMARSHAL) else glib_genmarshal=$(top_builddir)/gobject/glib-genmarshal endif -noinst_PROGRAMS = $(TEST_PROGS) -LDADD = ../libgobject-2.0.la $(top_builddir)/gthread/libgthread-2.0.la $(top_builddir)/glib/libglib-2.0.la - -TEST_PROGS += \ - qdata \ - boxed \ - enums \ - param \ - signals \ - threadtests \ - dynamictests \ - binding \ - properties \ - reference \ - ifaceproperties \ - valuearray \ - type \ - $(NULL) - -signals_SOURCES = signals.c marshalers.c - marshalers.h: Makefile.am marshalers.list $(AM_V_GEN) $(glib_genmarshal) --prefix=test $(srcdir)/marshalers.list --header --valist-marshallers > marshalers.h marshalers.c: Makefile.am marshalers.list $(AM_V_GEN) (echo "#include \"marshalers.h\""; $(glib_genmarshal) --prefix=test $(srcdir)/marshalers.list --body --valist-marshallers) > $@.tmp && mv $@.tmp $@ - -BUILT_SOURCES = marshalers.h marshalers.c -CLEANFILES = marshalers.h marshalers.c - -ifaceproperties_SOURCES = ifaceproperties.c testcommon.h - -EXTRA_DIST += marshalers.list - -if BUILDOPT_INSTALL_TESTS -insttestdir = $(pkglibexecdir)/installed-tests -insttest_PROGRAMS = $(TEST_PROGS) - -testmetadir = $(datadir)/installed-tests/$(PACKAGE) -testmeta_DATA = $(TEST_PROGS:=.test) - -%.test: %$(EXEEXT) Makefile - $(AM_V_GEN) (echo '[Test]' > $@.tmp; \ - echo 'Type=session' >> $@.tmp; \ - echo 'Exec=$(pkglibexecdir)/installed-tests/$<' >> $@.tmp; \ - mv $@.tmp $@) - - -endif diff --git a/gthread/Makefile.am b/gthread/Makefile.am index 9132be631..f1ef78d6c 100644 --- a/gthread/Makefile.am +++ b/gthread/Makefile.am @@ -1,5 +1,5 @@ ## Process this file with automake to produce Makefile.in -include $(top_srcdir)/Makefile.decl +include $(top_srcdir)/glib.mk AM_CPPFLAGS = \ $(glib_INCLUDES) \ @@ -14,7 +14,7 @@ EXTRA_DIST += \ gthread.def \ gthread.rc.in -BUILT_EXTRA_DIST = \ +BUILT_EXTRA_DIST += \ makefile.msc \ gthread.rc @@ -26,7 +26,7 @@ lib_LTLIBRARIES = libgthread-2.0.la if OS_WIN32_AND_DLL_COMPILATION if MS_LIB_AVAILABLE -noinst_DATA = gthread-2.0.lib +noinst_DATA += gthread-2.0.lib install_ms_lib_cmd = $(INSTALL) gthread-2.0.lib $(DESTDIR)$(libdir) uninstall_ms_lib_cmd = -rm $(DESTDIR)$(libdir)/gthread-2.0.lib diff --git a/m4macros/Makefile.am b/m4macros/Makefile.am index 75a9ca05a..971871ce7 100644 --- a/m4macros/Makefile.am +++ b/m4macros/Makefile.am @@ -1,4 +1,4 @@ -include $(top_srcdir)/Makefile.decl +include $(top_srcdir)/glib.mk installed_m4= glib-2.0.m4 glib-gettext.m4 gsettings.m4 diff --git a/m4macros/glibtests.m4 b/m4macros/glibtests.m4 new file mode 100644 index 000000000..27e902466 --- /dev/null +++ b/m4macros/glibtests.m4 @@ -0,0 +1,28 @@ +dnl GLIB_TESTS +dnl + +AC_DEFUN([GLIB_TESTS], +[ + AC_ARG_ENABLE(installed-tests, + AS_HELP_STRING([--enable-installed-tests], + [Enable installation of some test cases]), + [case ${enableval} in + yes) ENABLE_INSTALLED_TESTS="1" ;; + no) ENABLE_INSTALLED_TESTS="" ;; + *) AC_MSG_ERROR([bad value ${enableval} for --enable-installed-tests]) ;; + esac]) + AM_CONDITIONAL([ENABLE_INSTALLED_TESTS], test "$ENABLE_INSTALLED_TESTS" = "1") + AC_ARG_ENABLE(always-build-tests, + AS_HELP_STRING([--enable-always-build-tests], + [Enable always building tests during 'make all']), + [case ${enableval} in + yes) ENABLE_ALWAYS_BUILD_TESTS="1" ;; + no) ENABLE_ALWAYS_BUILD_TESTS="" ;; + *) AC_MSG_ERROR([bad value ${enableval} for --enable-always-build-tests]) ;; + esac]) + AM_CONDITIONAL([ENABLE_ALWAYS_BUILD_TESTS], test "$ENABLE_ALWAYS_BUILD_TESTS" = "1") + if test "$ENABLE_INSTALLED_TESTS" == "1"; then + AC_SUBST(installed_test_metadir, [${datadir}/installed-tests/]AC_PACKAGE_NAME) + AC_SUBST(installed_testdir, [${libexecdir}/installed-tests/]AC_PACKAGE_NAME) + fi +]) diff --git a/tests/Makefile.am b/tests/Makefile.am index 5a342c529..b6b3ebd70 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -1,220 +1,164 @@ -include $(top_srcdir)/Makefile.decl +include $(top_srcdir)/glib.mk -insttestdir = $(pkglibexecdir)/installed-tests - -SUBDIRS=gobject refcount - -AM_CPPFLAGS = \ - $(gmodule_INCLUDES) \ - -DGLIB_DISABLE_DEPRECATION_WARNINGS \ - -DG_LOG_DOMAIN=\"GLib\" \ - -DSRCDIR=\"$(srcdir)\" \ - $(GLIB_DEBUG_FLAGS) +SUBDIRS = gobject refcount +LDADD = $(top_builddir)/glib/libglib-2.0.la +AM_CPPFLAGS = $(gmodule_INCLUDES) $(GLIB_DEBUG_FLAGS) +DEFS = -DGLIB_DISABLE_DEPRECATION_WARNINGS -DG_LOG_DOMAIN=\"GLib\" AM_CFLAGS = -g -EFENCE= - -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 - -libadd_libgmodule = $(libgmodule) -libadd_libglib = $(libglib) -if PLATFORM_WIN32 -no_undefined = -no-undefined - -module_test_exp = module-test.exp - -module-test.exp: module-test.o - $(DLLTOOL) --output-exp module-test.exp module-test.o - -spawn_test_win32_gui = spawn-test-win32-gui - -spawn_test_win32_gui_LDFLAGS = -mwindows - -endif - -EXTRA_DIST += \ - $(test_scripts) \ - makefile.msc.in \ - casefold.txt \ - casemap.txt \ - gen-casefold-txt.pl \ - gen-casemap-txt.pl \ - iochannel-test-infile \ - utf8.txt \ - timeloop-basic.c \ - assert-msg-test.gdb - -BUILT_EXTRA_DIST = \ - makefile.msc - -if HAVE_CXX -CXX_TEST = cxx-test -cxx_test_LDADD = $(progs_ldadd) -cxx_test_SOURCES = cxx-test.C -else -CXX_TEST = -endif +# Some random programs that appear not to be testcases and not used from any testcases +check_PROGRAMS += \ + testgdateparser \ + unicode-normalize \ + $(NULL) -if ENABLE_TIMELOOP -timeloop = timeloop -endif -noinst_PROGRAMS = $(TEST_PROGS) \ - testgdate \ - testgdateparser \ - unicode-normalize \ - unicode-collate \ - $(timeloop) \ - assert-msg-test \ - datetime - -TEST_PROGS += testglib -testglib_SOURCES = testglib.c -testglib_LDADD = $(libglib) - - -testgdate_LDADD = $(libglib) -testgdateparser_LDADD = $(libglib) -unicode_normalize_LDADD = $(libglib) -unicode_collate_LDADD = $(libglib) -assert_msg_test_LDADD = $(libglib) -if ENABLE_TIMELOOP -timeloop_LDADD = $(libglib) -endif -datetime_LDADD = $(libglib) +# So far, this is the only gtester-ified testcase here +test_programs = \ + testglib \ + $(NULL) -test_programs = \ +# These are not yet gtester-ified, so mark them as for 'installed' only so we +# don't run them under the framework. We will handle them manually below. +installed_test_programs = \ + testgdate \ + datetime \ atomic-test \ bit-test \ - $(CXX_TEST) \ child-test \ completion-test \ dirname-test \ file-test \ env-test \ gio-test \ - iochannel-test \ mainloop-test \ mapping-test \ - module-test \ onceinit \ asyncqueue-test \ qsort-test \ relation-test \ - slice-test \ - slice-color \ slice-concurrent \ slice-threadinit \ sources \ - spawn-test \ - $(spawn_test_win32_gui) \ thread-test \ threadpool-test \ type-test \ unicode-caseconv \ - unicode-encoding - -test_scripts = run-collate-tests.sh run-assert-msg-test.sh + unicode-encoding \ + $(NULL) -test_script_support_programs = unicode-collate +test_extra_programs = \ + slice-test \ + slice-color \ + assert-msg-test \ + unicode-collate \ + $(NULL) -check_PROGRAMS = $(test_programs) $(test_script_support_programs) +if OS_UNIX +test_programs += \ + spawn-test \ + iochannel-test \ + $(NULL) -TESTS = $(test_programs) $(test_scripts) -TESTS_ENVIRONMENT = srcdir=$(srcdir) \ - LIBCHARSET_ALIAS_DIR=$(top_builddir)/glib/libcharset \ - MALLOC_CHECK_=2 \ - MALLOC_PERTURB_=$$(($${RANDOM:-256} % 256)) +# These don't appear to work installed and we don't want to run them under gtester either... +dist_uninstalled_test_extra_scripts = \ + run-collate-tests.sh \ + run-assert-msg-test.sh \ + $(NULL) +endif -test_data = \ - iochannel-test-infile \ - casemap.txt \ - casefold.txt \ - utf8.txt \ +dist_test_data = \ + iochannel-test-infile \ + casemap.txt \ + casefold.txt \ + utf8.txt \ $(NULL) -if BUILDOPT_INSTALL_TESTS -insttest_PROGRAMS = $(test_programs) +# Run the 'installed' tests manually in-tree. +# This will cause them to be built even if installed tests are disabled. +check_PROGRAMS += $(installed_test_programs) $(installed_test_extra_programs) +check_SCRIPTS += $(installed_test_scripts) +TESTS += $(installed_test_programs) $(dist_uninstalled_test_extra_scripts) +TESTS_ENVIRONMENT = \ + G_TEST_SRCDIR=$(abs_srcdir) \ + G_TEST_BUILDDIR=$(abs_builddir) \ + LIBCHARSET_ALIAS_DIR=$(top_builddir)/glib/libcharset \ + MALLOC_CHECK_=2 \ + MALLOC_PERTURB_=$$(($${RANDOM:-256} % 256)) + +test_programs += module-test +module_test_DEPENDENCIES = libmoduletestplugin_a.la libmoduletestplugin_b.la +module_test_LDADD = $(LDADD) $(top_builddir)/gmodule/libgmodule-2.0.la +module_test_LDFLAGS = $(G_MODULE_LDFLAGS) +slice_test_SOURCES = slice-test.c memchunks.c +slice_color_SOURCES = slice-color.c memchunks.c +slice_threadinit_LDADD = $(LDADD) $(top_builddir)/gthread/libgthread-2.0.la -testmetadir = $(datadir)/installed-tests/$(PACKAGE) -testmeta_DATA = $(test_programs:=.test) +test_ltlibraries = libmoduletestplugin_a.la libmoduletestplugin_b.la -insttest_DATA = $(test_data) +libmoduletestplugin_a_la_SOURCES = libmoduletestplugin_a.c +libmoduletestplugin_a_la_LDFLAGS = $(G_MODULE_LDFLAGS) -avoid-version -module $(no_undefined) +libmoduletestplugin_a_la_LIBADD = $(G_MODULE_LIBS) ../glib/libglib-2.0.la ../gmodule/libgmodule-2.0.la -%.test: %$(EXEEXT) Makefile - $(AM_V_GEN) (echo '[Test]' > $@.tmp; \ - echo 'Type=session' >> $@.tmp; \ - echo 'Exec=env G_TEST_DATA=$(pkglibexecdir)/installed-tests $(pkglibexecdir)/installed-tests/$<' >> $@.tmp; \ - mv $@.tmp $@) +libmoduletestplugin_b_la_SOURCES = libmoduletestplugin_b.c +libmoduletestplugin_b_la_LDFLAGS = $(G_MODULE_LDFLAGS) -avoid-version -module $(no_undefined) +libmoduletestplugin_b_la_LIBADD = $(G_MODULE_LIBS) ../glib/libglib-2.0.la ../gmodule/libgmodule-2.0.la +if !ENABLE_INSTALLED_TESTS +# see http://lists.gnu.org/archive/html/bug-libtool/2013-05/msg00009.html and gio/tests/Makefile.am +libmoduletestplugin_a_la_LDFLAGS += -rpath / +libmoduletestplugin_b_la_LDFLAGS += -rpath / endif -progs_ldadd = $(EFENCE) $(libglib) $(EFENCE) -thread_ldadd = $(libgthread) $(G_THREAD_LIBS) $(progs_ldadd) -module_ldadd = $(libgmodule) $(G_MODULE_LIBS) $(progs_ldadd) - -atomic_test_LDADD = $(progs_ldadd) -bit_test_LDADD = $(progs_ldadd) -child_test_LDADD = $(thread_ldadd) -completion_test_LDADD = $(progs_ldadd) -dirname_test_LDADD = $(progs_ldadd) -file_test_LDADD = $(progs_ldadd) -env_test_LDADD = $(progs_ldadd) -gio_test_LDADD = $(progs_ldadd) -iochannel_test_LDADD = $(progs_ldadd) -mainloop_test_LDADD = $(thread_ldadd) -mapping_test_LDADD = $(progs_ldadd) -module_test_LDADD = $(module_ldadd) $(module_test_exp) -module_test_LDFLAGS = $(G_MODULE_LDFLAGS) -onceinit_LDADD = $(thread_ldadd) -asyncqueue_test_LDADD = $(thread_ldadd) -qsort_test_LDADD = $(progs_ldadd) -relation_test_LDADD = $(progs_ldadd) -slice_test_SOURCES = slice-test.c memchunks.c -slice_test_LDADD = $(thread_ldadd) -slice_color_SOURCES = slice-color.c memchunks.c -slice_color_LDADD = $(thread_ldadd) -slice_concurrent_SOURCES = slice-concurrent.c -slice_concurrent_LDADD = $(thread_ldadd) -slice_threadinit_SOURCES = slice-threadinit.c -slice_threadinit_LDADD = $(thread_ldadd) -sources_LDADD = $(progs_ldadd) -spawn_test_LDADD = $(progs_ldadd) -thread_test_LDADD = $(thread_ldadd) -threadpool_test_LDADD = $(thread_ldadd) -type_test_LDADD = $(progs_ldadd) -unicode_encoding_LDADD = $(progs_ldadd) -unicode_caseconv_LDADD = $(progs_ldadd) - -if BUILDOPT_INSTALL_TESTS -insttest_LTLIBRARIES = libmoduletestplugin_a.la libmoduletestplugin_b.la -else -noinst_LTLIBRARIES = libmoduletestplugin_a.la libmoduletestplugin_b.la +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 + mkdir $(distdir)/collate; \ + for f in $(srcdir)/collate/* ; do \ + if test -f $$f; then cp $$f $(distdir)/collate; fi; \ + done + +if HAVE_CXX +installed_test_programs += cxx-test +cxx_test_SOURCES = cxx-test.C endif -libmoduletestplugin_a_la_SOURCES = libmoduletestplugin_a.c -libmoduletestplugin_a_la_LDFLAGS = $(G_MODULE_LDFLAGS) -avoid-version -module $(no_undefined) -rpath $(insttestdir) -libmoduletestplugin_a_la_LIBADD = $(G_MODULE_LIBS) $(libadd_libgmodule) $(libadd_libglib) +if ENABLE_TIMELOOP +installed_test_programs += timeloop +endif -libmoduletestplugin_b_la_SOURCES = libmoduletestplugin_b.c -libmoduletestplugin_b_la_LDFLAGS = $(G_MODULE_LDFLAGS) -avoid-version -module $(no_undefined) -rpath $(insttestdir) -libmoduletestplugin_b_la_LIBADD = $(G_MODULE_LIBS) $(libadd_libgmodule) $(libadd_libglib) +if PLATFORM_WIN32 +no_undefined = -no-undefined -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 - mkdir $(distdir)/collate; \ - for f in $(srcdir)/collate/* ; do \ - if test -f $$f; then cp $$f $(distdir)/collate; fi; done - -DISTCLEANFILES = \ - iochannel-test-outfile \ - file-test-get-contents \ - maptest \ - mapchild \ +module_test_exp = module-test.exp + +module-test.exp: module-test.o + $(DLLTOOL) --output-exp module-test.exp module-test.o + +installed_test_extra_programs = spawn-test-win32-gui + +spawn_test_win32_gui_LDFLAGS = -mwindows + +endif + +EXTRA_DIST += \ + $(test_scripts) \ + makefile.msc.in \ + gen-casefold-txt.pl \ + gen-casemap-txt.pl \ + iochannel-test-infile \ + timeloop-basic.c \ + assert-msg-test.gdb + +BUILT_EXTRA_DIST += \ + makefile.msc + +DISTCLEANFILES += \ + iochannel-test-outfile \ + file-test-get-contents \ + maptest \ + mapchild \ collate.out diff --git a/tests/gobject/Makefile.am b/tests/gobject/Makefile.am index e58b1589b..5c3f18bbf 100644 --- a/tests/gobject/Makefile.am +++ b/tests/gobject/Makefile.am @@ -1,31 +1,50 @@ -include $(top_srcdir)/Makefile.decl +include $(top_srcdir)/glib.mk -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 +LDADD = $(top_builddir)/glib/libglib-2.0.la $(top_builddir)/gobject/libgobject-2.0.la +AM_CPPFLAGS = $(gmodule_INCLUDES) $(GLIB_DEBUG_FLAGS) +DEFS = -DGLIB_DISABLE_DEPRECATION_WARNINGS -DG_LOG_DOMAIN=\"GLib\" +AM_CFLAGS = -g +# So far, only two gtester-ified cases +test_programs = \ + gvalue-test \ + paramspec-test \ + $(NULL) -# 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) +# These are not yet gtester-ified, so mark them as for 'installed' only so we +# don't run them under the framework. We will handle them manually below. +installed_test_programs = \ + deftype \ + accumulator \ + defaultiface \ + dynamictype \ + override \ + singleton \ + references \ + $(NULL) -######################################################################## +# Don't install these ones, and keep them out of 'make check' because they take too long... +noinst_PROGRAMS += \ + performance \ + performance-threaded \ + $(NULL) + +# Run the 'installed' tests manually in-tree. +# This will cause them to be built even if installed tests are disabled. +check_PROGRAMS += $(installed_test_programs) $(installed_test_extra_programs) +TESTS = $(installed_test_programs) +TESTS_ENVIRONMENT = \ + LIBCHARSET_ALIAS_DIR=$(top_builddir)/glib/libcharset \ + MALLOC_CHECK_=2 \ + MALLOC_PERTURB_=$$(($${RANDOM:-256} % 256)) -noinst_LTLIBRARIES = libtestgobject.la +accumulator_SOURCES = accumulator.c testmarshal.c testmarshal.h +defaultiface_SOURCES = defaultiface.c testmodule.c testmodule.h +dynamictype_SOURCES = dynamictype.c testmodule.c testmodule.h -libtestgobject_la_SOURCES = \ - testcommon.h \ - testmarshal.h \ - testmarshal.c \ - testmodule.c \ - testmodule.h +if ENABLE_TIMELOOP +installed_test_programs += timeloop-closure +endif if CROSS_COMPILING glib_genmarshal=$(GLIB_GENMARSHAL) @@ -45,63 +64,14 @@ testmarshal.c: @REBUILD@ testmarshal.h testmarshal.list $(glib_genmarshal) && 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) +BUILT_SOURCES += testmarshal.h testmarshal.c +CLEANFILES += stamp-testmarshal.h -test_programs = \ - deftype \ - gvalue-test \ - paramspec-test \ - accumulator \ - defaultiface \ - dynamictype \ - override \ - singleton \ - references - -performance_programs = \ - performance \ - performance-threaded - -performance_LDADD = $(libgobject) $(libgthread) -performance_threaded_LDADD = $(libgobject) $(libgthread) -check_PROGRAMS = $(test_programs) -noinst_PROGRAMS = $(performance_programs) testgobject - -if ENABLE_TIMELOOP -noinst_PROGRAMS += timeloop-closure -endif - -TESTS = $(test_programs) $(performance_programs) -TESTS_ENVIRONMENT = srcdir=$(srcdir) \ - LIBCHARSET_ALIAS_DIR=$(top_builddir)/glib/libcharset \ - MALLOC_CHECK_=2 \ - MALLOC_PERTURB_=$$(($${RANDOM:-256} % 256)) - -if BUILDOPT_INSTALL_TESTS -insttestdir = $(pkglibexecdir)/installed-tests -insttest_PROGRAMS = $(test_programs) - -testmetadir = $(datadir)/installed-tests/$(PACKAGE) -testmeta_DATA = $(test_programs:=.test) - -%.test: %$(EXEEXT) Makefile - $(AM_V_GEN) (echo '[Test]' > $@.tmp; \ - echo 'Type=session' >> $@.tmp; \ - echo 'Exec=env G_TEST_DATA=$(pkglibexecdir)/installed-tests $(pkglibexecdir)/installed-tests/$<' >> $@.tmp; \ - mv $@.tmp $@) -endif - -######################################################################## - -EXTRA_DIST += \ +EXTRA_DIST += \ + testcommon.h \ testmarshal.list -BUILT_EXTRA_DIST = \ +BUILT_EXTRA_DIST += \ testmarshal.h \ testmarshal.c @@ -115,5 +85,3 @@ distclean-local: if test $(srcdir) = .; then :; else \ rm -f $(BUILT_EXTRA_DIST); \ fi - - diff --git a/tests/refcount/Makefile.am b/tests/refcount/Makefile.am index 34daca656..57af84f83 100644 --- a/tests/refcount/Makefile.am +++ b/tests/refcount/Makefile.am @@ -1,17 +1,12 @@ -include $(top_srcdir)/Makefile.decl +include $(top_srcdir)/glib.mk -AM_CPPFLAGS = \ - $(gmodule_INCLUDES) \ - -DGLIB_DISABLE_DEPRECATION_WARNINGS \ - $(GLIB_DEBUG_FLAGS) +LDADD = $(top_builddir)/glib/libglib-2.0.la $(top_builddir)/gobject/libgobject-2.0.la +AM_CPPFLAGS = $(gmodule_INCLUDES) $(GLIB_DEBUG_FLAGS) +DEFS = -DGLIB_DISABLE_DEPRECATION_WARNINGS +AM_CFLAGS = -g -libglib = $(top_builddir)/glib/libglib-2.0.la -libgmodule = $(top_builddir)/gmodule/libgmodule-2.0.la -libgobject = $(top_builddir)/gobject/libgobject-2.0.la - -LDADD = $(libglib) $(libgobject) - -test_programs = \ +# These are not gtester tests, so handle them manually +TESTS = \ closures \ objects \ objects2 \ @@ -22,9 +17,11 @@ test_programs = \ signal1 \ signal2 \ signal3 \ - signal4 - + signal4 \ + $(NULL) +TESTS_ENVIRONMENT = srcdir=$(srcdir) \ + LIBCHARSET_ALIAS_DIR=$(top_builddir)/glib/libcharset signal1_SOURCES = signals.c signal1_CFLAGS = -DTESTNUM=1 $(AM_CFLAGS) @@ -35,10 +32,4 @@ signal3_CFLAGS = -DTESTNUM=3 $(AM_CFLAGS) signal4_SOURCES = signals.c signal4_CFLAGS = -DTESTNUM=4 $(AM_CFLAGS) -check_PROGRAMS = $(test_programs) - -all: $(check_PROGRAMS) - -TESTS = $(test_programs) -TESTS_ENVIRONMENT = srcdir=$(srcdir) \ - LIBCHARSET_ALIAS_DIR=$(top_builddir)/glib/libcharset +check_PROGRAMS += $(TESTS) |