mirror of
https://gitlab.freedesktop.org/dbus/dbus.git
synced 2025-12-26 20:20:09 +01:00
Add noinst convenience test library, add a test-shutdown
* test/Makefile.am: New convenience library libdbus_testutils_la. Reorder build so that test/ gets built before test/name-test so name-test files can depend on it. * test/name-test/test-shutdown.c: New file, exercises dbus_shutdown () a bit. * test/name-test/run-test.sh Run test-shutdown. * test/test-utils.h: In some cases we already have DBUS_COMPILATION defined, avoid double definition warning.
This commit is contained in:
parent
9d8989cfec
commit
a73a79a155
5 changed files with 93 additions and 17 deletions
|
|
@ -1,10 +1,14 @@
|
|||
## the "name-test" subdir in fact contains a bunch of tests now that need a temporary bus
|
||||
## to be running to do stuff with. The directory should be renamed.
|
||||
SUBDIRS=name-test
|
||||
## We want to build the current directory first to pick up the testutils lib
|
||||
SUBDIRS= . name-test
|
||||
DIST_SUBDIRS=name-test
|
||||
|
||||
INCLUDES=-I$(top_srcdir) $(DBUS_TEST_CFLAGS)
|
||||
|
||||
libdbus_testutils_la_SOURCES = test-utils.h test-utils.c
|
||||
|
||||
noinst_LTLIBRARIES = libdbus-testutils.la
|
||||
|
||||
if DBUS_BUILD_TESTS
|
||||
## break-loader removed for now
|
||||
|
|
@ -28,22 +32,16 @@ endif
|
|||
noinst_PROGRAMS= $(TEST_BINARIES) $(GCOV_BINARIES)
|
||||
|
||||
test_service_SOURCES= \
|
||||
test-service.c \
|
||||
test-utils.c \
|
||||
test-utils.h
|
||||
test-service.c
|
||||
|
||||
test_names_SOURCES= \
|
||||
test-names.c \
|
||||
test-utils.c \
|
||||
test-utils.h
|
||||
test-names.c
|
||||
|
||||
##break_loader_SOURCES= \
|
||||
## break-loader.c
|
||||
|
||||
test_shell_service_SOURCES = \
|
||||
test-shell-service.c \
|
||||
test-utils.c \
|
||||
test-utils.h
|
||||
test-shell-service.c
|
||||
|
||||
shell_test_SOURCES= \
|
||||
shell-test.c
|
||||
|
|
@ -65,15 +63,15 @@ decode_gcov_SOURCES= \
|
|||
|
||||
TEST_LIBS=$(DBUS_TEST_LIBS) $(top_builddir)/dbus/libdbus-convenience.la
|
||||
|
||||
test_service_LDADD=$(TEST_LIBS)
|
||||
test_service_LDADD=$(TEST_LIBS) libdbus-testutils.la
|
||||
test_service_LDFLAGS=@R_DYNAMIC_LDFLAG@
|
||||
test_names_LDADD=$(TEST_LIBS)
|
||||
test_names_LDADD=$(TEST_LIBS) libdbus-testutils.la
|
||||
test_names_LDFLAGS=@R_DYNAMIC_LDFLAG@
|
||||
## break_loader_LDADD= $(TEST_LIBS)
|
||||
## break_loader_LDFLAGS=@R_DYNAMIC_LDFLAG@
|
||||
test_shell_service_LDADD=$(TEST_LIBS)
|
||||
test_shell_service_LDADD=$(TEST_LIBS) libdbus-testutils.la
|
||||
test_shell_service_LDFLAGS=@R_DYNAMIC_LDFLAG@
|
||||
shell_test_LDADD=$(TEST_LIBS)
|
||||
shell_test_LDADD=$(TEST_LIBS) libdbus-testutils.la
|
||||
shell_test_LDFLAGS=@R_DYNAMIC_LDFLAG@
|
||||
spawn_test_LDADD=$(TEST_LIBS)
|
||||
spawn_test_LDFLAGS=@R_DYNAMIC_LDFLAG@
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
INCLUDES=-I$(top_srcdir) $(DBUS_CLIENT_CFLAGS) $(DBUS_GLIB_CFLAGS) -DDBUS_COMPILATION
|
||||
INCLUDES=-I$(top_srcdir) $(DBUS_CLIENT_CFLAGS) $(DBUS_GLIB_CFLAGS) $(DBUS_TEST_CFLAGS) -DDBUS_COMPILATION
|
||||
|
||||
## note that TESTS has special meaning (stuff to use in make check)
|
||||
## so if adding tests not to be run in make check, don't add them to
|
||||
|
|
@ -16,7 +16,7 @@ if DBUS_BUILD_TESTS
|
|||
|
||||
## we use noinst_PROGRAMS not check_PROGRAMS for TESTS so that we
|
||||
## build even when not doing "make check"
|
||||
noinst_PROGRAMS=test-names test-pending-call-dispatch test-threads-init test-ids
|
||||
noinst_PROGRAMS=test-names test-pending-call-dispatch test-threads-init test-ids test-shutdown
|
||||
|
||||
test_names_SOURCES= \
|
||||
test-names.c
|
||||
|
|
@ -42,5 +42,11 @@ test_ids_SOURCES = \
|
|||
test_ids_LDADD=$(top_builddir)/dbus/libdbus-convenience.la $(DBUS_TEST_LIBS)
|
||||
test_ids_LDFLAGS=@R_DYNAMIC_LDFLAG@
|
||||
|
||||
endif
|
||||
test_shutdown_SOURCES = \
|
||||
test-shutdown.c
|
||||
|
||||
test_shutdown_CFLAGS=
|
||||
test_shutdown_LDADD=$(top_builddir)/dbus/libdbus-convenience.la ../libdbus-testutils.la $(DBUS_TEST_LIBS)
|
||||
test_shutdown_LDFLAGS=@R_DYNAMIC_LDFLAG@
|
||||
|
||||
endif
|
||||
|
|
|
|||
|
|
@ -36,3 +36,6 @@ ${DBUS_TOP_BUILDDIR}/libtool --mode=execute $DEBUG $DBUS_TOP_BUILDDIR/test/name-
|
|||
|
||||
echo "running test-threads-init"
|
||||
${DBUS_TOP_BUILDDIR}/libtool --mode=execute $DEBUG $DBUS_TOP_BUILDDIR/test/name-test/test-threads-init || die "test-threads-init failed"
|
||||
|
||||
echo "running test-shutdown"
|
||||
${DBUS_TOP_BUILDDIR}/libtool --mode=execute $DEBUG $DBUS_TOP_BUILDDIR/test/name-test/test-shutdown || die "test-shutdown failed"
|
||||
|
|
|
|||
67
test/name-test/test-shutdown.c
Normal file
67
test/name-test/test-shutdown.c
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
|
||||
#include "../test-utils.h"
|
||||
|
||||
static DBusLoop *loop;
|
||||
|
||||
static void
|
||||
die (const char *message)
|
||||
{
|
||||
fprintf (stderr, "*** test-shutdown: %s", message);
|
||||
exit (1);
|
||||
}
|
||||
|
||||
static void
|
||||
open_destroy_shared_session_bus_connection ()
|
||||
{
|
||||
DBusError error;
|
||||
DBusConnection *connection;
|
||||
char *session_addr_no_guid;
|
||||
char *comma;
|
||||
|
||||
dbus_error_init (&error);
|
||||
|
||||
session_addr_no_guid = strdup (getenv ("DBUS_SESSION_BUS_ADDRESS"));
|
||||
comma = strchr (session_addr_no_guid, ',');
|
||||
if (comma == NULL)
|
||||
die ("Couldn't find GUID in session bus address");
|
||||
*comma = '\0';
|
||||
|
||||
connection = dbus_connection_open (session_addr_no_guid, &error);
|
||||
free (session_addr_no_guid);
|
||||
if (connection == NULL)
|
||||
die ("Failed to open connection to temp session bus\n");
|
||||
|
||||
loop = _dbus_loop_new ();
|
||||
if (loop == NULL)
|
||||
die ("No memory\n");
|
||||
|
||||
if (!test_connection_setup (loop, connection))
|
||||
die ("No memory\n");
|
||||
|
||||
test_connection_shutdown (loop, connection);
|
||||
|
||||
_dbus_loop_unref (loop);
|
||||
|
||||
dbus_connection_unref (connection);
|
||||
}
|
||||
|
||||
int
|
||||
main (int argc,
|
||||
char **argv)
|
||||
{
|
||||
open_destroy_shared_session_bus_connection ();
|
||||
|
||||
dbus_shutdown ();
|
||||
|
||||
open_destroy_shared_session_bus_connection ();
|
||||
|
||||
dbus_shutdown ();
|
||||
|
||||
open_destroy_shared_session_bus_connection ();
|
||||
|
||||
dbus_shutdown ();
|
||||
|
||||
_dbus_verbose ("*** Test shutdown exiting\n");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -1,7 +1,9 @@
|
|||
#ifndef TEST_UTILS_H
|
||||
#define TEST_UTILS_H
|
||||
#include <config.h>
|
||||
#ifndef DBUS_COMPILATION
|
||||
#define DBUS_COMPILATION /* Cheat and use private stuff */
|
||||
#endif
|
||||
#include <dbus/dbus.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue