dbus/bus
Simon McVittie bef88fd562 test/bus: Break up dispatch test into three separate tests
This is really three separate test-cases: one for traditional
activation as a direct child process of the dbus-daemon, and two for
traditional activation (successful and failing) via the setuid
dbus-daemon-launch-helper on Unix.

The ones where activation succeeds extremely slow, as a result of the
instrumentation for simulating malloc() failures combined with a large
number of memory operations, particularly when using AddressSanitizer.

Splitting up "OOM" tests like these has a disproportionately good impact
on the time they take, because the simulated malloc() failure
instrumentation repeats the entire test making the first malloc() fail,
then making the second malloc() fail, and so on. For allocation failures
in the second half of the test, this means we repeat the first half of
the test with no malloc() failures a very large number of times, which
is not a good use of time, because we already tested it successfully.

Even when not using the "OOM" instrumentation, splitting up these tests
lets them run in parallel, which is also a major time saving.

Needless to say, this speeds up testing considerably. On my modern but
unexceptional x86 laptop, in a typical debug build with Meson, the old
dispatch test took just over 21 minutes, which drops to about 40 seconds
each for the new normal-activation and helper-activation tests (and for
most of that time, they're running in parallel, so the wall-clock time
taken for the whole test suite is somewhere around a minute).

In a debug build with Meson, gcc and AddressSanitizer, the old dispatch
test takes longer than my patience will allow, and the new separate
tests take about 5-6 minutes each. Reduce their timeout accordingly, but
not as far as the default for slow tests (5 minutes) to allow some
headroom for AddressSanitizer or slower systems.

The failed-helper-activation test is almost instantaneous, and no longer
needs to be marked as slow.

