podman/test/system/helpers.systemd.bash
Ed Santiago 313c7118ea system tests: cleaner, safer use of systemd
First and foremost: use ephemeral (/run, $XDG) directories
for systemd unit files, so as not to vandalize a working system.

Second, refactor common systemd-related functionality into
a new helper file, loaded by the systemd-related tests.
Shared functionality includes:

  * setting $XDG_RUNTIME_DIR if unset and rootless
  * setting $UNIT_DIR for use by tests
  * new systemctl() and journalctl() functions, which
    include "--user" when rootless (why can't systemd
    figure this out on its own?)

Signed-off-by: Ed Santiago <santiago@redhat.com>
2021-07-20 08:57:26 -06:00

31 lines
627 B
Bash

# -*- bash -*-
#
# BATS helpers for systemd-related functionality
#
# podman initializes this if unset, but systemctl doesn't
if [ -z "$XDG_RUNTIME_DIR" ]; then
if is_rootless; then
export XDG_RUNTIME_DIR=/run/user/$(id -u)
fi
fi
# For tests which write systemd unit files
UNIT_DIR="/run/systemd/system"
_DASHUSER=
if is_rootless; then
UNIT_DIR="${XDG_RUNTIME_DIR}/systemd/user"
# Why isn't systemd smart enough to figure this out on its own?
_DASHUSER="--user"
fi
mkdir -p $UNIT_DIR
systemctl() {
command systemctl $_DASHUSER "$@"
}
journalctl() {
command journalctl $_DASHUSER "$@"
}