testing: Add wrapper for systemctl to collect leaks from charon-systemd

Similar to the wrapper around `service` added with 71d59af58a, this
sets the variable only when running the automated tests.
This commit is contained in:
Tobias Brunner 2018-06-28 16:29:22 +02:00
parent 3d021f5b06
commit 80c9ae4521
1 changed files with 22 additions and 0 deletions

View File

@ -0,0 +1,22 @@
#!/bin/bash
#
# LEAK_DETECTIVE_LOG is set for automated runs, however, this is not passed
# to a process started via systemctl. This wrapper is used to set the variable
# for the strongswan-swanctl.service unit.
ORIG=/bin/systemctl
CONF=/lib/systemd/system/strongswan-swanctl.service
if [[ "$2" != "strongswan-swanctl" ]]; then
$ORIG "$@"
fi
if [[ "$1" == "start" && -n $LEAK_DETECTIVE_LOG ]]; then
sed -i "s:Type=:Environment=LEAK_DETECTIVE_LOG=$LEAK_DETECTIVE_LOG\nType=:" $CONF 2>/dev/null
fi
$ORIG "$@"
if [[ "$1" == "stop" ]]; then
sed -i '/LEAK_DETECTIVE_LOG/d' $CONF 2>/dev/null
fi