test/scripts: Use the same code to find the tor binary

This change makes sure we are always using the coverage binary, when
coverage is enabled.

Fixes bug 32368; bugfix on 0.2.7.3-rc.
This commit is contained in:
teor 2019-10-31 00:58:09 +10:00
parent f29de4b8d2
commit 5b04db59f6
7 changed files with 126 additions and 8 deletions

4
changes/bug32368 Normal file
View File

@ -0,0 +1,4 @@
o Minor bugfixes (test):
- Use the same code to find the tor binary in all of our test scripts.
This change makes sure we are always using the coverage binary, when
coverage is enabled. Fixes bug 32368; bugfix on 0.2.7.3-rc.

View File

@ -3,6 +3,21 @@
umask 077 umask 077
set -e set -e
# emulate realpath(), in case coreutils or equivalent is not installed.
abspath() {
f="$*"
if [ -d "$f" ]; then
dir="$f"
base=""
else
dir="$(dirname "$f")"
base="/$(basename "$f")"
fi
dir="$(cd "$dir" && pwd)"
echo "$dir$base"
}
# find the tor binary
if [ $# -ge 1 ]; then if [ $# -ge 1 ]; then
TOR_BINARY="${1}" TOR_BINARY="${1}"
shift shift
@ -10,6 +25,8 @@ else
TOR_BINARY="${TESTING_TOR_BINARY:-./src/app/tor}" TOR_BINARY="${TESTING_TOR_BINARY:-./src/app/tor}"
fi fi
TOR_BINARY="$(abspath "$TOR_BINARY")"
echo "TOR BINARY IS ${TOR_BINARY}" echo "TOR BINARY IS ${TOR_BINARY}"
die() { echo "$1" >&2 ; exit 5; } die() { echo "$1" >&2 ; exit 5; }

View File

@ -6,6 +6,20 @@
umask 077 umask 077
set -e set -e
# emulate realpath(), in case coreutils or equivalent is not installed.
abspath() {
f="$*"
if [ -d "$f" ]; then
dir="$f"
base=""
else
dir="$(dirname "$f")"
base="/$(basename "$f")"
fi
dir="$(cd "$dir" && pwd)"
echo "$dir$base"
}
if [ $# -eq 0 ] || [ ! -f "${1}" ] || [ ! -x "${1}" ]; then if [ $# -eq 0 ] || [ ! -f "${1}" ] || [ ! -x "${1}" ]; then
if [ "$TESTING_TOR_BINARY" = "" ] ; then if [ "$TESTING_TOR_BINARY" = "" ] ; then
echo "Usage: ${0} PATH_TO_TOR [case-number]" echo "Usage: ${0} PATH_TO_TOR [case-number]"
@ -21,13 +35,18 @@ if test "$UNAME_OS" = 'CYGWIN' || \
exit 77 exit 77
fi fi
# find the tor binary
if [ $# -ge 1 ]; then if [ $# -ge 1 ]; then
TOR_BINARY="${1}" TOR_BINARY="${1}"
shift shift
else else
TOR_BINARY="${TESTING_TOR_BINARY}" TOR_BINARY="${TESTING_TOR_BINARY:-./src/app/tor}"
fi fi
TOR_BINARY="$(abspath "$TOR_BINARY")"
echo "TOR BINARY IS ${TOR_BINARY}"
if "$TOR_BINARY" --list-modules | grep -q "relay: no"; then if "$TOR_BINARY" --list-modules | grep -q "relay: no"; then
echo "This test requires the relay module. Skipping." >&2 echo "This test requires the relay module. Skipping." >&2
exit 77 exit 77

View File

@ -6,6 +6,20 @@
umask 077 umask 077
set -e set -e
# emulate realpath(), in case coreutils or equivalent is not installed.
abspath() {
f="$*"
if [ -d "$f" ]; then
dir="$f"
base=""
else
dir="$(dirname "$f")"
base="/$(basename "$f")"
fi
dir="$(cd "$dir" && pwd)"
echo "$dir$base"
}
if [ $# -eq 0 ] || [ ! -f "${1}" ] || [ ! -x "${1}" ]; then if [ $# -eq 0 ] || [ ! -f "${1}" ] || [ ! -x "${1}" ]; then
if [ "$TESTING_TOR_BINARY" = "" ] ; then if [ "$TESTING_TOR_BINARY" = "" ] ; then
echo "Usage: ${0} PATH_TO_TOR [case-number]" echo "Usage: ${0} PATH_TO_TOR [case-number]"
@ -21,13 +35,18 @@ if test "$UNAME_OS" = 'CYGWIN' || \
exit 77 exit 77
fi fi
# find the tor binary
if [ $# -ge 1 ]; then if [ $# -ge 1 ]; then
TOR_BINARY="${1}" TOR_BINARY="${1}"
shift shift
else else
TOR_BINARY="${TESTING_TOR_BINARY}" TOR_BINARY="${TESTING_TOR_BINARY:-./src/app/tor}"
fi fi
TOR_BINARY="$(abspath "$TOR_BINARY")"
echo "TOR BINARY IS ${TOR_BINARY}"
if "$TOR_BINARY" --list-modules | grep -q "relay: no"; then if "$TOR_BINARY" --list-modules | grep -q "relay: no"; then
echo "This test requires the relay module. Skipping." >&2 echo "This test requires the relay module. Skipping." >&2
exit 77 exit 77

View File

@ -85,6 +85,8 @@ fi
TOR_BINARY="$(abspath "$TOR_BINARY")" TOR_BINARY="$(abspath "$TOR_BINARY")"
echo "TOR BINARY IS ${TOR_BINARY}"
TOR_MODULES_DISABLED="$("$TOR_BINARY" --list-modules | grep ": no" \ TOR_MODULES_DISABLED="$("$TOR_BINARY" --list-modules | grep ": no" \
| cut -d ":" -f1 | sort | tr "\n" "_")" | cut -d ":" -f1 | sort | tr "\n" "_")"
# Remove the last underscore, if there is one # Remove the last underscore, if there is one

View File

@ -1,7 +1,23 @@
#!/bin/sh #!/bin/sh
umask 077
set -e
set -x set -x
# emulate realpath(), in case coreutils or equivalent is not installed.
abspath() {
f="$*"
if [ -d "$f" ]; then
dir="$f"
base=""
else
dir="$(dirname "$f")"
base="/$(basename "$f")"
fi
dir="$(cd "$dir" && pwd)"
echo "$dir$base"
}
UNAME_OS=$(uname -s | cut -d_ -f1) UNAME_OS=$(uname -s | cut -d_ -f1)
if test "$UNAME_OS" = 'CYGWIN' || \ if test "$UNAME_OS" = 'CYGWIN' || \
test "$UNAME_OS" = 'MSYS' || \ test "$UNAME_OS" = 'MSYS' || \
@ -12,7 +28,19 @@ if test "$UNAME_OS" = 'CYGWIN' || \
fi fi
fi fi
if "${TESTING_TOR_BINARY}" --list-modules | grep -q "relay: no"; then # find the tor binary
if [ $# -ge 1 ]; then
TOR_BINARY="${1}"
shift
else
TOR_BINARY="${TESTING_TOR_BINARY:-./src/app/tor}"
fi
TOR_BINARY="$(abspath "$TOR_BINARY")"
echo "TOR BINARY IS ${TOR_BINARY}"
if "${TOR_BINARY}" --list-modules | grep -q "relay: no"; then
echo "This test requires the relay module. Skipping." >&2 echo "This test requires the relay module. Skipping." >&2
exit 77 exit 77
fi fi
@ -35,6 +63,6 @@ elif [ ! -d "$tmpdir" ]; then
exit 3 exit 3
fi fi
"${PYTHON:-python}" "${abs_top_srcdir:-.}/src/test/test_rebind.py" "${TESTING_TOR_BINARY}" "$tmpdir" "${PYTHON:-python}" "${abs_top_srcdir:-.}/src/test/test_rebind.py" "${TOR_BINARY}" "$tmpdir"
exit $? exit $?

View File

@ -1,15 +1,44 @@
#!/bin/sh #!/bin/sh
# Check that tor regenerates keys when key files are zero-length # Check that tor regenerates keys when key files are zero-length
if "${builddir:-.}/src/app/tor" --list-modules | grep -q "relay: no"; then umask 077
set -e
# emulate realpath(), in case coreutils or equivalent is not installed.
abspath() {
f="$*"
if [ -d "$f" ]; then
dir="$f"
base=""
else
dir="$(dirname "$f")"
base="/$(basename "$f")"
fi
dir="$(cd "$dir" && pwd)"
echo "$dir$base"
}
# find the tor binary
if [ $# -ge 1 ]; then
TOR_BINARY="${1}"
shift
else
TOR_BINARY="${TESTING_TOR_BINARY:-./src/app/tor}"
fi
TOR_BINARY="$(abspath "$TOR_BINARY")"
echo "TOR BINARY IS ${TOR_BINARY}"
if "$TOR_BINARY" --list-modules | grep -q "relay: no"; then
echo "This test requires the relay module. Skipping." >&2 echo "This test requires the relay module. Skipping." >&2
exit 77 exit 77
fi fi
exitcode=0 exitcode=0
"${SHELL:-sh}" "${abs_top_srcdir:-.}/src/test/zero_length_keys.sh" "${builddir:-.}/src/app/tor" -z || exitcode=1 "${SHELL:-sh}" "${abs_top_srcdir:-.}/src/test/zero_length_keys.sh" "$TOR_BINARY" -z || exitcode=1
"${SHELL:-sh}" "${abs_top_srcdir:-.}/src/test/zero_length_keys.sh" "${builddir:-.}/src/app/tor" -d || exitcode=1 "${SHELL:-sh}" "${abs_top_srcdir:-.}/src/test/zero_length_keys.sh" "$TOR_BINARY" -d || exitcode=1
"${SHELL:-sh}" "${abs_top_srcdir:-.}/src/test/zero_length_keys.sh" "${builddir:-.}/src/app/tor" -e || exitcode=1 "${SHELL:-sh}" "${abs_top_srcdir:-.}/src/test/zero_length_keys.sh" "$TOR_BINARY" -e || exitcode=1
exit ${exitcode} exit ${exitcode}