#!/bin/sh

# Script to setup environment correctly and run test suites
#

# setting environment variables for testing
DBNAME=v3db
VERSION=3.4.3
ARCHLIB=lib64
PKGROOT=/opt/lsb/test/share/qmtest_libstdcpp_$VERSION
EXECROOT=/opt/lsb/test/$ARCHLIB/qmtest_libstdcpp_$VERSION
QMTEST_CLASS_PATH=$PKGROOT/qm-classes/qmtc:$PKGROOT/qm-classes/qmtest_gcc
PATH=/opt/lsb/bin:/opt/lsb/appbat/bin:$PATH

# Config param
function config_arg()
{
  DEFAULT=$3

  printf "$2 ("
  if [ -n "$DEFAULT" ];
  then
    printf "$DEFAULT"
  fi

  printf ")? "
  read cmd

  if [ -z "$cmd" ];
  then
    cmd=$DEFAULT
  fi

  export "$1=$cmd"
}

# Create the test database
function create_tdb()
{
  config_arg DBROOT "Where do you want to create the test database" "$HOME/qmtest_libstdcpp_$VERSION"
  echo $DBROOT | grep "^/" > /dev/null  2>&1 
  if [ $? -ne 0 ];
  then
    export DBROOT=$PWD/$DBROOT
  fi

  if test ! -d $DBROOT
  then
    mkdir $DBROOT
  fi
  
  qmtest -D $DBROOT/$DBNAME create-tdb -c v3_database.V3Database -a srcdir=$PKGROOT/testsuite

  printf "\n"
}

# Do run time configuration
function config_run()
{
  DEFAULT_TRIPLET=`grep "^DejaGNUTest.target=" $PKGROOT/context | cut -d= -f2` 
  config_arg TRIPLET "What is the GNU triplet for your operating system" "$DEFAULT_TRIPLET"

  DEFAULT_OPER=`grep "^VSX_OPER=" $PKGROOT/context | cut -d= -f2` 
  config_arg VSX_OPER "Name of person running tests" "$DEFAULT_OPER"

  DEFAULT_ORG=`grep "^VSX_ORG=" $PKGROOT/context | cut -d= -f2` 
  config_arg VSX_ORG "Organisation" "$DEFAULT_ORG"

  DEFAULT_SYS=`grep "^VSX_SYS=" $PKGROOT/context | cut -d= -f2` 
  config_arg VSX_SYS "Test System" "$DEFAULT_SYS"

}

#----------------------------------------------------------------------
# Main bit

# Set env variables for testing
export PKGROOT EXECROOT QMTEST_CLASS_PATH PATH

create_tdb
config_run

# Run the test suites
echo "----------------------------------------------------------------------"
echo "Executing the test suites"
echo

cd $DBROOT/$DBNAME
REPORT_NAME=journal.`date  +"%Y%m%d%H%M"` 

# If the user provides triplet, then use it
qmtest run -C $PKGROOT/context -c DejaGNUTest.target="$TRIPLET" -c VSX_OPER="$VSX_OPER" -c VSX_ORG="$VSX_ORG" -c VSX_SYS="$VSX_SYS"  --result-stream="tet_stream.TETStream(filename='$REPORT_NAME')"

echo ""

echo "Finished."
echo "A report has been created in the file: " $DBROOT/$DBNAME/$REPORT_NAME
echo

