#!/bin/sh

#
# validate -- run all the test scripts
#
# Copyright (c) 1997 University of Southern California.
# All rights reserved.                                            
#                                                                
# Redistribution and use in source and binary forms are permitted
# provided that the above copyright notice and this paragraph are
# duplicated in all such forms and that any documentation, advertising
# materials, and other materials related to such distribution and use
# acknowledge that the software was developed by the University of
# Southern California, Information Sciences Institute.  The name of the
# University may not be used to endorse or promote products derived from
# this software without specific prior written permission.
# 
# THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
# $Header: /nfs/jade/vint/CVSROOT/ns-2/validate,v 1.116 2002/10/19 02:08:57 buchheim Exp $

try () {
	echo "*** $1"
	$1 quiet || {
		any_failed=true
		failed_list="$failed_list $1"
	}
	return $?
}


any_failed=false
failed_list=""

echo "(Validation can take 1-30 hours to run.)"

cd tcl/test

for i in \
simple tcp testReno newreno sack tcpOptions tcpReset \
simple-full full testReno-full testReno-bayfull sack-full \
tcp-init-win tcpVariants LimTransmit aimd greis rfc793edu rfc2581 rbp \
friendly srm realaudio \
ecn ecn-ack ecn-full \
manual-routing hier-routing algo-routing lan mcast vc session mixmode \
red adaptive-red red-pd rio vq rem gk cbq schedule rr monitor \
intserv diffserv webcache mcache webtraf \
simultaneous mip links plm linkstate mpls oddBehaviors \
wireless-shadowing wireless-lan-aodv wireless-tdma wireless-gridkeeper \
wireless-diffusion wireless-lan-newnode satellite WLtutorial energy \
v1 red-v1 cbq-v1 sack-v1 vegas-v1 source-routing snoop diffusion3 \
misc tagged-trace
# wireless-lan-gaf
# tcpHighspeed
# pi

do
	try ./test-all-$i
done

echo "These messages are NOT errors and can be ignored:"
echo "    warning: using backward compatibility mode"
echo "    This test is not implemented in backward compatibility mode"
echo

if $any_failed
then
    	echo
	echo "validate overall report: some tests failed:"
	echo "    $failed_list"
	echo "to re-run a specific test, cd tcl/test; ../../ns test-all-TEST-NAME"
	echo "Notice that some tests in webcache will fail on freebsd when -O is turned on."
	echo "This is due to some event reordering, which will disappear when -g is turned on."
	exit 1
else
	echo "validate overall report: all tests passed"
	exit 0
fi



