#!/bin/sh

if test "$(id -u)" != '0'; then
    echo "This test only works when run as root. Skipping." >&2
    exit 77
fi

if test "$(id -u nobody)" = ""; then
    echo "This test requires that your system have a 'nobody' user. Sorry." >&2
    exit 1
fi

if test "$OVERRIDE_GCDA_PERMISSIONS_HACK" = "yes"; then
  find src -type f -name '*gcda' -print0 | xargs -0 chmod 0666
fi

"${builddir:-.}/src/test/test-switch-id" nobody setuid          || exit 1
"${builddir:-.}/src/test/test-switch-id" nobody root-bind-low   || exit 1
"${builddir:-.}/src/test/test-switch-id" nobody setuid-strict   || exit 1
"${builddir:-.}/src/test/test-switch-id" nobody built-with-caps || exit 0
# ... Go beyond this point only if we were built with capability support.

"${builddir:-.}/src/test/test-switch-id" nobody have-caps       || exit 1
"${builddir:-.}/src/test/test-switch-id" nobody setuid-keepcaps || exit 1

if test "$OVERRIDE_GCDA_PERMISSIONS_HACK" = "yes"; then
    find src -type f -name '*gcda' -print0 | xargs -0 chmod 0644
fi

echo "All okay"

exit 0
