testing: Add wrapper around service command

When charon is started via service command LEAK_DETECTIVE_LOG is not set
because the command strips the environment.  Since we only want the
variable to be set during the automated test runs we can't just set it
in /etc/default/charon.  Instead, we do so in this wrapper when charon is
started and remove the variable again when it is stopped.
This commit is contained in:
Tobias Brunner 2017-05-26 16:24:35 +02:00
parent b2473e94a2
commit 71d59af58a
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, `service` strips
# the environment. This wrapper is used to set the variable for the charon
# init script.
ORIG=/usr/sbin/service
CONF=/etc/default/charon
if [[ "$1" != "charon" ]]; then
$ORIG "$@"
fi
if [[ "$2" == "start" && -n $LEAK_DETECTIVE_LOG ]]; then
echo "export LEAK_DETECTIVE_LOG=$LEAK_DETECTIVE_LOG" >> $CONF
fi
$ORIG "$@"
if [[ "$2" == "stop" ]]; then
sed -i '/LEAK_DETECTIVE_LOG/d' $CONF 2>/dev/null
fi