diff options
author | teor (Tim Wilson-Brown) <teor2345@gmail.com> | 2015-09-08 22:27:59 +1000 |
---|---|---|
committer | teor (Tim Wilson-Brown) <teor2345@gmail.com> | 2015-09-08 22:27:59 +1000 |
commit | 5feae32f46b3f0cc3da93ece80163c1a994c83b9 (patch) | |
tree | 73302742fa8674b9f89c8951099470a977a499a7 /Makefile.am | |
parent | 6b118e1e1e17888beb2d61525c326ddd6bfd7933 (diff) | |
download | tor-5feae32f46b3f0cc3da93ece80163c1a994c83b9.tar.gz tor-5feae32f46b3f0cc3da93ece80163c1a994c83b9.zip |
Add "make test-network-all" to verify multiple test networks
make test-network-all is Makefile target which verifies a series
of test networks generated using test-network.sh and chutney.
It runs IPv6 and mixed version test networks if the prerequisites are
available.
Each test network reports PASS, FAIL, or SKIP.
Closes ticket 16953. Patch by "teor".
Also adds "--hs-multi-client 1" option to TEST_NETWORK_FLAGS.
This resolves #17012.
Larger networks, such as bridges+hs, may fail until #16952 is merged.
Diffstat (limited to 'Makefile.am')
-rw-r--r-- | Makefile.am | 38 |
1 files changed, 36 insertions, 2 deletions
diff --git a/Makefile.am b/Makefile.am index b5e71aad1e..68695ede0a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -36,13 +36,16 @@ EXTRA_DIST+= \ if COVERAGE_ENABLED TEST_CFLAGS=-fno-inline -fprofile-arcs -ftest-coverage TEST_CPPFLAGS=-DTOR_UNIT_TESTS -DTOR_COVERAGE -TEST_NETWORK_FLAGS="--coverage" +TEST_NETWORK_FLAGS=--coverage --hs-multi-client 1 else TEST_CFLAGS= TEST_CPPFLAGS=-DTOR_UNIT_TESTS -TEST_NETWORK_FLAGS= +TEST_NETWORK_FLAGS=--hs-multi-client 1 endif +TEST_NETWORK_ALL_LOG_DIR=$(top_builddir)/test_network_log +TEST_NETWORK_ALL_DRIVER_FLAGS=--color-tests yes + #install-data-local: # $(INSTALL) -m 755 -d $(LOCALSTATEDIR)/lib/tor @@ -88,6 +91,36 @@ need-chutney-path: test-network: need-chutney-path all $(top_srcdir)/src/test/test-network.sh $(TEST_NETWORK_FLAGS) +# Run all available tests using automake's test-driver +# only run IPv6 tests if we can ping6 ::1 (localhost) +# some IPv6 tests will fail without an IPv6 DNS server (see #16971 and #17011) +# only run mixed tests if we have a tor-stable binary +# see #17015 for autodetection of different tor versions +test-network-all: need-chutney-path all test-driver + mkdir -p $(TEST_NETWORK_ALL_LOG_DIR) + @flavors="$(TEST_CHUTNEY_FLAVORS)"; \ + if ping6 -q -o ::1 >/dev/null 2>&1; then \ + echo "ping6 ::1 succeeded, running IPv6 flavors: $(TEST_CHUTNEY_FLAVORS_IPV6)."; \ + flavors="$$flavors $(TEST_CHUTNEY_FLAVORS_IPV6)"; \ + else \ + echo "ping6 ::1 failed, skipping IPv6 flavors: $(TEST_CHUTNEY_FLAVORS_IPV6)."; \ + skip_flavors="$$skip_flavors $(TEST_CHUTNEY_FLAVORS_IPV6)"; \ + fi; \ + if command -v tor-stable >/dev/null 2>&1; then \ + echo "tor-stable found, running mixed flavors: $(TEST_CHUTNEY_FLAVORS_MIXED)."; \ + flavors="$$flavors $(TEST_CHUTNEY_FLAVORS_MIXED)"; \ + else \ + echo "tor-stable not found, skipping mixed flavors: $(TEST_CHUTNEY_FLAVORS_MIXED)."; \ + skip_flavors="$$skip_flavors $(TEST_CHUTNEY_FLAVORS_MIXED)"; \ + fi; \ + for f in $$skip_flavors; do \ + echo "SKIP: $$f"; \ + done; \ + for f in $$flavors; do \ + ./test-driver --test-name $$f --log-file $(TEST_NETWORK_ALL_LOG_DIR)/$$f.log --trs-file $(TEST_NETWORK_ALL_LOG_DIR)/$$f.trs $(TEST_NETWORK_ALL_DRIVER_FLAGS) $(top_srcdir)/src/test/test-network.sh --flavor $$f $(TEST_NETWORK_FLAGS); \ + done + @echo "Log and result files are available in $(TEST_NETWORK_ALL_LOG_DIR)." + need-stem-path: @if test ! -d "$$STEM_SOURCE_DIR"; then \ echo '$$STEM_SOURCE_DIR was not set.'; echo; \ @@ -173,3 +206,4 @@ mostlyclean-local: rm -f $(top_builddir)/src/*/*.gc{da,no} $(top_builddir)/src/*/*/*.gc{da,no} rm -rf $(HTML_COVER_DIR) rm -rf $(top_builddir)/doc/doxygen + rm -rf $(TEST_NETWORK_ALL_LOG_DIR) |