#!/bin/sh
#
# RUNTESTS [-h]...
#
# RETURNS:	Number of failed tests.
#
# CALLS: eval_oneprogram.sh [-h][-lk] <program>
#
#

#
# Suggested improvement(s):
#	Run a given test against a running agent.
#
# Variables:  (* = exported)
#  *SNMP_BASEDIR:  	  the source base directory for tests
#  *SNMP_UPDIR:  	  directory above where the test binaries live (-D option)
#  *SNMP_PATH	## yes, PATH is already setup
#  *SNMP_VERBOSE	## 0=silent, 1=warnings, 2=more

# Usage mess.  (No, it works.)
#

usage() { 
    cat << BLIK

Usage: `basename $0` [-a] [-S SLEEPTIME] [-h] [-i] [-v] [-V] [-s] [-XM]
       [-T TESTNUMS] [-D bindir] [-S seconds] [-P <udp|tcp|udp6|tcp6|unix>]

  -a        run all tests.
  -T NUMS   run particular tests (command separated list of numbers)
  -i        run interactively
  -v        be verbose
  -V        be very verbose
  -S TIME   TIME should be used as the timeout when waiting for a
            response from the agent.
  -A FLAGS  Extra flags to pass to the agent.
  -t FLAGS  Extra flags to pass to the trapd.
  -s        Don't erase the runtime data directory for successful tests
  -XM       Don't set MIBDIRS environment unless absolutely necessary
  -x        Turn on SH output debugging for tests.
  -P TRANS  Specify on which transport domain to run the tests.Default is udp.
  -p prefix Specify test case prefix. Options are [T|V]. Default is T

BLIK
    exit 0
}

trap "exit 1;" 1 2 3 9 13 15

SNMP_BASEDIR=`dirname $0`
SNMP_PREFER_NEAR_MIBS=1	## prefer MIB files found in source hierarchy
export SNMP_PREFER_NEAR_MIBS
SNMP_TEST_PREFIX=${SNMP_TEST_PREFIX:=T}
export SNMP_TEST_PREFIX

### Check for the configuration script.
##if [ ! -s "${SNMP_BASEDIR}/TESTCONF.sh"  ] ; then 
##  echo "No TESTCONF.sh in \"$SNMP_BASEDIR\" ; exiting"
##  exit 0
##fi

ORIGDIR=`pwd`		## this script may be invoked with relative path
SNMP_UPDIR=..		## building from the source tree
interactive=no
SNMP_VERBOSE=${SNMP_VERBOSE:=0}
SNMP_SLEEP=${SNMP_SLEEP:=1} 	## default seconds to sleep
SH_DEBUG=0
USE_TEST_NUMS=0

while [ -n "$1" ]; do
    case "$1" in
	-h)
	    usage
	    exit
	    ;;

	-i)
	    interactive="yes"
	    ;;
	-v)
	    SNMP_VERBOSE=1
	    ;;
	-V)
	    SNMP_VERBOSE=2
	    ;;
	-s)
	    SNMP_SAVE_TMPDIR="yes"
	    export SNMP_SAVE_TMPDIR
	    ;;
	-D)
	    shift
	    SNMP_UPDIR="$1"
	    ;;
	-p)
	    shift
	    SNMP_TEST_PREFIX="$1"
	    ;;
	-P)
		shift
		SNMP_TRANSPORT_SPEC="$1"
		export SNMP_TRANSPORT_SPEC
		if [ "x$SNMP_TRANSPORT_SPEC" = "xunix" ];then
			SNMP_SNMPD_PORT="/var/tmp/unixsnmpd"
			SNMP_SNMPTRAPD_PORT="/var/tmp/unixsnmptrapd"
			SNMP_TEST_DEST=""
			export SNMP_SNMPD_PORT
			export SNMP_SNMPTRAPD_PORT
			export SNMP_TEST_DEST
		fi
		;;
	-T)
	    shift
	    test_nums=`echo $1 | sed 's/,/ /g'`
	    ;;
	-a)
	    test_nums="all"
	    ;;

	-A)
	    shift
	    AGENT_FLAGS="$1"
	    export AGENT_FLAGS
	    ;;
	-S)
	    shift
	    SNMP_SLEEP="$1"
	    ;;
	-t)
	    shift
	    TRAPD_FLAGS="$1"
	    export TRAPD_FLAGS
	    ;;

	-x)
	    SH_DEBUG=1
	    ;;

	-XM)
	    SNMP_PREFER_NEAR_MIBS=0
	    ;;

	-n)
	    USE_TEST_NUMS=1
	    ;;
    esac

    shift