Signed-off-by: Simon McVittie <smcv@collabora.com>
2022-07-18 11:15:54 +00:00
..
legacy-config build: Add machine-readable licensing markers to the Meson build system 2022-07-13 20:36:13 +01:00
systemd-user build: Add machine-readable licensing markers to the Meson build system 2022-07-13 20:36:13 +01:00
sysusers.d build: Add machine-readable licensing markers to the Meson build system 2022-07-13 20:36:13 +01:00
tmpfiles.d build: Add machine-readable licensing markers to the Meson build system 2022-07-13 20:36:13 +01:00
.gitignore .gitignore: Ignore many more generated files 2018-12-14 13:28:50 +00:00
activation-exit-codes.h trivial: Remove trailing whitespace from copyright notices 2018-12-17 11:22:39 +00:00
activation-helper-bin.c Normalize C source files to end with exactly one newline 2020-06-10 10:47:31 +00:00
activation-helper.c activation-helper: Never crash if unable to write oom_score_adj 2022-07-16 22:23:07 +00:00
activation-helper.h trivial: Remove trailing whitespace from copyright notices 2018-12-17 11:22:39 +00:00
activation.c Avoid assertation in bus_activation_reload() 2021-12-09 12:54:22 +01:00
activation.h Mediate auto-activation attempts through AppArmor 2016-11-28 12:11:45 +00:00
apparmor.c Mediate auto-activation attempts through AppArmor 2016-11-28 12:11:45 +00:00
apparmor.h Do not auto-activate services if we could not send a message 2016-11-28 12:11:41 +00:00
audit.c bus: Make audit initialization idempotent 2019-07-03 11:11:23 +01:00
audit.h audit: use DBUS_SYSTEM_LOG_WARNING if we cannot open the audit fd 2015-08-06 17:12:37 +01:00
bus.c dbus-daemon: Implement signal 'ActivatableServicesChanged' 2022-02-16 14:00:13 +01:00
bus.h tools/dbus-run-session: fix race between manual and automatically started dbus-daemon on Windows 2021-11-23 08:38:14 +01:00
CMakeLists.txt cmake: Drop an unnecessary include directory 2022-03-24 14:26:42 +00:00
config-loader-expat.c config-loader-expat: Tell Expat not to defend against hash collisions 2017-07-28 11:17:04 +01:00
config-parser-common.c Normalize C source files to end with exactly one newline 2020-06-10 10:47:31 +00:00
config-parser-common.h Normalize C source files to end with exactly one newline 2020-06-10 10:47:31 +00:00
config-parser-trivial.c Normalize C source files to end with exactly one newline 2020-06-10 10:47:31 +00:00
config-parser-trivial.h trivial: Remove trailing whitespace from copyright notices 2018-12-17 11:22:39 +00:00
config-parser.c Normalize C source files to end with exactly one newline 2020-06-10 10:47:31 +00:00
config-parser.h trivial: Remove trailing whitespace from copyright notices 2018-12-17 11:22:39 +00:00
connection.c bus: Don't explicitly clear BusConnections.monitors 2020-02-20 12:43:34 +00:00
connection.h bus: Clarify names of methods that query owned names 2019-05-30 15:59:10 +01:00
containers.c build: Define DBUS_INT64_MODIFIER, analogous to G_GINT64_MODIFIER 2022-04-19 18:27:47 +00:00
containers.h containers: Add a method to ask to be sent the connection instance header 2018-02-16 15:27:51 +00:00
dbus.service.in bus: Notify systemd when we are ready 2018-03-02 14:48:49 +00:00
dbus.socket.in systemd: enable the dbus service unconditionally 2010-09-06 03:21:17 +02:00
desktop-file.c trivial: Remove trailing whitespace from copyright notices 2018-12-17 11:22:39 +00:00
desktop-file.h BusDesktopFile: Refactor logic to free the parser contents 2018-11-20 12:01:12 +00:00
dir-watch-default.c trivial: Remove trailing whitespace from copyright notices 2018-12-17 11:22:39 +00:00
dir-watch-inotify.c bus/dir-watch: Do not crash with > 128 dirs 2022-04-20 11:24:40 +02:00
dir-watch-kqueue.c dir-watch-kqueue: Silence -Wshadow warning 2022-05-15 11:35:35 +01:00
dir-watch.h trivial: Remove trailing whitespace from copyright notices 2018-12-17 11:22:39 +00:00
dispatch.c test/bus: Break up dispatch test into three separate tests 2022-07-18 11:15:54 +00:00
dispatch.h trivial: Remove trailing whitespace from copyright notices 2018-12-17 11:22:39 +00:00
driver.c dbus-daemon: Implement signal 'ActivatableServicesChanged' 2022-02-16 14:00:13 +01:00
driver.h trivial: Remove trailing whitespace from copyright notices 2018-12-17 11:22:39 +00:00
example-session-disable-stats.conf.in config: add examples to show how to enable/disable the Stats interface 2014-10-01 16:38:40 +01:00
example-system-enable-stats.conf.in config: add examples to show how to enable/disable the Stats interface 2014-10-01 16:38:40 +01:00
example-system-hardening-without-traditional-activation.conf Configure option to disable traditional activation 2019-03-25 21:51:33 +02:00
expirelist.c embedded tests: Conform to the same API for all tests 2018-12-17 14:12:59 +00:00
expirelist.h Bug 21161 - Update the FSF address 2009-07-14 15:39:47 -04:00
main.c dbus: simplify socket close() & invalidate() calls 2022-07-15 16:26:18 +01:00
Makefile.am build: Distribute Meson build system in release tarballs 2022-07-13 20:36:13 +01:00
meson.build build: Change how we create empty directories from Meson 2022-07-13 20:36:13 +01:00
org.freedesktop.dbus-session.plist.in 10.4 is old so set more sensible launchd defaults. 2010-12-09 08:20:07 +01:00
policy.c Normalize C source files to end with exactly one newline 2020-06-10 10:47:31 +00:00
policy.h dbus-daemon: add send_destination_prefix support 2019-04-26 13:29:42 +02:00
selinux.c bus/selinux: Fix audit message types. 2020-11-23 13:07:19 +00:00
selinux.h trivial: Remove trailing whitespace from copyright notices 2018-12-17 11:22:39 +00:00
services.c bus_service_remove_owner(): Assert that service has an owner 2022-04-21 13:55:59 +01:00
services.h bus: Clarify names of methods that query owned names 2019-05-30 15:59:10 +01:00
session.conf.in Disable the Containers interface 2021-12-10 16:48:51 +00:00
signals.c bus/signal: fix compilation when only -Dembedded-tests 2022-01-21 21:16:45 +04:00
signals.h bus: Separate RemoveMatch into prepare and commit stages 2021-11-22 16:10:51 +00:00
stats.c driver: Share bus_driver_get_conn_helper with other modules 2017-06-29 15:42:20 +01:00
stats.h Implement GetAllMatchRules on the Stats interface 2014-09-25 12:59:50 +01:00
system.conf.in Disable the Containers interface 2021-12-10 16:48:51 +00:00
test.c tools/dbus-run-session: fix race between manual and automatically started dbus-daemon on Windows 2021-11-23 08:38:14 +01:00
test.h test/bus: Break up dispatch test into three separate tests 2022-07-18 11:15:54 +00:00
utils.c trivial: Remove trailing whitespace from copyright notices 2018-12-17 11:22:39 +00:00
utils.h trivial: Remove trailing whitespace from copyright notices 2018-12-17 11:22:39 +00:00