Commit graph

57 commits

Author SHA1 Message Date
Simon McVittie
5defa43b6f Check for Python; skip Python tests if not found
As with the optional test-dependencies on GLib and dbus-glib, we make this
a hard dependency if --enable-tests[=yes], but not if --enable-tests=auto.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=37847
Reviewed-by: Will Thompson <will.thompson@collabora.co.uk>
2011-09-21 11:25:48 +01:00
Simon McVittie
cea055514a Check for X even if X11 autolaunching is disabled
DBUS_ENABLE_X11_AUTOLAUNCH obviously requires DBUS_BUILD_X11. However,
the converse is not true.

If DBUS_BUILD_X11 is defined, dbus-launch will be able to connect to
the X server to determine when the session ends; most distributors will
want this, but it can be disabled with the standard Autoconf option
--without-x.

If DBUS_ENABLE_X11_AUTOLAUNCH is *also* defined, dbus-launch and libdbus
will be willing to perform autolaunch. Again, most distributors will want
this, but it can be disabled with --disable-x11-autolaunch.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=19997
Reviewed-by: Colin Walters <walters@verbum.org>
2011-05-25 17:38:44 +01:00
Simon McVittie
2bfac1b73d test-autolaunch: don't expect autolaunching to work if X11 is disabled
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=19997
Reviewed-by: Colin Walters <walters@verbum.org>
2011-05-25 17:38:21 +01:00
Simon McVittie
9fee6d735e Merge branch 'serverdata-33277' into dbus-1.4
Reviewed-by: Will Thompson <will.thompson@collabora.co.uk>
2011-02-02 15:14:31 +00:00
Simon McVittie
a431ced679 test/name-test: remove dangling references to test-names.c, which is absent
Reviewed-by: Will Thompson <will.thompson@collabora.co.uk>
2011-01-25 13:18:03 +00:00
Simon McVittie
4fa3a89d32 test-privserver-client: wait for server to die between iterations
This fixes a race condition: the server exits while the client continues
to the next iteration. If the server wins, the test passes. If the client
wins, it sends a message to the dying service, never gets a reply, and the
test fails.

My branch to refactor the main loop for fd.o #23194 seems to make the
client more likely to win this race, resulting in intermittent test
failures.

This is an instance of the general problem described by fd.o #11454.
2011-01-21 14:22:39 +00:00
Simon McVittie
e870df7b82 Add autolaunch test to .gitignore 2011-01-06 17:35:35 +00:00
Will Thompson
c3a94b57c8 Revert "test-autolaunch is only known to work in launchd environments."
This reverts commit 4626b40560.
test-autolaunch works fine in non-launchd environments (and non-X11
environments, based on a quick test passing enable_x11=no to configure).
On the contrary: this commit *broke* the build on non-launchd
environments, because test/name-test/run-test.sh still tried to run this
test even if it hadn't been built.
2010-12-15 09:43:17 +01:00
Mike McQuaid
4626b40560 test-autolaunch is only known to work in launchd environments. 2010-12-04 23:47:35 +01:00
Colin Walters
aff6263561 Added a test-autolaunch.
* test/name-test/test-autolaunch.c: New file,
	unsets DBUS_SESSION_BUS_ADDRESS so we should
	fall back to autolaunch:.
	* test/name-test/run-test.sh: Run it.
	* test/name-test/Makefile.am: Build it.
2010-12-04 23:03:13 +01:00
Will Thompson
92ac7113d3 Update a load of .gitignores 2010-10-05 11:45:48 +01:00
Ralf Habacker
ec18f1fc89 Port test-privserver to windows by using the TEST_LISTEN bus address. 2010-04-13 21:15:41 +02:00
Ralf Habacker
ca7b8112c9 Renamed libdbus-convenience to libdbus-internal for automake (to stay in sync with cmake). 2010-03-23 09:21:48 +01:00
Marcus Brinkmann
1de6b09fbd Update dll export for autoconf (to stay in sync with cmake). 2010-03-23 09:10:39 +01:00
Colin Walters
df89cfeb38 Merge branch 'dbus-1.2'
Conflicts:
	bus/dispatch.c
	configure.in
	test/name-test/test-names.c
