#!/bin/bash

scripts_path=./$(dirname $0)
eval $($scripts_path/get_paths.sh)

DIEGO_RELEASE_DIR=${DIEGO_RELEASE_DIR:-$(cd $scripts_path/.. && pwd)}

set -e
${scripts_path}/check-metrics-documentation
set +e

SKIP_PACKAGES="./inigo"
SKIP_PACKAGES="$SKIP_PACKAGES,./auction/simulation"
SKIP_PACKAGES="$SKIP_PACKAGES,./auctioneer/cmd/auctioneer"
SKIP_PACKAGES="$SKIP_PACKAGES,./bbs/cmd/bbs"
SKIP_PACKAGES="$SKIP_PACKAGES,./bbs/db/etcd"
SKIP_PACKAGES="$SKIP_PACKAGES,./bbs/db/migrations"
SKIP_PACKAGES="$SKIP_PACKAGES,./bbs/db/sqldb"
SKIP_PACKAGES="$SKIP_PACKAGES,./benchmarkbbs"
SKIP_PACKAGES="$SKIP_PACKAGES,./cf-tcp-router"
SKIP_PACKAGES="$SKIP_PACKAGES,./cf-test-helpers"
SKIP_PACKAGES="$SKIP_PACKAGES,./clock"
SKIP_PACKAGES="$SKIP_PACKAGES,./converger/cmd/converger"
SKIP_PACKAGES="$SKIP_PACKAGES,./diego-upgrade-stability-tests"
SKIP_PACKAGES="$SKIP_PACKAGES,./diegocanaryapp"
SKIP_PACKAGES="$SKIP_PACKAGES,./dropsonde"
SKIP_PACKAGES="$SKIP_PACKAGES,./fezzik"
SKIP_PACKAGES="$SKIP_PACKAGES,./garden"
SKIP_PACKAGES="$SKIP_PACKAGES,./garden-linux"
SKIP_PACKAGES="$SKIP_PACKAGES,./go-loggregator"
SKIP_PACKAGES="$SKIP_PACKAGES,./gorouter"
SKIP_PACKAGES="$SKIP_PACKAGES,./guardian"
SKIP_PACKAGES="$SKIP_PACKAGES,./locket/cmd/locket"
SKIP_PACKAGES="$SKIP_PACKAGES,./locket/db"
SKIP_PACKAGES="$SKIP_PACKAGES,./rep/cmd/rep"
SKIP_PACKAGES="$SKIP_PACKAGES,./rep/generator/internal"
SKIP_PACKAGES="$SKIP_PACKAGES,./route-emitter/cmd/route-emitter"
SKIP_PACKAGES="$SKIP_PACKAGES,./routing-api"
SKIP_PACKAGES="$SKIP_PACKAGES,./trace-logger"
SKIP_PACKAGES="$SKIP_PACKAGES,./uaa-go-client"
SKIP_PACKAGES="$SKIP_PACKAGES,./veritas"
SKIP_PACKAGES="$SKIP_PACKAGES,./vizzini"
SKIP_PACKAGES="$SKIP_PACKAGES,./systemcerts"
SKIP_PACKAGES="$SKIP_PACKAGES,./credhub-cli"
SKIP_PACKAGES="$SKIP_PACKAGES,./cfdot/integration"
ERROR_CODE=0

if [ -z "${RUN_SQL_TESTS}" ]; then
  SKIP_PACKAGES="$SKIP_PACKAGES,./bbs/db/sqldb"
fi

if [ ! -z "$PACKAGE" ]; then
  ginkgo -r -p "$@" "./src/${PACKAGE}"
  exit $?
else
  pushd $DIEGO_RELEASE_DIR/src/github.com/cloudfoundry-incubator/ > /dev/null
    ginkgo -r -keepGoing -p -trace -randomizeAllSpecs -progress --race \
      -skipPackage=${SKIP_PACKAGES} "$@"
    let ERROR_CODE+=$?
  popd > /dev/null

  pushd $DIEGO_RELEASE_DIR/src/code.cloudfoundry.org/ > /dev/null
    ginkgo -r -keepGoing -p -trace -randomizeAllSpecs -progress --race \
      -skipPackage=${SKIP_PACKAGES} "$@"
    let ERROR_CODE+=$?
  popd > /dev/null
  exit $ERROR_CODE
fi
