github.com/unigraph-dev/dgraph@v1.1.1-0.20200923154953-8b52b426f765/contrib/embargo/run.sh (about)

     1  #!/bin/bash
     2  # Builds ./embargo and runs the embargo tests.
     3  #
     4  # Usage:
     5  # Run the test 32 times (about 8 hours):
     6  #     ./run.sh
     7  # Run the test once:
     8  #     ./run.sh 1
     9  
    10  function cleanup_embargo {
    11      embargo destroy || true
    12      docker container prune -f
    13      if docker network ls | grep -q 'embargo_net'; then
    14          docker network ls |
    15              awk '/embargo_net/ { print $1 }' |
    16              xargs docker network rm
    17      fi
    18  }
    19  
    20  
    21  set -x -o pipefail
    22  
    23  times=${1:-32}
    24  
    25  go build -v .
    26  
    27  cleanup_embargo
    28  # Each run takes about 15 minutes, so running 32 times will take about 8 hours.
    29  for i in $(seq 1 $times)
    30  do
    31      echo "===> Running Embargo #$i"
    32      if ! ./embargo 2>&1 | tee embargo$i.log; then
    33          echo "===> Embargo test failed"
    34          docker logs zero1 2>&1 | tee zero1.log
    35          docker logs zero2 2>&1 | tee zero2.log
    36          docker logs zero3 2>&1 | tee zero3.log
    37          docker logs dg1 2>&1 | tee dg1.log
    38          docker logs dg2 2>&1 | tee dg2.log
    39          docker logs dg3 2>&1 | tee dg3.log
    40  
    41          cleanup_embargo
    42          exit 1
    43      fi
    44  done
    45  
    46  echo "Embargo log summary:"
    47  grep '===>' embargo*.log
    48  
    49  cleanup_embargo