diff --git a/Makefile.am b/Makefile.am index 784ff48dcd..5b4d59c514 100644 --- a/Makefile.am +++ b/Makefile.am @@ -36,9 +36,11 @@ EXTRA_DIST+= \ if COVERAGE_ENABLED TEST_CFLAGS=-fno-inline -fprofile-arcs -ftest-coverage TEST_CPPFLAGS=-DTOR_UNIT_TESTS -DTOR_COVERAGE +TEST_NETWORK_FLAGS="--coverage" else TEST_CFLAGS= TEST_CPPFLAGS=-DTOR_UNIT_TESTS +TEST_NETWORK_FLAGS= endif #install-data-local: @@ -79,7 +81,7 @@ need-chutney-path: # Note that test-network requires a copy of Chutney in $CHUTNEY_PATH. # Chutney can be cloned from https://git.torproject.org/chutney.git . test-network: need-chutney-path all - $(top_srcdir)/src/test/test-network.sh + $(top_srcdir)/src/test/test-network.sh $(TEST_NETWORK_FLAGS) need-stem-path: @if test ! -d "$$STEM_SOURCE_DIR"; then \ diff --git a/changes/chutney-coverage b/changes/chutney-coverage new file mode 100644 index 0000000000..53983c87ff --- /dev/null +++ b/changes/chutney-coverage @@ -0,0 +1,3 @@ + o Testing: + - When building Tor with testing coverage enabled, run Chutney tests + (if any) using the 'tor-cov' coverage binary. diff --git a/src/test/test-network.sh b/src/test/test-network.sh index 49bf03c0d3..cc74c0f823 100755 --- a/src/test/test-network.sh +++ b/src/test/test-network.sh @@ -1,6 +1,7 @@ #! /bin/sh ECHO_N="/bin/echo -n" +use_coverage_binary=false until [ -z $1 ] do @@ -41,7 +42,10 @@ do --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 @@ -59,9 +63,17 @@ myname=$(basename $0) echo "$myname: missing 'chutney' in CHUTNEY_PATH ($CHUTNEY_PATH)" 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.