#!/bin/bash
#-------------------------------------------------------------------------------
#   System Test Coordinator
#-------------------------------------------------------------------------------

. $ONOS_ROOT/tools/build/envDefaults

VER=${STC_VERSION:-2.2}
JAR=~/.m2/repository/org/onosproject/onos-stc/$VER/onos-stc-$VER.jar
SCENARIOS=$ONOS_ROOT/tools/test/scenarios

# Download the STC binary if needed
if [ ! -f $JAR ]; then
    printf "Downloading STC binary..."
    mkdir -p /tmp/stc
    aux=/tmp/stc/stc-$$.log
    mvn dependency:get -Dartifact=org.onosproject:onos-stc:$VER -Dtransitive=false -B >$aux || fgrep '[ERROR]' $aux
    rm -f $aux
    [ -f $JAR ] && printf "Done.\n"
fi

DEBUG_OPTS="-agentlib:jdwp=transport=dt_socket,address=5005,server=y,suspend=y"

scenario=${1:-smoke}

[ ! -f $scenario ] && scenario=$SCENARIOS/$scenario
[ ! -f $scenario ] && scenario=$scenario.xml
[ ! -f $scenario ] && echo "Scenario $scenario file not found" && exit 1

# Remove the test name from the list of parameters, if one is specified
[ $# -ge 1 ] && shift

# If stcColor is not set, we will enable color if this is an interactive session
[ -t 1 ] && interactive=true || interactive=false
[ -t 1 ] && notInteractive=false || notInteractive=true

# Run stc
[ -z "$stcDebug" ] && DEBUG_OPTS=""
stcTitle=${stcTitle:-} stcColor=${stcColor:-$interactive} stcDumpLogs=${stcDumpLogs:-$notInteractive} \
    java $DEBUG_OPTS -jar $JAR $scenario "$@"
