Browse Source

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.
Nick Mathewson 7 years ago
parent
commit
5fbd195918
1 changed files with 7 additions and 0 deletions
  1. 7 0
      src/test/test_switch_id.sh

+ 7 - 0
src/test/test_switch_id.sh

@@ -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"