2010-03-22 14:39:56 -04:00
Marcus Brinkmann
dbecdeabb2 Consistently include <config.h> in all C source files and never in header files. 2010-03-19 20:11:48 +01:00
Colin Walters
d47154c28b Delete name-test/test-names
This test, while extensive, has the serious flaw of effectively
spinning on _dbus_connection_do_iteration_unlocked.  Any tests
like this should be using the internal DBus mainloop, which
I don't have time to port it to before doing a release.
2010-03-16 22:25:40 -04:00
Colin Walters
b7e77c6b03 Ignore exit code zero from activated services
A variety of system components have migrated from legacy init into DBus
service activation.  Many of these system components "daemonize", which
involves forking.  The DBus activation system treated an exit as an
activation failure, assuming that the child process which grabbed the
DBus name didn't run first.

While we're in here, also differentiate in this code path between the
servicehelper (system) versus direct activation (session) paths.  In
the session activation path our error message mentioned a helper
process which was confusing, since none was involved.

Based on a patch and debugging research from Ray Strode <rstrode@redhat.com>
2010-01-28 17:01:24 -05:00
Colin Walters
949a64b127 Ignore exit code zero from activated services
A variety of system components have migrated from legacy init into DBus
service activation.  Many of these system components "daemonize", which
involves forking.  The DBus activation system treated an exit as an
activation failure, assuming that the child process which grabbed the
DBus name didn't run first.

While we're in here, also differentiate in this code path between the
servicehelper (system) versus direct activation (session) paths.  In
the session activation path our error message mentioned a helper
process which was confusing, since none was involved.

Based on a patch and debugging research from Ray Strode <rstrode@redhat.com>
2009-12-15 13:08:02 -05:00
Thiago Macieira
4a342d711f Fix running tests when builddir != srcdir.
This script is not deployed to the builddir, so it cannot be
run with relative paths.
2009-07-16 16:35:22 +02:00
Scott James Remnant
0539a23c66 Add tests for pending call timeouts
* test/test-service.c (handle_delay_echo, path_message_func): Add a
  variant of the Echo method which sleeps for a short time.
* test/name-test/test-pending-call-timeout.c: Run tests with default,
  specified and infinite timeout to make sure we get the reply.
* test/name-test/run-test.sh: Run the new test
* test/name-test/Makefile.am: Build the new test

Signed-off-by: Scott James Remnant <scott@ubuntu.com>
(cherry picked from commit c1f165261a)
2009-07-14 15:38:42 -04:00
Scott James Remnant
c1f165261a Add tests for pending call timeouts
* test/test-service.c (handle_delay_echo, path_message_func): Add a
  variant of the Echo method which sleeps for a short time.
* test/name-test/test-pending-call-timeout.c: Run tests with default,
  specified and infinite timeout to make sure we get the reply.
* test/name-test/run-test.sh: Run the new test
* test/name-test/Makefile.am: Build the new test

Signed-off-by: Scott James Remnant <scott@ubuntu.com>
2009-05-28 11:47:38 +02:00
Kjartan Maraas
eb3b99e7c6 Bug 19502 - Sparse warning cleanups
This patch makes various things that should be static static,
corrects some "return FALSE" where it should be NULL, etc.

Signed-off-by: Colin Walters <walters@verbum.org>
2009-05-06 12:51:18 -04:00
Kjartan Maraas
3c89788fa4 Bug 19502 - Sparse warning cleanups
This patch makes various things that should be static static,
corrects some "return FALSE" where it should be NULL, etc.

Signed-off-by: Colin Walters <walters@verbum.org>
2009-04-21 13:10:10 -04:00
Colin Walters
dc77c21374 Clean up and clarify default system policy
The former was too reliant on old bugs and was generally unclear.
This one makes explicit exactly what is allowed and not.
2008-12-18 15:34:24 -05:00
Colin Walters
c224ba1861 Merge commit '3d6abf64d0abb2718e082e120f14f8f923a4af59' into dbus-1.2 2008-12-16 12:29:04 -05:00
Colin Walters
69ed32cbcc Add syslog of security denials and configuration file reloads
We need to start logging denials so that they become more easily trackable
and debuggable.
2008-12-12 15:18:12 -05:00
Colin Walters
3d6abf64d0 Clean up and clarify default system policy
The former was too reliant on old bugs and was generally unclear.
This one makes explicit exactly what is allowed and not.
2008-12-12 14:50:21 -05:00
Colin Walters
bb2a464067 Add syslog of security denials and configuration file reloads
We need to start logging denials so that they become more easily trackable
and debuggable.
2008-12-12 14:00:16 -05:00
Colin Walters
d899734475 Bug 18229: Allow signals
Our previous fix went too far towards lockdown; many things rely
on signals to work, and there's no really good reason to restrict
which signals can be emitted on the bus because we can't tie
them to a particular sender.
2008-12-09 10:17:36 -05:00
Colin Walters
920c3c0292 Bug 18229: Allow signals
Our previous fix went too far towards lockdown; many things rely
on signals to work, and there's no really good reason to restrict
which signals can be emitted on the bus because we can't tie
them to a particular sender.
2008-12-09 09:15:06 -05:00
Colin Walters
c5526c18ad Infrastructure for testing a "system like" bus in test suite
The tmp-session-like-system.conf bus configuration has a security
policy intended to mirror that of the system bus.  This allows
testing policy rules.
2008-12-05 11:39:36 -05:00
Colin Walters
4a436c3554 Infrastructure for testing a "system like" bus in test suite
The tmp-session-like-system.conf bus configuration has a security
policy intended to mirror that of the system bus.  This allows
testing policy rules.
2008-12-05 11:30:50 -05:00
Scott James Remnant
4cbc30465e Bug 16839: Fix bus names in test case so it actually works.
* test/name-test/test-privserver.c (filter_session_message, main),
* test/name-test/test-privserver-client.c (open_shutdown_private_connection):
 Replace TestServer with PrivServer to match the service definition files.
