Bläddra i källkod

Merge branch 'maint-0.3.0'

Nick Mathewson 7 år sedan
förälder
incheckning
8e3d929df7
3 ändrade filer med 21 tillägg och 6 borttagningar
  1. 0 3
      Makefile.am
  2. 5 0
      changes/bug21581
  3. 16 3
      src/test/test-network.sh

+ 0 - 3
Makefile.am

@@ -137,9 +137,6 @@ test-network-all: need-chutney-path test-driver $(TESTING_TOR_BINARY) src/tools/
 	for f in $$flavors; do \
 		$(SHELL) $(top_srcdir)/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); \
 		$(top_srcdir)/src/test/test-network.sh $(TEST_NETWORK_WARNING_FLAGS); \
-		if test $$? -eq 2 ; then \
-			echo "Please update your chutney using 'git pull' to see tor warnings here."; \
-		fi; \
 	done; \
 	echo "Log and result files are available in $(TEST_NETWORK_ALL_LOG_DIR)."; \
 	! grep -q FAIL test_network_log/*.trs

+ 5 - 0
changes/bug21581

@@ -0,0 +1,5 @@
+  o Minor bugfixes (testing):
+    - 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.

+ 16 - 3
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