glib/gio/tests/Makefile.am
David Zeuthen 2652dc1357 GDBus: Avoid use of libdbus-1 in authentication tests
This greatly simplifies the test since everything is now in a single
process and possible bugs / quirks in libdbus-1 will not interfere
with the tests. On the other hand, we no longer test interoperability
with libdbus-1. This is somewhat moot, however, since other tests that
involve a message bus (e.g. GTestDBus users which include most of the
GDBus test suite itself) will test this.

Also ensure that we don't pollute existing D-Bus keyrings for the
DBUS_COOKIE_SHA1 authentication method (e.g. files in the
~/.dbus-keyrings directory) by setting the environment variables
G_DBUS_COOKIE_SHA1_KEYRING_DIR and
G_DBUS_COOKIE_SHA1_KEYRING_DIR_IGNORE_PERMISSION.

All in all, this change avoids some thorny issues where the GDBus and
libdbus-1 implementations disagree on whether an item in the D-Bus
keyring is still valid (items have an age etc.). In reality, since the
DBUS_COOKIE_SHA1 authentication method is never used in production,
this is never hit in production. This bug was, however, frequently hit
if you just ran the test suite repeatedly for 15 minutes or so.

Also add TODO items to mention that we currently don't test corner
cases involving

 - DBUS_COOKIE_SHA1 timeouts
 - libdbus-1 interoperability

Signed-off-by: David Zeuthen <zeuthen@gmail.com>
2013-01-03 12:12:55 -05:00

462 lines
15 KiB
Makefile

