Commit a73a79a1 authored by Colin Walters's avatar Colin Walters

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.
parent 9d8989cf
## 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@
......
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"
#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;
}
#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>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment