Re: How to make automated tests for clients of D-Bus system service?
Miroslav Kravec <[email protected]>
| Newsgroups | gmane.comp.freedesktop.dbus |
|---|---|
| Message-ID | <CA+NaYLPiQR6a-pay_mfN=BPPPXvo=FRfO9DoBPqxNe-yXhfZ-A@mail.gmail.com> |
On Tue, Feb 6, 2018 at 1:31 PM, Simon McVittie <[email protected]> wrote: > ... > > Or if you want a little more detail than that, the standard procedure is: > > * Run a dbus-daemon that you will pretend is the system bus, and capture > its address (use the --print-address option) How do I start own dbus-daemon? Following command fails: ``` $ dbus-daemon --print-address No configuration file specified. dbus-daemon [--version] [--session] [--system] [--config-file=FILE] [--print-address[=DESCRIPTOR]] [--print-pid[=DESCRIPTOR]] [--introspect] [--address=ADDRESS] [--nopidfile] [--nosyslog] [--syslog] [--syslog-only] [--nofork] [--fork] [--systemd-activation] ``` > * Put a mock implementation of your system service on that bus (write it > however you like, but python-dbusmock is one option) > * Run your client with the environment variable DBUS_SYSTEM_BUS_ADDRESS > set to the address where your fake system bus is listening > > This is a lot like the procedure for testing session bus clients, but > with fake system services and a fake system bus instead of their session > bus counterparts. This sounds to be exactly what I need. Tool/library python-dbusmock seems to be useful. It's packaged in Debian (https://packages.debian.org/sid/python-dbusmock) and Fedora (https://apps.fedoraproject.org/packages/python-dbusmock), and that makes it viable option. > If you're using GDBus, look at GTestDBus for inspiration (but you don't > necessarily want to *use* GTestDBus, because it has some design issues > around the lifetimes of the singleton shared bus connections vs. the > lifetime of a test fixture). > > If you're using libdbus, (a) consider doing something else, or (b) take > a look at test/test-utils-glib.[ch] or tools/dbus-run-session.c in dbus > for inspiration. I'm looking for the most simple way to do it. Python should be enough. I don't really care about performance and memory consumption of automated tests. I focus more on end-user experience, and fast development, as the project I'm working on is small, and with limited development capacity. _______________________________________________ dbus mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/dbus