diff options
| author | Colin Walters <walters@verbum.org> | 2008-05-30 16:53:35 -0400 | 
|---|---|---|
| committer | Colin Walters <walters@verbum.org> | 2008-05-30 16:53:35 -0400 | 
| commit | a73a79a155e97a3bd0d3ce5001ca6b9db803eeeb (patch) | |
| tree | f1c3baeb481bcc0f485a7f9371f1fdc43f0efe08 | |
| parent | 9d8989cfec02e6ca41f8ffa0ccda16c93ddcb23c (diff) | |
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.
| -rw-r--r-- | test/Makefile.am | 26 | ||||
| -rw-r--r-- | test/name-test/Makefile.am | 12 | ||||
| -rwxr-xr-x | test/name-test/run-test.sh | 3 | ||||
| -rw-r--r-- | test/name-test/test-shutdown.c | 67 | ||||
| -rw-r--r-- | test/test-utils.h | 2 | 
5 files changed, 93 insertions, 17 deletions
| diff --git a/test/Makefile.am b/test/Makefile.am index 56ab66fc..a7f05970 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -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@ diff --git a/test/name-test/Makefile.am b/test/name-test/Makefile.am index fbc80c42..37a56335 100644 --- a/test/name-test/Makefile.am +++ b/test/name-test/Makefile.am @@ -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 diff --git a/test/name-test/run-test.sh b/test/name-test/run-test.sh index 5d9c584a..d466b815 100755 --- a/test/name-test/run-test.sh +++ b/test/name-test/run-test.sh @@ -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" diff --git a/test/name-test/test-shutdown.c b/test/name-test/test-shutdown.c new file mode 100644 index 00000000..c50ef4b6 --- /dev/null +++ b/test/name-test/test-shutdown.c @@ -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; +} diff --git a/test/test-utils.h b/test/test-utils.h index ec8246a1..90d87767 100644 --- a/test/test-utils.h +++ b/test/test-utils.h @@ -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> | 
