mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-27 13:53:31 +01:00
Integrate zero_length_keys test into the automake test suite.
The zero length keys test now requires the path to the Tor binary as the first parameter to ensure the correct Tor binary is used without hard coding a path. The wrapper script calls the zero length keys test for each test separately to ensure the correct shell is used (as configured by autoconf). Another solution would have been to place the tests into separate functions so multiple tests could be run internally. This would have made a diff of considerable size and frankly it is outside the scope of this fix.
This commit is contained in:
parent
372aef8981
commit
21e2425307
1
.gitignore
vendored
1
.gitignore
vendored
@ -174,6 +174,7 @@ cscope.*
|
||||
/src/test/test-child.exe
|
||||
/src/test/test-ntor-cl.exe
|
||||
/src/test/test_workqueue.exe
|
||||
/src/test/test_zero_length_keys.sh
|
||||
|
||||
# /src/tools/
|
||||
/src/tools/tor-checkkey
|
||||
|
@ -1662,6 +1662,7 @@ AC_CONFIG_FILES([
|
||||
src/config/torrc.minimal
|
||||
scripts/maint/checkOptionDocs.pl
|
||||
scripts/maint/updateVersions.pl
|
||||
src/test/test_zero_length_keys.sh
|
||||
])
|
||||
|
||||
if test x$asciidoc = xtrue && test "$ASCIIDOC" = "none" ; then
|
||||
|
@ -1,4 +1,8 @@
|
||||
TESTS += src/test/test src/test/test-slow src/test/test-memwipe
|
||||
TESTS += src/test/test src/test/test-slow src/test/test-memwipe \
|
||||
src/test/test_zero_length_keys.sh
|
||||
|
||||
TEST_EXTENSIONS = .sh
|
||||
SH_LOG_COMPILER = $(SHELL)
|
||||
|
||||
noinst_PROGRAMS+= src/test/bench
|
||||
if UNITTESTS_ENABLED
|
||||
@ -170,7 +174,6 @@ if USEPYTHON
|
||||
$(top_builddir)/src/test/test-bt-cl assert | $(PYTHON) $(top_srcdir)/src/test/bt_test.py
|
||||
$(top_builddir)/src/test/test-bt-cl crash | $(PYTHON) $(top_srcdir)/src/test/bt_test.py
|
||||
endif
|
||||
$(SHELL) $(top_srcdir)/src/test/zero_length_keys.sh
|
||||
|
||||
EXTRA_DIST += \
|
||||
src/test/bt_test.py \
|
||||
|
10
src/test/test_zero_length_keys.sh.in
Normal file
10
src/test/test_zero_length_keys.sh.in
Normal file
@ -0,0 +1,10 @@
|
||||
#!/bin/sh
|
||||
# Check that tor regenerates keys when key files are zero-length
|
||||
|
||||
exitcode=0
|
||||
|
||||
@SHELL@ @abs_top_srcdir@/src/test/zero_length_keys.sh "@builddir@/src/or/tor" -z || exitcode=1
|
||||
@SHELL@ @abs_top_srcdir@/src/test/zero_length_keys.sh "@builddir@/src/or/tor" -d || exitcode=1
|
||||
@SHELL@ @abs_top_srcdir@/src/test/zero_length_keys.sh "@builddir@/src/or/tor" -e || exitcode=1
|
||||
|
||||
exit ${exitcode}
|
@ -3,13 +3,13 @@
|
||||
# Test for bug #13111 - Tor fails to start if onion keys are zero length
|
||||
#
|
||||
# Usage:
|
||||
# ./zero_length_keys.sh
|
||||
# ./zero_length_keys.sh PATH_TO_TOR
|
||||
# Run all the tests below
|
||||
# ./zero_length_keys.sh -z
|
||||
# ./zero_length_keys.sh PATH_TO_TOR -z
|
||||
# Check tor will launch and regenerate zero-length keys
|
||||
# ./zero_length_keys.sh -d
|
||||
# ./zero_length_keys.sh PATH_TO_TOR -d
|
||||
# Check tor regenerates deleted keys (existing behaviour)
|
||||
# ./zero_length_keys.sh -e
|
||||
# ./zero_length_keys.sh PATH_TO_TOR -e
|
||||
# Check tor does not overwrite existing keys (existing behaviour)
|
||||
#
|
||||
# Exit Statuses:
|
||||
@ -19,10 +19,16 @@
|
||||
# 3: a command failed - the test could not be completed
|
||||
#
|
||||
|
||||
if [ $# -lt 1 ]; then
|
||||
if [ $# -eq 0 ] || [ ! -f ${1} ] || [ ! -x ${1} ]; then
|
||||
echo "Usage: ${0} PATH_TO_TOR [-z|-d|-e]"
|
||||
exit 1
|
||||
elif [ $# -eq 1 ]; then
|
||||
echo "Testing that tor correctly handles zero-length keys"
|
||||
"$0" -z && "$0" -d && "$0" -e
|
||||
"$0" "${1}" -z && "$0" "${1}" -d && "$0" "${1}" -e
|
||||
exit $?
|
||||
else #[$# -gt 1 ]; then
|
||||
TOR_BINARY="${1}"
|
||||
shift
|
||||
fi
|
||||
|
||||
DATA_DIR=`mktemp -d -t tor_zero_length_keys.XXXXXX`
|
||||
@ -40,7 +46,7 @@ touch "$DATA_DIR"/empty_torrc
|
||||
|
||||
# DisableNetwork means that the ORPort won't actually be opened.
|
||||
# 'ExitRelay 0' suppresses a warning.
|
||||
TOR="./src/or/tor --hush --DisableNetwork 1 --ShutdownWaitLength 0 --ORPort 12345 --ExitRelay 0 -f $DATA_DIR/empty_torrc"
|
||||
TOR="${TOR_BINARY} --hush --DisableNetwork 1 --ShutdownWaitLength 0 --ORPort 12345 --ExitRelay 0 -f $DATA_DIR/empty_torrc"
|
||||
|
||||
if [ -s "$DATA_DIR"/keys/secret_id_key ] && [ -s "$DATA_DIR"/keys/secret_onion_key ] &&
|
||||
[ -s "$DATA_DIR"/keys/secret_onion_key_ntor ]; then
|
||||
|
Loading…
Reference in New Issue
Block a user