#! /usr/bin/ksh
# Environment variables for pd IUT test scripts.

typeset bn=$(basename $0)

Usage="Usage: $0 list of test cases to run"
if test "$1" = "?"; then
  echo
  echo $Usage
  echo "   The test cases are any xxx.tc file"

  echo "   Run the test cases without the default server startup"
  echo
  echo "   The following environment variables must be set"
  echo "       PREFIX  - the prefix of your spooler and supervisor"
  echo "       PDCLIENTD -if = 'true' do not restart the pdclientd"

  echo "   Optional environment variables:"
  echo "       TESTSCRIPTS - list of test cases to run"
  echo "                     the list of test cases to run from the command"
  echo "                     line replaces the values in this variable"
  echo "       PD_DEV  - version of code to run ( default: /pd_dev )"
  echo "       RTPATH  - location of test cases ( default: $PDPATH/pdtest )"
  echo "       PDPRINTER - the default printer name for Palladium ( default: $PREFIX-lp )"
  echo "       PD_OIDS_PATH - the OID path name for Palladium ( default: $PD_DEV/src/oid )"
  echo "       EF_DELETE - if set to true, delete error file if step returns success"
  echo "       TCPATH - the path to the test cases"
  echo "       STEPPATH - the path to the regression steps"
  echo
  exit 1
fi

STARTTIME=`date | awk '{ print $4}'`

[[ -n $* ]] && export TESTSCRIPTS=$*
if [[ -z $TESTSCRIPTS ]]; then
  echo "You must specify a test case to run either on the command line or"
  echo "by defining the environment variable: TESTSCRIPTS"
fi
if [[ -z $PREFIX ]]; then
  echo "Env var: PREFIX    must be set before this script can be run"
  exit 1
fi
if [[ -z $PDCLIENTD ]]; then
  echo "Env var: PDCLIENTD   must be set before this script can be run"
  exit 1
fi
[[ -z $PD_DEV       ]] && export PD_DEV="/pd_dev"
[[ -z $RTPATH       ]] && export RTPATH="$PD_DEV/pdtest"
[[ -z $STEPPATH     ]] && export STEPPATH="$PD_DEV/pdtest/step"
[[ -z $TCPATH       ]] && export TCPATH="$PD_DEV/pdtest/tc"
[[ -z $PD_OIDS_PATH ]] && export PD_OIDS_PATH=$PD_DEV/src/oid
if [[ -z $LPDEV ]]; then
    export LPDEV="/tmp/$PREFIX.tmp"
    [ $(uname) = HP-UX ] && export LPDEV=null #HP,JJB,30Aug95.
    print -n "" >"$LPDEV"
fi
[[ -z $EF_DELETE ]] && export EF_DELETE=true
[[ -z $PD_PATH   ]] && export PD_PATH="$PD_DEV/bin"

# iut required environment variables
export PATH=$RTPATH/bin:$PATH
export QUEUE="$PREFIX-q"               # object names
export SPOOLER="$PREFIX-splr"
export SUPERVR="$PREFIX-spvr"
export ENV="$PD_DEV/pdtest/.kshrc"
export LPRINTER="$PREFIX-lp"
[[ -z $PDPRINTER ]] && export PDPRINTER=$LPRINTER
export PPRINTER="$PREFIX-pp"
export PQN="$PREFIX-asc19"
export QDN="$PREFIX-lp0"

[[ -z $RESULTS_DIR ]] && export RESULTS_DIR=$PD_DEV/pdtest/iutResults
export ERRORFILE="$RESULTS_DIR/recap/ef"
[[ -z $SUMFILE ]] && export SUMFILE=$RESULTS_DIR/iutSummary.out
IUT_RC=0

################################################################

date

#
# Create PDBASE directory and link oid databases
#
if [ $(uname) = HP-UX ]; then
    export    WORKDIR=/var/tmp/pd/$PREFIX
    export    PDBASE=$WORKDIR
    rm    -rf $WORKDIR
    mkdir -p  $WORKDIR
    mkdir -p  $WORKDIR/work/splr
    mkdir -p  $WORKDIR/work/spvr
#    export V_device_support_system=bsd		# HP KY
#    export V_device_support_system=fulcrum
else
    export PDBASE=/var/pd/$PREFIX
    export WORKDIR=/var/pd/$PREFIX
    rm -rf $PDBASE
    mkdir $PDBASE
    export V_device_support_system=piobe	# HP KY
fi
cd $WORKDIR
if test -d $WORKDIR/oids; then
     echo "$WORKDIR/oids exists ..."
     echo "$WORKDIR/oids being deleted ..."
     rm -r $WORKDIR/oids
     echo "creating directory for links to oids for WORKDIR ..."
     echo "creating links to oids $PD_OIDS_PATH ..."
     ln -s $PD_OIDS_PATH $WORKDIR/oids
else echo "creating directory for links to oids for WORKDIR ..."
     echo "creating links to oids $PD_OIDS_PATH ..."
     ln -s $PD_OIDS_PATH $WORKDIR/oids
fi