2008-07-24 16:19:14 -04:00
Colin Walters
0e2a099b55 Bug 15571: Clean up GUID-less connections correctly (Scott James Remnant)
* dbus/dbus-connection.c (connection_forget_shared_unlocked):
 	Remove shared connections which lack a GUID from the list that
 	caches those, otherwise references to them will remain after
 	they have been freed.
	* test/name-test/test-privserver-client.c: Update test to
	try GUID-less connections too.
2008-05-30 20:25:36 -04:00
Colin Walters
fd32a72b2f Bug 15570: Reset initialized state on dbus_shutdown (Scott James Remnant)
* dbus/dbus-bus.c (addresses_shutdown_func): Reset initialized back
 	to FALSE after cleaning up the address list so that it will be
 	reinitialized again if D-Bus is used after dbus_shutdown()
	* test/name-test/test-privserver-client.c: Uncomment part of
	test which should now pass.
2008-05-30 19:58:13 -04:00
Colin Walters
5e359834f2 Add "PrivServer" test which exercises DBusServer and dbus_shutdown
* test/data/valid-service-files/org.freedesktop.DBus.TestSuite.PrivServer.service.in:
	New service file for PrivServer.
	* configure.in: Generate it.
	* test/name-test/Makefile.am: Build test-privserver and
	test-privserver-client.
	* test/name-test/test-privserver.c: Use DBusServer to
	serve a private connection.
	* test/name-test/test-privserver-client.c: Connect
	via session bus and get address of private server,
	exercise dbus_shutdown().
	* test/name-test/run-test.sh: Run it.
