[tor-commits] [chutney/master] tools: Add a diagnostics mode to test-network.sh

teor at torproject.org teor at torproject.org
Wed Feb 19 00:22:29 UTC 2020


commit 37c88afccec4817e99ab285ae729b2dcf5c3ae11
Author: teor <teor at torproject.org>
Date:   Mon Feb 17 17:11:45 2020 +1000

    tools: Add a diagnostics mode to test-network.sh
    
    Like --warnings and --only-warnings, tools/test-network.sh now supports
    --diagnostics and --only-diagnostics, which run tools/diagnostics.sh.
    
    Part of 32792.
---
 README                     |  2 ++
 tools/test-network-impl.sh |  7 +++++++
 tools/test-network.sh      | 31 +++++++++++++++++++++++++++++--
 3 files changed, 38 insertions(+), 2 deletions(-)

diff --git a/README b/README
index 0475b2f..9712232 100644
--- a/README
+++ b/README
@@ -79,6 +79,8 @@ Warning Options:
                      CHUTNEY_WARNINGS_SUMMARY=false
   --no-warnings      CHUTNEY_WARNINGS_SKIP=true
   --only-warnings    CHUTNEY_WARNINGS_ONLY=true
+  --diagnostics      CHUTNEY_DIAGNOSTICS=true
+  --only-diagnostics CHUTNEY_DIAGNOSTICS_ONLY=true
 
 Expert Options:
   --debug            CHUTNEY_DEBUG=true
diff --git a/tools/test-network-impl.sh b/tools/test-network-impl.sh
index 73b942b..8a8413d 100755
--- a/tools/test-network-impl.sh
+++ b/tools/test-network-impl.sh
@@ -5,6 +5,7 @@ if ! "$CHUTNEY_PATH/tools/bootstrap-network.sh" "$NETWORK_FLAVOUR"; then
 	$ECHO "SKIP: $NETWORK_FLAVOR not supported."
 	exit 77
     fi
+    "$DIAGNOSTICS"
     CHUTNEY_WARNINGS_IGNORE_EXPECTED=false CHUTNEY_WARNINGS_SUMMARY=false \
         "$WARNING_COMMAND"
     "$WARNINGS"
@@ -35,6 +36,7 @@ if [ "$CHUTNEY_START_TIME" -ge 0 ]; then
 else
     $ECHO "Chutney network launched and running. To stop the network, use:"
     $ECHO "$CHUTNEY stop $CHUTNEY_NETWORK"
+    "$DIAGNOSTICS"
     "$WARNINGS"
     exit 0
 fi
@@ -47,6 +49,7 @@ if [ "$CHUTNEY_BOOTSTRAP_TIME" -ge 0 ]; then
     while [ "$n_rounds" -lt "$CHUTNEY_ROUNDS" ]; do
         n_rounds=$((n_rounds+1))
         if ! "$CHUTNEY" verify "$CHUTNEY_NETWORK"; then
+            "$DIAGNOSTICS"
             CHUTNEY_WARNINGS_IGNORE_EXPECTED=false \
                 CHUTNEY_WARNINGS_SUMMARY=false \
                 "$WARNING_COMMAND"
@@ -59,6 +62,7 @@ if [ "$CHUTNEY_BOOTSTRAP_TIME" -ge 0 ]; then
 else
     $ECHO "Chutney network ready and running. To stop the network, use:"
     $ECHO "$CHUTNEY stop $CHUTNEY_NETWORK"
+    "$DIAGNOSTICS"
     "$WARNINGS"
     exit 0
 fi
@@ -71,6 +75,7 @@ if [ "$CHUTNEY_STOP_TIME" -ge 0 ]; then
     # work around a bug/feature in make -j2 (or more)
     # where make hangs if any child processes are still alive
     if ! "$CHUTNEY" stop "$CHUTNEY_NETWORK"; then
+        "$DIAGNOSTICS"
         CHUTNEY_WARNINGS_IGNORE_EXPECTED=false CHUTNEY_WARNINGS_SUMMARY=false \
             "$WARNING_COMMAND"
         "$WARNINGS"
@@ -82,9 +87,11 @@ if [ "$CHUTNEY_STOP_TIME" -ge 0 ]; then
 else
     $ECHO "Chutney network verified and running. To stop the network, use:"
     $ECHO "$CHUTNEY stop $CHUTNEY_NETWORK"
+    "$DIAGNOSTICS"
     "$WARNINGS"
     exit 0
 fi
 
+"$DIAGNOSTICS"
 "$WARNINGS"
 exit 0
diff --git a/tools/test-network.sh b/tools/test-network.sh
index 213dab4..d2507b4 100755
--- a/tools/test-network.sh
+++ b/tools/test-network.sh
@@ -155,6 +155,14 @@ do
         --no-warnings)
             export CHUTNEY_WARNINGS_SKIP=true
             ;;
+        # output diagnostics after chutney runs
+        --diagnostics)
+            export CHUTNEY_DIAGNOSTICS=true
+            ;;
+        # this doesn't run chutney, and only logs diagnostics
+        --only-diagnostics)
+            export CHUTNEY_DIAGNOSTICS_ONLY=true
+            ;;
         # Expert options
         # Code Coverage Binary
         --coverage)
@@ -192,9 +200,18 @@ do
     shift
 done
 
+if [ "$CHUTNEY_WARNINGS_ONLY" = true ] || \
+   [ "$CHUTNEY_DIAGNOSTICS_ONLY" = true ]; then
+    NETWORK_DRY_RUN=true
+fi
+
+if [ "$CHUTNEY_DIAGNOSTICS_ONLY" = true ]; then
+    export CHUTNEY_DIAGNOSTICS=true
+fi
+
 # If the DNS server doesn't work, tor exits may reject all exit traffic, and
 # chutney may fail
-if [ "$CHUTNEY_WARNINGS_ONLY" != true ]; then
+if [ "$NETWORK_DRY_RUN" != true ]; then
     $ECHO "$myname: using CHUTNEY_DNS_CONF '$CHUTNEY_DNS_CONF'"
 fi
 
@@ -332,6 +349,13 @@ $ECHO "$myname: Using \$CHUTNEY_TOR: '$CHUTNEY_TOR' and \$CHUTNEY_TOR_GENCERT: '
 export NETWORK_FLAVOUR=${NETWORK_FLAVOUR:-"bridges+hs-v23"}
 export CHUTNEY_NETWORK="$CHUTNEY_PATH/networks/$NETWORK_FLAVOUR"
 
+export DIAGNOSTIC_COMMAND="$CHUTNEY_PATH/tools/diagnostics.sh"
+if [ "$CHUTNEY_DIAGNOSTICS" = true ]; then
+    export DIAGNOSTICS="$DIAGNOSTIC_COMMAND"
+else
+    export DIAGNOSTICS=true
+fi
+
 export WARNING_COMMAND="$CHUTNEY_PATH/tools/warnings.sh"
 if [ "$CHUTNEY_WARNINGS_SKIP" = true ]; then
     export WARNINGS=true
@@ -340,7 +364,10 @@ else
 fi
 
 # And finish up if we're doing a dry run
-if [ "$NETWORK_DRY_RUN" = true ] || [ "$CHUTNEY_WARNINGS_ONLY" = true ]; then
+if [ "$NETWORK_DRY_RUN" = true ]; then
+    if [ "$CHUTNEY_DIAGNOSTICS_ONLY" = true ]; then
+        "$DIAGNOSTICS"
+    fi
     if [ "$CHUTNEY_WARNINGS_ONLY" = true ]; then
         "$WARNINGS"
     fi





More information about the tor-commits mailing list