github.com/philwinder/goofys@v0.24.0/test/run-tests.sh (about)

     1  #!/bin/bash
     2  
     3  #set -o xtrace
     4  set -o errexit
     5  set -o nounset
     6  
     7  : ${CLOUD:="s3"}
     8  : ${PROXY_BIN:=""}
     9  : ${PROXY_PID:=""}
    10  : ${TIMEOUT:="10m"}
    11  : ${MOUNT:="false"}
    12  
    13  export MOUNT
    14  
    15  function cleanup {
    16      if [ "$PROXY_PID" != "" ]; then
    17          kill $PROXY_PID
    18      fi
    19  }
    20  
    21  T=
    22  if [ $# == 1 ]; then
    23      T="-check.f $1"
    24  elif [ "$MOUNT" != "false" ]; then
    25      T="-check.f GoofysTest.TestMount$"
    26  fi
    27  
    28  trap cleanup EXIT
    29  
    30  if [ $CLOUD == "s3" ]; then
    31      mkdir -p /tmp/s3proxy
    32  
    33      AWS_PROFILE=${AWS:-}
    34      if [ "$AWS_PROFILE" == "" ]; then
    35  	: ${LOG_LEVEL:="warn"}
    36  	export LOG_LEVEL
    37  	if [ "$MOUNT" != "false" ]; then
    38  	    PROXY_BIN="java -jar s3proxy.jar --properties test/s3proxy-fs.properties"
    39  	else
    40  	    PROXY_BIN="java -Xmx4g -jar s3proxy.jar --properties test/s3proxy.properties"
    41  	fi
    42      else
    43  	export AWS
    44      fi
    45  elif [ $CLOUD == "azblob" ]; then
    46      : ${AZURE_STORAGE_ACCOUNT:="devstoreaccount1"}
    47      : ${AZURE_STORAGE_KEY:="Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw=="}
    48      : ${ENDPOINT:="http://127.0.0.1:8080/${AZURE_STORAGE_ACCOUNT}/"}
    49  
    50      if [ ${AZURE_STORAGE_ACCOUNT} == "devstoreaccount1" ]; then
    51  	if ! which azurite >/dev/null; then
    52  	    echo "Azurite missing, run:" >&1
    53  	    echo "npm install -g azurite" >&1
    54  	    exit 1
    55  	fi
    56  
    57  	rm -Rf /tmp/azblob
    58  	mkdir -p /tmp/azblob
    59  	PROXY_BIN="azurite-blob -l /tmp/azblob --blobPort 8080 -s"
    60  	#PROXY_BIN="azurite-blob -l /tmp/azblob --blobPort 8080 -d /dev/stdout"
    61      fi
    62  
    63      export AZURE_STORAGE_ACCOUNT
    64      export AZURE_STORAGE_KEY
    65      export ENDPOINT
    66  elif [ $CLOUD == "adlv1" ]; then
    67      TIMEOUT=40m
    68  fi
    69  
    70  if [ "$PROXY_BIN" != "" ]; then
    71      stdbuf -oL -eL $PROXY_BIN &
    72      PROXY_PID=$!
    73  elif [ "$TIMEOUT" == "10m" ]; then
    74      # higher timeout for testing to real cloud
    75      TIMEOUT=45m
    76  fi
    77  
    78  export CLOUD
    79  
    80  # run test in `go test` local mode so streaming output works
    81  (cd internal; go test -v -timeout $TIMEOUT -check.vv $T)
    82  exit $?