printf "%-16s[%3d]: PD_DIR       = $PD_DIR\n"		$bn $LINENO
printf "%-16s[%3d]: PD_DEV       = $PD_DEV\n"		$bn $LINENO
printf "%-16s[%3d]: RTPATH       = $RTPATH\n"		$bn $LINENO
printf "%-16s[%3d]: PREFIX       = $PREFIX\n"		$bn $LINENO
printf "%-16s[%3d]: NLSPATH      = "		$bn $LINENO
echo "$NLSPATH"
printf "%-16s[%3d]: LANG         = $LANG\n"		$bn $LINENO
printf "%-16s[%3d]: PDBASE       = $PDBASE\n"		$bn $LINENO
printf "%-16s[%3d]: TESTSCRIPTS  = $TESTSCRIPTS\n"	$bn $LINENO
printf "%-16s[%3d]: RESULTS_DIR  = $RESULTS_DIR\n"	$bn $LINENO
printf "%-16s[%3d]: SUMFILE      = $SUMFILE\n"		$bn $LINENO
printf "%-16s[%3d]: PDCLIENTD    = $PDCLIENTD\n"	$bn $LINENO
printf "%-16s[%3d]: PDPRINTER    = $PDPRINTER\n"	$bn $LINENO
printf "%-16s[%3d]: PD_OIDS_PATH = $PD_OIDS_PATH\n"	$bn $LINENO
printf "%-16s[%3d]: ERRORFILE    = $ERRORFILE\n"	$bn $LINENO
printf "%-16s[%3d]: PD_PATH      = $PD_PATH\n"		$bn $LINENO
printf "%-16s[%3d]: QUEUE        = $QUEUE\n"		$bn $LINENO
printf "%-16s[%3d]: SPOOLER      = $SPOOLER\n"		$bn $LINENO
printf "%-16s[%3d]: SUPERVR      = $SUPERVR\n"		$bn $LINENO
printf "%-16s[%3d]: LPRINTER     = $LPRINTER\n"		$bn $LINENO
printf "%-16s[%3d]: PPRINTER     = $PPRINTER\n"		$bn $LINENO
printf "%-16s[%3d]: PQN          = $PQN\n"		$bn $LINENO
printf "%-16s[%3d]: QDN          = $QDN\n"		$bn $LINENO
printf "%-16s[%3d]: LPDEV        = $LPDEV\n"		$bn $LINENO
printf "%-16s[%3d]: EF_DELETE    = $EF_DELETE\n"	$bn $LINENO
printf "%-16s[%3d]: STEPPATH     = $STEPPATH\n"		$bn $LINENO
printf "%-16s[%3d]: TCPATH       = $TCPATH\n"		$bn $LINENO
printf "%-16s[%3d]: PATH         = $PATH\n"		$bn $LINENO
printf "%-16s[%3d]: ENV          = $ENV\n"		$bn $LINENO
printf "%-16s[%3d]: WORKDIR      = $WORKDIR\n"		$bn $LINENO

###   Start executing regression scripts here   #######
for ASCRIPT in $TESTSCRIPTS; do
    # path and filename stub for testcase
    export ERRFILROOT=${ERRORFILE}:${ASCRIPT}
    export SUMMARY=$RESULTS_DIR/recap/$ASCRIPT.sum

    $RTPATH/bin/boxText "Starting $ASCRIPT"

    # if the command is not pathed - path to $RTPATH - else just execute
    (
    function check_rc
    {
        if [ $? -ne 0 ]; then
            printf "%-16s[%3d]: Test aborted due to error\n" $bn $LINENO
            exit 1
        fi
    }
    if [ `dirname $ASCRIPT` = '.' ]; then
         . $TCPATH/$ASCRIPT
    else . $ASCRIPT
    fi
    )
    ret_code=$?
    [[ $ret_code -ne 0 ]] && IUT_RC=$ret_code
    echo $ASCRIPT $ret_code | awk '{ printf "%30s rc: %s\n", $1, $2 }' |\
        tee -a $SUMFILE
done

printf "%-16s[%3d]: Regression test completed\n"	$bn $LINENO
printf "%-16s[%3d]: IUT_RC = $IUT_RC\n"			$bn $LINENO

exit $IUT_RC
#
#    Version      Date     Time    Owner   Comment
# ------------- -------- -------- -------- ----------------------------
# V1.2          07/19/94 14:32:37 nrjbehrs IUT fixes
# V1.3          07/19/94 16:56:07 nrjbehrs IUT fixes
# V1.4          07/20/94 12:31:08 nrjbehrs IUT fixes
# V1.5          07/20/94 14:53:05 nrjbehrs bogus->nrjbehrs
# V1.6          07/21/94 17:23:42 nrjbehrs IUT cleanup
# V1.7          07/22/94 11:19:18 nrjbehrs IUT cleanup
# V1.8          07/26/94 11:01:51 nrjbehrs IUT cleanup
# V1.9          07/26/94 15:55:19 nrjbehrs IUT cleanup
# V1.10         08/03/94 15:38:31 nrjbehrs IUT fixes
# V1.11         08/15/94 15:00:37 nrjbehrs IUT cleanup
# V1.12         08/18/94 10:31:00 nrjbehrs IUT cleanup
# V1.13         02/02/95 15:52:44 hlava    Misc IUT fixes
# V1.14         04/24/95 13:39:40 nrjbehrs PDBASE to /var
# V1.15         04/26/95 14:52:25 nrjbehrs remove PDBASE before running
# V1.2          04/27/95 16:02:15 nrjbehrs use PDBASE=/var