NULL =
BUILT_SOURCES =
include $(top_srcdir)/Makefile.decl
SUBDIRS = gdbus-object-manager-example
INCLUDES = \
-DG_LOG_DOMAIN=\"GLib-GIO\" \
$(gio_INCLUDES) \
$(GLIB_DEBUG_FLAGS) \
-I$(top_builddir)/gio \
-I$(top_srcdir)/gio \
$(DBUS1_CFLAGS) \
-DSRCDIR=\""$(srcdir)"\" \
-DTEST_SERVICES=\""$(abs_top_builddir)/gio/tests/services"\"
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 \
$(top_builddir)/gobject/libgobject-2.0.la \
$(top_builddir)/gmodule/libgmodule-2.0.la \
$(top_builddir)/gio/libgio-2.0.la
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 \
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-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 \
gdbus-connection-flush-helper \
proxy \
gapplication-example-open \
gapplication-example-cmdline \
gapplication-example-cmdline2 \
gapplication-example-cmdline3 \
gapplication-example-actions \
gapplication-example-dbushooks \
gdbus-daemon \
$(NULL)
if OS_UNIX
TEST_PROGS += \
live-g-file \
desktop-app-info \
unix-fd \
unix-streams \
gapplication \
basic-application \
gdbus-test-codegen \
$(NULL)
SAMPLE_PROGS += \
gdbus-example-unix-fd-client \
gdbus-example-objectmanager-server \
gdbus-example-objectmanager-client \
gdbus-test-fixture \
appinfo-test \
$(NULL)
endif
if OS_WIN32
TEST_PROGS += win32-streams
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
if HAVE_DBUS1
TEST_PROGS += gdbus-serialization
gdbus_serialization_SOURCES = gdbus-serialization.c gdbus-tests.h gdbus-tests.c
gdbus_serialization_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_CFLAGS = $(DBUS1_CFLAGS)
gdbus_auth_LDADD = $(LDADD) $(DBUS1_LIBS)
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 \
$(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 \
$(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
schema_tests = \
schema-tests/array-default-not-in-choices.gschema.xml \
schema-tests/bad-choice.gschema.xml \
schema-tests/bad-key.gschema.xml \
schema-tests/bad-key2.gschema.xml \
schema-tests/bad-key3.gschema.xml \
schema-tests/bad-key4.gschema.xml \
schema-tests/bad-type.gschema.xml \
schema-tests/bare-alias.gschema.xml \
schema-tests/choice-alias.gschema.xml \
schema-tests/choice-bad.gschema.xml \
schema-tests/choice-badtype.gschema.xml \
schema-tests/choice-invalid-alias.gschema.xml \
schema-tests/choice-missing-value.gschema.xml \
schema-tests/choice-shadowed-alias.gschema.xml \
schema-tests/choice-upside-down.gschema.xml \
schema-tests/choice.gschema.xml \
schema-tests/choices-wrong-type.gschema.xml \
schema-tests/default-in-aliases.gschema.xml \
schema-tests/default-not-in-choices.gschema.xml \
schema-tests/default-out-of-range.gschema.xml \
schema-tests/empty-key.gschema.xml \
schema-tests/enum-with-aliases.gschema.xml \
schema-tests/enum-with-bad-default.gschema.xml \
schema-tests/enum-with-chained-alias.gschema.xml \
schema-tests/enum-with-choice.gschema.xml \
schema-tests/enum-with-invalid-alias.gschema.xml \
schema-tests/enum-with-repeated-alias.gschema.xml \
schema-tests/enum-with-repeated-nick.gschema.xml \
schema-tests/enum-with-repeated-value.gschema.xml \
schema-tests/enum-with-shadow-alias.gschema.xml \
schema-tests/enum.gschema.xml \
schema-tests/flags-aliased-default.gschema.xml \
schema-tests/flags-bad-default.gschema.xml \
schema-tests/flags-more-than-one-bit.gschema.xml \
schema-tests/flags-with-enum-attr.gschema.xml \
schema-tests/flags-with-enum-tag.gschema.xml \
schema-tests/extend-and-shadow-indirect.gschema.xml \
schema-tests/extend-and-shadow.gschema.xml \
schema-tests/extend-missing.gschema.xml \
schema-tests/extend-nonlist.gschema.xml \
schema-tests/extend-self.gschema.xml \
schema-tests/extend-wrong-list-indirect.gschema.xml \
schema-tests/extend-wrong-list.gschema.xml \
schema-tests/extending.gschema.xml \
schema-tests/from-docs.gschema.xml \
schema-tests/incomplete-list.gschema.xml \
schema-tests/inherit-gettext-domain.gschema.xml \
schema-tests/invalid-path.gschema.xml \
schema-tests/key-in-list-indirect.gschema.xml \
schema-tests/key-in-list.gschema.xml \
schema-tests/list-of-missing.gschema.xml \
schema-tests/missing-quotes.gschema.xml \
schema-tests/no-default.gschema.xml \
schema-tests/overflow.gschema.xml \
schema-tests/override-missing.gschema.xml \
schema-tests/override-range-error.gschema.xml \
schema-tests/override-then-key.gschema.xml \
schema-tests/override-twice.gschema.xml \
schema-tests/override-type-error.gschema.xml \
schema-tests/override.gschema.xml \
schema-tests/range-badtype.gschema.xml \
schema-tests/range-default-high.gschema.xml \
schema-tests/range-default-low.gschema.xml \
schema-tests/range-high-default.gschema.xml \
schema-tests/range-low-default.gschema.xml \
schema-tests/range-missing-max.gschema.xml \
schema-tests/range-missing-min.gschema.xml \
schema-tests/range-parse-error.gschema.xml \
schema-tests/range-wrong-type.gschema.xml \
schema-tests/range.gschema.xml \
schema-tests/wrong-category.gschema.xml
proxy_LDADD = $(LDADD) \
$(top_builddir)/gthread/libgthread-2.0.la
tls_certificate_SOURCES = tls-certificate.c gtesttlsbackend.c gtesttlsbackend.h
# -----------------------------------------------------------------------------
if OS_UNIX
gdbus_example_objectmanager_server_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 = -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 = -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 = -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
# -----------------------------------------------------------------------------
EXTRA_DIST += \
socket-common.c \
org.gtk.test.gschema \
org.gtk.test.gschema.xml \
testenum.h \
enums.xml.template \
de.po \
$(schema_tests) \
org.gtk.schemasourcecheck.gschema.xml \
appinfo-test.desktop \
appinfo-test2.desktop \
appinfo-test-gnome.desktop \
appinfo-test-notgnome.desktop \
gdbus-testserver.py \
test-codegen.xml \
cert1.pem \
cert2.pem \
cert3.pem \
key.pem \
key8.pem \
key-cert.pem \
cert-key.pem \
cert-list.pem \
nothing.pem \
test.gresource.xml \
test1.txt \
test2.gresource.xml \
test2.txt \
test3.gresource.xml \
test3.txt \
test4.gresource.xml \
$(NULL)
MISC_STUFF = test.mo test.gresource
test.mo: de.po
$(MSGFMT) -o test.mo $(srcdir)/de.po; \
$(MKDIR_P) de/LC_MESSAGES; \
cp -f test.mo de/LC_MESSAGES
if CROSS_COMPILING
glib_compile_resources=$(GLIB_COMPILE_RESOURCES)
else
glib_compile_resources=$(top_builddir)/gio/glib-compile-resources
endif
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_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) $<
noinst_LTLIBRARIES = libresourceplugin.la
libresourceplugin_la_SOURCES = resourceplugin.c plugin_resources.c
libresourceplugin_la_LDFLAGS = -avoid-version -module $(no_undefined) -rpath $(libdir)
libresourceplugin_la_LIBADD = $(LDADD)
CLEANFILES = gdbus-test-codegen-generated.[ch] gdbus-test-codegen-generated-doc-*.xml test_resources2.[ch] plugin_resources.c
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
distclean-local:
rm -rf xdgdatahome xdgdatadir