Simplify running commit-msg tests

* Do not require TEST_TMPDIR.
* Allow running from anywhere, not only from the project root.

Release-Notes: skip
Change-Id: I854c564641303753ffbae664681314d0a3759332
diff --git a/resources/com/google/gerrit/server/commit-msg_test.sh b/resources/com/google/gerrit/server/commit-msg_test.sh
index 2c256ff..542632a1 100755
--- a/resources/com/google/gerrit/server/commit-msg_test.sh
+++ b/resources/com/google/gerrit/server/commit-msg_test.sh
@@ -2,7 +2,18 @@
 
 set -eu
 
-hook=$(pwd)/resources/com/google/gerrit/server/tools/root/hooks/commit-msg
+readlink -f / &> /dev/null || readlink() { greadlink "$@" ; } # for MacOS
+test_dir=$(dirname -- "$(readlink -f -- "$0")")
+hook=$test_dir/tools/root/hooks/commit-msg
+
+if [ -z "${TEST_TMPDIR-}" ] ; then
+  TEST_TMPDIR=$(mktemp -d)
+  trap cleanup EXIT
+fi
+
+function cleanup {
+  rm -rf "$TEST_TMPDIR"
+}
 
 cd $TEST_TMPDIR