diff options
author | teor <teor2345@gmail.com> | 2017-03-01 11:21:07 +1100 |
---|---|---|
committer | teor <teor2345@gmail.com> | 2017-03-01 11:40:54 +1100 |
commit | 004ec8dc58078e6f4ab90f603ce3a9df3dd9e065 (patch) | |
tree | 532b6d4e494d87f88255f863243e3e810f4b1044 /src/test/test-network.sh | |
parent | 58908b6540d7296109b60e187ff788b20e79aba5 (diff) | |
download | tor-004ec8dc58078e6f4ab90f603ce3a9df3dd9e065.tar.gz tor-004ec8dc58078e6f4ab90f603ce3a9df3dd9e065.zip |
Restore support for test-network.sh on BSD and other systems without bash
(But use bash if it's available.)
This is a workaround until we remove bash-specific code in 19699.
Fixes bug 21581; bugfix on 21562, not in any released version of tor.
Diffstat (limited to 'src/test/test-network.sh')
-rwxr-xr-x | src/test/test-network.sh | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/src/test/test-network.sh b/src/test/test-network.sh index cb10f7232f..edd2897e5d 100755 --- a/src/test/test-network.sh +++ b/src/test/test-network.sh @@ -1,9 +1,19 @@ -#! /bin/bash +#! /bin/sh + +# use bash if it is available, as this script doesn't work well in non-bash sh +# this will be fixed in #19699 +# there is no simple, portable way of checking the name of the shell, so we +# exec bash even when sh is bash +if [ -x /bin/bash -a "$USING_BASH" != true ]; then + # only do this once + export USING_BASH=true + exec /bin/bash "$0" "$@" +fi # Please do not modify this script, it has been moved to chutney/tools -export ECHO=${ECHO:-"echo"} -export ECHO_N=${ECHO_N:-"/bin/echo -n"} +export ECHO="${ECHO:-echo}" +export ECHO_N="${ECHO_N:-/bin/echo -n}" # Output is prefixed with the name of the script myname=$(basename $0) @@ -21,6 +31,8 @@ if [ "$TEST_NETWORK_RECURSING" != true ]; then # can be removed, because this script will find chutney, then pass all # arguments to chutney's test-network.sh export TEST_NETWORK_RECURSING=true + # passing arguments to a sourced script only works in bash + # this will be fixed in #19699 . "$0" --dry-run "$@" # Call the chutney version of this script, if it exists, and we can find it @@ -179,6 +191,7 @@ export CHUTNEY_NETWORK=networks/$NETWORK_FLAVOUR if [ "$NETWORK_DRY_RUN" = true ]; then # we can't exit here, it breaks argument processing # this only works in bash: return semantics are shell-specific + # this will be fixed in #19699 return 2>/dev/null || exit fi |