done

export SNMP_SLEEP

# Make sure MinGW / MSYS users have the pskill.exe program to stop the agent and
# snmptrapd
if [ "x$OSTYPE" = "xmsys" -a "x`which pskill.exe 2>/dev/null`" = "x" ]; then
    echo "Could not find pskill.exe. Aborting tests."
    echo "pskill.exe can be installed as follows:"
    echo "- Download pskill.exe from http://technet.microsoft.com/en-us/sysinternals/default.aspx."
    echo "- Copy pskill.exe to C:\\MinGW\\msys\\1.0\\bin."
    exit 1
fi 

# Find executables in source first, then build, then existing PATH.
## Add to PATH if a binary is found.

cd $SNMP_UPDIR
SNMP_UPDIR=`pwd`
bf=snmpget
if [ -x "$bf" ] ; then
   PATH=$SNMP_UPDIR:$PATH
else
  for dd in apps bin ; do
   bf=$dd/snmpget
   if [ -x "$bf" ] ; then
      PATH=$SNMP_UPDIR/$dd:$PATH
      break
   fi
  done
fi
for dd in agent bin sbin ; do
   bf=$dd/snmpd
   if [ -x "$bf" ] ; then
      PATH=$SNMP_UPDIR/$dd:$PATH
      break
   fi
done

bf=include/net-snmp/net-snmp-config.h
if [ ! -s "$bf" ] ; then
   echo "No \"$bf\" in $SNMP_UPDIR . Some tests will be skipped"
fi
unset bf

# Run from the test scripts directory.
cd $ORIGDIR ; cd ${SNMP_BASEDIR}
SNMP_BASEDIR=`pwd`

# Setup for the next test run.
rm -f core tests/core

PATH=${SNMP_BASEDIR}:$PATH
SNMP_PATH=yes

export PATH
export SNMP_BASEDIR
export SNMP_PATH
export SNMP_UPDIR
export SNMP_VERBOSE

WHICH=which
$WHICH $0 > /dev/null 2>&1
if [ $? -ne 0 ] ; then
    WHICH=type
fi

for needed in snmpd snmpget snmpgetnext; do
    $WHICH $needed > /dev/null 2>&1
    if [ $? -ne 0  ] ; then 
        echo "No $needed found. Exiting"
        exit 1
    fi
done

#
# Distinguished expectations.
#
if [ $SNMP_VERBOSE -gt 0 ]; then
    echo ${SNMP_UPDIR}/testing
    echo path is $PATH
    echo top of build is $SNMP_UPDIR
    echo source testing is $SNMP_BASEDIR
    $WHICH snmpusm
fi

#
# Source the testing configuration file
#

. TESTCONF.sh

# Hack: the above created a directory, now we have to nuke it and
# forget about it...  All for the convenience of the test writer.
rm -fR $SNMP_TMPDIR
unset SNMP_TMPDIR
export SNMP_TMPDIR

if [ "x$SNMP_PREFER_NEAR_MIBS" = "x0" ]; then
    # try the compiled MIBDIRS directory first.
    # if MIB files are not found, fallback to the source base

    snmptranslate -On -IR sysDescr > /dev/null 2>&1
    if [ $? -ne 0 ] ; then
        if [ "x$MIBDIRS" = "x" ]; then
    	MIBDIRS=${SNMP_BASEDIR}/../mibs
    	export MIBDIRS
        fi
    fi
    snmptranslate -On -IR sysDescr > /dev/null 2>&1
    if [ $? -ne 0 ] ; then
        echo "Could not resolve sysDescr in $MIBDIRS. Exiting"
        exit 1
    fi
