#!/bin/sh

set -e
set -x

cleanup() {
    cp -af "$bkp" "$slapd_apparmor_override"
    rm -f "$bkp"
    apparmor_parser -r -T -W "$slapd_apparmor"
}

if [ -x /usr/sbin/aa-status ]; then
    /usr/sbin/aa-status --enabled && apparmor_enabled="true" || apparmor_enabled="false"
else
    apparmor_enabled="false"
fi

if [ "$apparmor_enabled" = "true" ]; then
    bkp=$(mktemp)
    slapd_apparmor_override="/etc/apparmor.d/local/usr.sbin.slapd"
    slapd_apparmor="/etc/apparmor.d/usr.sbin.slapd"

    # backup existing override
    cp -af "$slapd_apparmor_override" "$bkp"

    trap "cleanup" 0 INT QUIT ABRT PIPE TERM

    # the test suite brings up a test slapd server running
    # off /tmp/<tmpdir>. We don't know the name of that directory
    # beforehand, so let it use anything under /tmp
    echo "/tmp/** rwk," > "$slapd_apparmor_override"
    apparmor_parser -r -T -W "$slapd_apparmor"
fi

python3 setup.py test
