diff options
Diffstat (limited to 'src/test/test-network.sh')
-rwxr-xr-x | src/test/test-network.sh | 53 |
1 files changed, 47 insertions, 6 deletions
diff --git a/src/test/test-network.sh b/src/test/test-network.sh index be57cafb7f..05080e0c52 100755 --- a/src/test/test-network.sh +++ b/src/test/test-network.sh @@ -1,10 +1,11 @@ #! /bin/sh ECHO_N="/bin/echo -n" +use_coverage_binary=false -until [ -z $1 ] +until [ -z "$1" ] do - case $1 in + case "$1" in --chutney-path) export CHUTNEY_PATH="$2" shift @@ -13,7 +14,7 @@ do export TOR_DIR="$2" shift ;; - --flavo?r|--network-flavo?r) + --flavor|--flavour|--network-flavor|--network-flavour) export NETWORK_FLAVOUR="$2" shift ;; @@ -21,6 +22,30 @@ do export BOOTSTRAP_TIME="$2" shift ;; + # Environmental variables used by chutney verify performance tests + # Send this many bytes per client connection (10 KBytes) + --data|--data-bytes|--data-byte|--bytes|--byte) + export CHUTNEY_DATA_BYTES="$2" + shift + ;; + # Make this many connections per client (1) + # Note: If you create 7 or more connections to a hidden service from + # a single client, you'll likely get a verification failure due to + # https://trac.torproject.org/projects/tor/ticket/15937 + --connections|--connection|--connection-count|--count) + export CHUTNEY_CONNECTIONS="$2" + shift + ;; + # Make each client connect to each HS (0) + # 0 means a single client connects to each HS + # 1 means every client connects to every HS + --hs-multi-client|--hs-multi-clients|--hs-client|--hs-clients) + export CHUTNEY_HS_MULTI_CLIENT="$2" + shift + ;; + --coverage) + use_coverage_binary=true + ;; *) echo "Sorry, I don't know what to do with '$1'." exit 2 @@ -30,22 +55,38 @@ do done TOR_DIR="${TOR_DIR:-$PWD}" -NETWORK_FLAVOUR=${NETWORK_FLAVOUR:-basic} +NETWORK_FLAVOUR=${NETWORK_FLAVOUR:-"bridges+hs"} CHUTNEY_NETWORK=networks/$NETWORK_FLAVOUR myname=$(basename $0) +[ -n "$CHUTNEY_PATH" ] || { + echo "$myname: \$CHUTNEY_PATH not set, trying $TOR_DIR/../chutney" + CHUTNEY_PATH="$TOR_DIR/../chutney" +} + [ -d "$CHUTNEY_PATH" ] && [ -x "$CHUTNEY_PATH/chutney" ] || { echo "$myname: missing 'chutney' in CHUTNEY_PATH ($CHUTNEY_PATH)" + echo "$myname: Get chutney: git clone https://git.torproject.org/\ +chutney.git" + echo "$myname: Set \$CHUTNEY_PATH to a non-standard location: export CHUTNEY_PATH=\`pwd\`/chutney" exit 1 } + cd "$CHUTNEY_PATH" # For picking up the right tor binaries. -PATH="$TOR_DIR/src/or:$TOR_DIR/src/tools:$PATH" +tor_name=tor +tor_gencert_name=tor-gencert +if test "$use_coverage_binary" = true; then + tor_name=tor-cov +fi +export CHUTNEY_TOR="${TOR_DIR}/src/or/${tor_name}" +export CHUTNEY_TOR_GENCERT="${TOR_DIR}/src/tools/${tor_gencert_name}" + ./tools/bootstrap-network.sh $NETWORK_FLAVOUR || exit 2 # Sleep some, waiting for the network to bootstrap. # TODO: Add chutney command 'bootstrap-status' and use that instead. -BOOTSTRAP_TIME=${BOOTSTRAP_TIME:-25} +BOOTSTRAP_TIME=${BOOTSTRAP_TIME:-35} $ECHO_N "$myname: sleeping for $BOOTSTRAP_TIME seconds" n=$BOOTSTRAP_TIME; while [ $n -gt 0 ]; do sleep 1; n=$(expr $n - 1); $ECHO_N . |