mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-27 22:03:31 +01:00
Makefile: Refactor and tweak test-network
The refactor is simpler, and supports IPv6 mixed networks. The refactor also slightly changes the order of the IPv6 and mixed checks. But it's closer to the original order before 33280. And if all the network lists that need a network type are empty, we don't check if we can run that network type. (And if a network list is empty, we don't say we're going to run an empty list.) Part of 33334.
This commit is contained in:
parent
f231827946
commit
2151822bd0
137
Makefile.am
137
Makefile.am
@ -303,9 +303,8 @@ need-chutney-path:
|
|||||||
test-network:
|
test-network:
|
||||||
@$(MAKE) test-network-mkdir
|
@$(MAKE) test-network-mkdir
|
||||||
@$(MAKE) test-network-clean
|
@$(MAKE) test-network-clean
|
||||||
@$(MAKE) test-network-ipv4-impl \
|
@$(MAKE) test-network-run \
|
||||||
ipv4_flavors="$(TEST_CHUTNEY_FLAVOR_QUICK)"
|
ipv4_flavors="$(TEST_CHUTNEY_FLAVOR_QUICK)" \
|
||||||
@$(MAKE) test-network-ipv6-impl \
|
|
||||||
ipv6_flavors="$(TEST_CHUTNEY_FLAVOR_QUICK_IPV6)"
|
ipv6_flavors="$(TEST_CHUTNEY_FLAVOR_QUICK_IPV6)"
|
||||||
@$(MAKE) test-network-results
|
@$(MAKE) test-network-results
|
||||||
|
|
||||||
@ -315,11 +314,9 @@ test-network:
|
|||||||
test-network-all:
|
test-network-all:
|
||||||
@$(MAKE) test-network-mkdir
|
@$(MAKE) test-network-mkdir
|
||||||
@$(MAKE) test-network-clean
|
@$(MAKE) test-network-clean
|
||||||
@$(MAKE) test-network-ipv4-impl \
|
@$(MAKE) test-network-run \
|
||||||
ipv4_flavors="$(TEST_CHUTNEY_FLAVORS)"
|
ipv4_flavors="$(TEST_CHUTNEY_FLAVORS)" \
|
||||||
@$(MAKE) test-network-mixed-impl \
|
mixed_flavors="$(TEST_CHUTNEY_FLAVORS_MIXED)" \
|
||||||
mixed_flavors="$(TEST_CHUTNEY_FLAVORS_MIXED)"
|
|
||||||
@$(MAKE) test-network-ipv6-impl \
|
|
||||||
ipv6_flavors="$(TEST_CHUTNEY_FLAVORS_IPV6)"
|
ipv6_flavors="$(TEST_CHUTNEY_FLAVORS_IPV6)"
|
||||||
@$(MAKE) test-network-results
|
@$(MAKE) test-network-results
|
||||||
|
|
||||||
@ -329,8 +326,8 @@ test-network-all:
|
|||||||
test-network-ipv4:
|
test-network-ipv4:
|
||||||
@$(MAKE) test-network-mkdir
|
@$(MAKE) test-network-mkdir
|
||||||
@$(MAKE) test-network-clean
|
@$(MAKE) test-network-clean
|
||||||
@$(MAKE) test-network-ipv4-impl ipv4_flavors="$(TEST_CHUTNEY_FLAVORS)"
|
@$(MAKE) test-network-run \
|
||||||
@$(MAKE) test-network-mixed-impl \
|
ipv4_flavors="$(TEST_CHUTNEY_FLAVORS)" \
|
||||||
mixed_flavors="$(TEST_CHUTNEY_FLAVORS_MIXED)"
|
mixed_flavors="$(TEST_CHUTNEY_FLAVORS_MIXED)"
|
||||||
@$(MAKE) test-network-results
|
@$(MAKE) test-network-results
|
||||||
|
|
||||||
@ -340,7 +337,7 @@ test-network-ipv4:
|
|||||||
test-network-ipv6:
|
test-network-ipv6:
|
||||||
@$(MAKE) test-network-mkdir
|
@$(MAKE) test-network-mkdir
|
||||||
@$(MAKE) test-network-clean
|
@$(MAKE) test-network-clean
|
||||||
@$(MAKE) test-network-ipv6-impl \
|
@$(MAKE) test-network-run \
|
||||||
ipv6_flavors="$(TEST_CHUTNEY_FLAVORS_IPV6)"
|
ipv6_flavors="$(TEST_CHUTNEY_FLAVORS_IPV6)"
|
||||||
@$(MAKE) test-network-results
|
@$(MAKE) test-network-results
|
||||||
|
|
||||||
@ -359,69 +356,87 @@ test-network-clean:
|
|||||||
rm -f "$(TEST_NETWORK_ALL_LOG_DIR)"/*.log \
|
rm -f "$(TEST_NETWORK_ALL_LOG_DIR)"/*.log \
|
||||||
"$(TEST_NETWORK_ALL_LOG_DIR)"/*.trs
|
"$(TEST_NETWORK_ALL_LOG_DIR)"/*.trs
|
||||||
|
|
||||||
# Run the IPv4-only test flavors
|
# Run tests using automake's test-driver
|
||||||
# - $(ipv4_flavors) contains the tests to run
|
# When checking if a set of test can be run, log the type of test, and the
|
||||||
.PHONY: test-network-ipv4-impl
|
# list of tests that will be run (or skipped).
|
||||||
.SILENT: test-network-ipv4-impl
|
#
|
||||||
test-network-ipv4-impl:
|
# Run the IPv4 tests in $(ipv4_flavors), unconditionally
|
||||||
@$(MAKE) test-network-run flavors="$(ipv4_flavors)" skip_flavors=""
|
# - tor relays and directory authorities require IPv4.
|
||||||
|
|
||||||
# Run the mixed tests in $(mixed_flavors), if a tor-stable binary is available
|
|
||||||
# - only run mixed tests if we have a tor-stable binary
|
|
||||||
# - $(mixed_flavors) contains the tests to run (or skip)
|
|
||||||
.PHONY: test-network-mixed-impl
|
|
||||||
.SILENT: test-network-mixed-impl
|
|
||||||
test-network-mixed-impl:
|
|
||||||
@flavors=""; \
|
|
||||||
if command -v tor-stable >/dev/null 2>&1; then \
|
|
||||||
echo "tor-stable found, running mixed flavors:" \
|
|
||||||
"$(mixed_flavors)."; \
|
|
||||||
flavors="$$flavors $(mixed_flavors)"; \
|
|
||||||
else \
|
|
||||||
echo "tor-stable not found, skipping mixed flavors:" \
|
|
||||||
"$(mixed_flavors)."; \
|
|
||||||
skip_flavors="$$skip_flavors $(mixed_flavors)"; \
|
|
||||||
fi; \
|
|
||||||
$(MAKE) test-network-run flavors="$$flavors" \
|
|
||||||
skip_flavors="$$skip_flavors"
|
|
||||||
|
|
||||||
# Run the IPv6 tests in $(ipv6_flavors), if IPv6 is available
|
# Run the IPv6 tests in $(ipv6_flavors), if IPv6 is available
|
||||||
# - only run IPv6 tests if we can ping6 or ping -6 ::1 (localhost)
|
# - only run IPv6 tests if we can ping6 or ping -6 ::1 (localhost)
|
||||||
# we try the syntax for BSD ping6, Linux ping6, and Linux ping -6,
|
# we try the syntax for BSD ping6, Linux ping6, and Linux ping -6,
|
||||||
# because they're incompatible
|
# because they're incompatible
|
||||||
# - some IPv6 tests may fail without an IPv6 DNS server
|
# - some IPv6 tests may fail without an IPv6 DNS server
|
||||||
# (see #16971 and #17011)
|
# (see #16971 and #17011)
|
||||||
# - $(ipv6_flavors) contains the tests to run (or skip)
|
# Run the mixed tests in $(mixed_flavors), if a tor-stable binary is available
|
||||||
.PHONY: test-network-ipv6-impl
|
# - only run mixed tests if we have a tor-stable binary
|
||||||
.SILENT: test-network-ipv6-impl
|
# Run the IPv6 mixed tests in $(ipv6_mixed_flavors), if IPv6 and mixed are run
|
||||||
test-network-ipv6-impl:
|
# - see above for details about IPv6 and mixed
|
||||||
@flavors=""; \
|
|
||||||
if ping6 -q -c 1 -o ::1 >/dev/null 2>&1 || \
|
|
||||||
ping6 -q -c 1 -W 1 ::1 >/dev/null 2>&1 || \
|
|
||||||
ping -6 -c 1 -W 1 ::1 >/dev/null 2>&1; then \
|
|
||||||
echo "ping6 ::1 or ping ::1 succeeded, running IPv6" \
|
|
||||||
"flavors: $(ipv6_flavors)."; \
|
|
||||||
flavors="$$flavors $(ipv6_flavors)"; \
|
|
||||||
else \
|
|
||||||
echo "ping6 ::1 and ping ::1 failed, skipping IPv6 flavors:" \
|
|
||||||
"$(ipv6_flavors)."; \
|
|
||||||
skip_flavors="$$skip_flavors $(ipv6_flavors)"; \
|
|
||||||
fi; \
|
|
||||||
$(MAKE) test-network-run flavors="$$flavors" \
|
|
||||||
skip_flavors="$$skip_flavors"
|
|
||||||
|
|
||||||
# Run tests using automake's test-driver
|
|
||||||
# - $(flavors) contains the tests to run
|
|
||||||
# - $(skip_flavors) contains the tests to skip
|
|
||||||
.PHONY: test-network-run
|
.PHONY: test-network-run
|
||||||
.SILENT: test-network-run
|
.SILENT: test-network-run
|
||||||
# We need the word splitting in the "for" lines, so we can't quote
|
# We need the word splitting in the "for" lines, so we can't quote
|
||||||
# $(skip_flavors) or $(flavors)
|
# $(skip_flavors) or $(flavors)
|
||||||
test-network-run: need-chutney-path test-driver $(TESTING_TOR_BINARY) src/tools/tor-gencert
|
test-network-run: need-chutney-path test-driver $(TESTING_TOR_BINARY) src/tools/tor-gencert
|
||||||
@for f in $(skip_flavors); do \
|
@flavors=""; \
|
||||||
|
skip_flavors=""; \
|
||||||
|
if test -n "$(ipv4_flavors)"; then \
|
||||||
|
echo "Running IPv4 flavors: $(ipv4_flavors)."; \
|
||||||
|
flavors="$$flavors $(ipv4_flavors)"; \
|
||||||
|
fi; \
|
||||||
|
test_network_ipv6=false; \
|
||||||
|
if test -n "$(ipv6_flavors)" || \
|
||||||
|
test -n "$(ipv6_mixed_flavors)"; then \
|
||||||
|
if ping6 -q -c 1 -o ::1 >/dev/null 2>&1 || \
|
||||||
|
ping6 -q -c 1 -W 1 ::1 >/dev/null 2>&1 || \
|
||||||
|
ping -6 -c 1 -W 1 ::1 >/dev/null 2>&1; then \
|
||||||
|
test_network_ipv6=true; \
|
||||||
|
fi; \
|
||||||
|
fi; \
|
||||||
|
if test -n "$(ipv6_flavors)"; then \
|
||||||
|
if test "$$test_network_ipv6" = "true"; then \
|
||||||
|
echo "ping6 ::1 or ping ::1 succeeded, running IPv6" \
|
||||||
|
"flavors: $(ipv6_flavors)."; \
|
||||||
|
flavors="$$flavors $(ipv6_flavors)"; \
|
||||||
|
else \
|
||||||
|
echo "ping6 ::1 and ping ::1 failed, skipping IPv6" \
|
||||||
|
"flavors: $(ipv6_flavors)."; \
|
||||||
|
skip_flavors="$$skip_flavors $(ipv6_flavors)"; \
|
||||||
|
fi; \
|
||||||
|
fi; \
|
||||||
|
test_network_mixed=false; \
|
||||||
|
if test -n "$(mixed_flavors)" || \
|
||||||
|
test -n "$(ipv6_mixed_flavors)"; then \
|
||||||
|
if command -v tor-stable >/dev/null 2>&1; then \
|
||||||
|
test_network_mixed=true; \
|
||||||
|
fi; \
|
||||||
|
fi; \
|
||||||
|
if test -n "$(mixed_flavors)"; then \
|
||||||
|
if test "$$test_network_mixed" = "true"; then \
|
||||||
|
echo "tor-stable found, running mixed flavors:" \
|
||||||
|
"$(mixed_flavors)."; \
|
||||||
|
flavors="$$flavors $(mixed_flavors)"; \
|
||||||
|
else \
|
||||||
|
echo "tor-stable not found, skipping mixed flavors:" \
|
||||||
|
"$(mixed_flavors)."; \
|
||||||
|
skip_flavors="$$skip_flavors $(mixed_flavors)"; \
|
||||||
|
fi; \
|
||||||
|
fi; \
|
||||||
|
if test -n "$(ipv6_mixed_flavors)"; then \
|
||||||
|
if test "$$test_network_ipv6" = "true" && \
|
||||||
|
test "$$test_network_mixed" = "true"; then \
|
||||||
|
echo "Running IPv6 mixed flavors:" \
|
||||||
|
"$(ipv6_mixed_flavors)."; \
|
||||||
|
flavors="$$flavors $(ipv6_mixed_flavors)"; \
|
||||||
|
else \
|
||||||
|
echo "Skipping IPv6 mixed flavors:" \
|
||||||
|
"$(ipv6_mixed_flavors)."; \
|
||||||
|
skip_flavors="$$skip_flavors $(ipv6_mixed_flavors)"; \
|
||||||
|
fi; \
|
||||||
|
fi; \
|
||||||
|
for f in $$skip_flavors; do \
|
||||||
echo "SKIP: $$f"; \
|
echo "SKIP: $$f"; \
|
||||||
done; \
|
done; \
|
||||||
for f in $(flavors); do \
|
for f in $$flavors; do \
|
||||||
$(SHELL) "$(top_srcdir)/test-driver" --test-name "$$f" \
|
$(SHELL) "$(top_srcdir)/test-driver" --test-name "$$f" \
|
||||||
--log-file "$(TEST_NETWORK_ALL_LOG_DIR)/$$f.log" \
|
--log-file "$(TEST_NETWORK_ALL_LOG_DIR)/$$f.log" \
|
||||||
--trs-file "$(TEST_NETWORK_ALL_LOG_DIR)/$$f.trs" \
|
--trs-file "$(TEST_NETWORK_ALL_LOG_DIR)/$$f.trs" \
|
||||||
|
Loading…
Reference in New Issue
Block a user