#!/usr/bin/env bash

set -euo pipefail

ROOT=$(cd $(dirname ${BASH_SOURCE[0]})/.. && pwd)
TEST_ROOT=${ROOT}/test
cd ${ROOT}

project=${PROJECT:-""}
if [[ -z $project ]] ; then
    echo "PROJECT must be set" >&2
    exit 1
fi

source ${ROOT}/hack/gcloud-auth.sh
${ROOT}/hack/deploy.sh

region=${REGION:-"us-west-2"}
dbaas_host=${region}.${project}.shared.aws.tidbcloud.com

elapseTime=0
threshold=600
while true; do
    sleep 5
    elapseTime=$(( elapseTime+5 ))

    if [[ ${elapseTime} -ge ${threshold} ]]
    then
        echo "waiting for dbaas service healthy timeout" >&2
        exit 1
    fi

    if curl https://${dbaas_host}/healthz 2>/dev/null
    then
        echo "healthz check ${dbaas_host} success"
        break
    else
        echo "healthz check ${dbaas_host} failed" >&2
    fi
done

echo "> Compile test suites"
cd ${TEST_ROOT}
make bin/ginkgo
make e2e.test
make stability.test