fi ## SNMP_PREFER_NEAR_MIBS

#
# Switch to the testing directory, for ease of the client test packages.
#
cd ./tests

#------------------------------------ -o- 
# Globals.
#
PROGRAM=
ARGUMENTS="$*"

TMPFILE=$SNMP_TMPDIR/eval_suite.sh$$

testname=

success_count=0
failed_count=0

if [ "x$do_tests" = "x" ]; then
    #
    # List the tests in question
    #
    num=0
    for testfile in $SNMP_TEST_PREFIX*; do
	case $testfile in
	    # Skip backup files, and the like.
	    *~)     ;;
	    *.bak)  ;;
	    *.orig) ;;
	    *.rej)  ;;

	    # Do the rest
	    *)
		num=`expr $num + 1`
		if [ "x$interactive" != "xyes" -a "x$test_nums" = "x" ]; then
		    eval_onescript.sh $testfile $num "yes"
		fi
		all_tests="$all_tests $num"
		all_files="$all_files $testfile"
		;;
	esac
    done

    #
    # TODO: allow user to interactively pick the list of tests to run.
    #

    if [ "x$interactive" != "xyes" ]; then
	if [ "x$test_nums" = "x" ]; then
	    ECHO "Enter test numbers [all]: "
	    read inp
	else
	    if [ "x$test_nums" = "xall" ]; then
		inp=""
	    else
		inp="$test_nums"
	    fi
	fi
	if [ "x$inp" = "x" ]; then
	    do_tests="$all_files"
	else
	    a=1
	    set $all_files
	    while [ $a -le $num ]; do
		if echo " $inp " | grep " $a " > /dev/null; then
		    do_tests="$do_tests $1"
		    if [ "x$test_nums" = "x" ] ; then
			test_nums=$a
		    fi
		fi
		shift
		a=`expr $a + 1`
	    done
	fi
    fi

    #echo Starting: Running tests $do_tests
fi

#
# Run the tests
#
if [ "x$test_nums" = "xall" -o "x$test_nums" = "x" ] ; then
    num=1
else
    num="$test_nums"
fi
cntr=0
for testfile in $do_tests; do
    dothisone="yes"
    if [ $USE_TEST_NUMS = 1 ] ; then
	num=`echo $testfile | sed -e 's/^T//;s/[a-zA-Z].*//;'`
    else
        id_x=0
        for itest in $inp; do
            if [ "$cntr" = "$id_x" ] ; then
                num="$itest"
            fi
            id_x=`expr $id_x + 1`
        done
    fi
    if [ "x$interactive" = "xyes" ]; then

        if [ $SH_DEBUG = 1 ] ; then
	    sh -x "${SNMP_BASEDIR}/eval_onescript.sh" $testfile $num "yes"
	else
	    eval_onescript.sh $testfile $num "yes"
	fi

	ECHO "  Run test #$num (y/n) [y]? "
	read inp2
	if [ "x$inp2" = "xn" ]; then
	    dothisone=no
	fi
    fi
  
    if [ "x$dothisone" = "xyes" ]; then
        if [ $SH_DEBUG = 1 ] ; then
	    sh -x "${SNMP_BASEDIR}/eval_onescript.sh" $testfile $num "no"
	else
	    eval_onescript.sh $testfile $num "no"
	fi
	if [ $? = 0 ]; then
	    success_count=`expr $success_count + 1`
	else
	    failed_count=`expr $failed_count + 1`
	fi
    fi
    num=`expr $num + 1`
    cntr=`expr $cntr + 1`
done

echo Summary: $success_count / `expr $failed_count + $success_count` succeeded.

exit $failed_count
