Coverage hack for test_switch_id.sh

This hack provides a way to make sure we can see coverage from
test-switch-id.  If you set OVERRIDE_GCDA_PERMISSIONS_HACK, we
temporarily make the .gcda files mode 0666 before we run the
test scripts, and then we set them to 0644 again afterwards.

That's necessary because the test_switch_id.sh script does a
setuid() to 'nobody' part way through, and drops the ability to
change its mind back.
This commit is contained in:
Nick Mathewson 2016-06-20 11:15:47 -04:00
parent 603cb712ef
commit 5fbd195918
1 changed files with 7 additions and 0 deletions

View File

@ -10,6 +10,10 @@ if test "`id -u nobody`" = ""; then
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
@ -19,6 +23,9 @@ fi
"${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"