2008-05-30 17:11:15 -04:00
Colin Walters
a73a79a155 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.
2008-05-30 16:53:35 -04:00
John (J5) Palmieri
94bc113117 make shell script more portable (FDO Bug #11667)
2008-01-15  John (J5) Palmieri  <johnp@redhat.com>

	* tests/name-test/run-test.sh: make more portable (FDO Bug #11667)
2008-01-15 16:23:54 -05:00
Simon McVittie
9f22c3e1e8 Bring .gitignore files up to date; add *.o, *~ etc. to top-level .gitignore
CVS ignores these automatically, so they weren't in the .cvsignore when Ryan
converted the repository.
2007-10-10 17:38:00 +01:00
Ryan Lortie
d34905d811 migrate from cvs to git (cvs2svn -> git-svnimport).
2007-09-13  Ryan Lortie  <desrt@desrt.ca>

        migrate from cvs to git (cvs2svn -> git-svnimport).

        * HACKING: update release/branch/tag instructions
        * */.cvsignore: rename to .gitignore

        also, clean up tags and branch names to conform to HACKING
2007-09-13 11:13:40 -04:00
Havoc Pennington
bdbab12123 2007-07-26 Havoc Pennington <hp@redhat.com>
* bus/config-parser-trivial.c (check_return_values): disable a
	test that hardcoded the bus user's name

	* bus/dispatch.c (bus_dispatch_test_conf): remove the "if
	(!use_launcher)" around the tests, they were only failing because
	we didn't pass through all the expected errors from the helper.

	* bus/activation-exit-codes.h
	(BUS_SPAWN_EXIT_CODE_CHILD_SIGNALED): add a code for child segfaulting
	(BUS_SPAWN_EXIT_CODE_GENERIC_FAILURE): make "1" be a generic
	failure code, so if a third party launch helper were written it
	could just always return 1 on failure.
2007-07-26 23:01:14 +00:00
Havoc Pennington
ba38a9b12f fix whitespace 2007-07-26 22:32:09 +00:00
Havoc Pennington
54b943432c 2007-06-18 Havoc Pennington <hp@redhat.com>
* doc/dbus-specification.xml: document org.freedesktop.DBus.GetId()

	* bus/driver.c (bus_driver_handle_get_id): implement org.freedesktop.DBus.GetId()

	* bus/bus.c (bus_context_new): generate a unique ID for each bus context

	* dbus/dbus-connection.c (dbus_connection_get_server_id): new function

	* dbus/dbus-bus.c (dbus_bus_get_id): new function

	* dbus/dbus-server.c (dbus_server_get_id): new function
2007-06-18 19:32:51 +00:00
Simon McVittie
6b4bd7d2e9 tools/.cvsignore: Ignore all currently built files.
test/name-test/.cvsignore: New file, ditto.
2007-05-21 16:50:13 +00:00
Ralf Habacker
7f3af4748f * configure.in,test/test-sleep-forever.c,test/test-names.c:
added configure check for unistd.h.
2007-03-04 19:00:40 +00:00
John (J5) Palmieri
2d760baace * dbus/dbus-threads.h: fix DBUS_THREAD_FUNCTIONS_ALL_MASK to have
the correct value so we don't assert when initalizing recursive threads

* test/name-test/test-thread-init.c: call dbus_threads_init_default
  instead of _dbus_threads_init_debug since it is more of a real world
  test
2006-11-14 18:56:43 +00:00
John (J5) Palmieri
82c9cd05cd * configure.in, dbus-1.pc.in: Check to see if thread methods
are in glibc or libpthread and add -lpthread to the link stage
  if it is the latter
2006-10-26 18:06:07 +00:00
John (J5) Palmieri
2db06dbf18 * test/name-test/Makefile.am: don't link against both libdbus and
libdbus-convenience
2006-10-11 17:30:58 +00:00
Havoc Pennington
a2129f7ccc 2006-10-01 Havoc Pennington <hp@redhat.com>
* dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref):
	Add a hack to make DBusNewConnectionFunction work right.

	* dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
	the hack here. Also, fix the todo about refcount leak.

	* dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
	and use the hack here

        * dbus/dbus-connection.c: Kill the "shared" flag vs. the
	"shareable" flag; this was completely broken, since it meant
	dbus_connection_open() returned a connection of unknown
	shared-ness. Now, we always hold a ref on anything opened
	as shareable.

	Move the call to notify dbus-bus.c into
	connection_forget_shared_unlocked, so libdbus consistently forgets
	all its knowledge of a connection at once. This exposed numerous
	places where things were totally broken if we dropped a ref inside
	get_dispatch_status_unlocked where
	connection_forget_shared_unlocked was previously, so move
	connection_forget_shared_unlocked into
	_dbus_connection_update_dispatch_status_and_unlock. Also move the
	exit_on_disconnect here.

	(shared_connections_shutdown): this assumed weak refs to the
	shared connections; since we have strong refs now, the assertion
	was failing and stuff was left in the hash. Fix it to close
	still-open shared connections.

	* bus/dispatch.c: fixup to use dbus_connection_open_private on the
	debug pipe connections

	* dbus/dbus-connection.c (dbus_connection_dispatch): only notify
	dbus-bus.c if the closed connection is in fact shared
	(_dbus_connection_close_possibly_shared): rename from
	_dbus_connection_close_internal
	(dbus_connection_close, dbus_connection_open,
	dbus_connection_open_private): Improve docs to explain the deal
	with when you should close or unref or both

	* dbus/dbus-bus.c
	(_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
	from _dbus_bus_check_connection_and_unref_unlocked and modify to
	loop over all connections

	* test/test-utils.c (test_connection_shutdown): don't try to close
	shared connections.

	* test/name-test/test-threads-init.c (main): fix warnings in here

	* dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
	env variable to cause blocking waiting for gdb; drop
	DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace()
	unconditionally.

	* configure.in: add -export-dynamic to libtool flags if assertions enabled
	so _dbus_print_backtrace works.

	* dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
	instead of _dbus_verbose to print the backtrace, and diagnose lack
	of -rdynamic/-export-dynamic
2006-10-01 15:36:19 +00:00