#!/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.91 2001/02/07 10:25:35 yaxu 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 full tcpReset \
tcp-init-win tcpVariants aimd greis rfc793edu rfc2581 rbp \
friendly srm realaudio \
ecn ecn-ack \
manual-routing hier-routing algo-routing lan mcast vc session mixmode \
red red-pd rio cbq schedule 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 wireless-lan-gaf satellite WLtutorial energy \
v1 red-v1 cbq-v1 sack-v1 vegas-v1
do
	try ./test-all-$i
done

if $any_failed
then
	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



