summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-08-11 00:08:30 +0000
committercoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-08-11 00:08:30 +0000
commitf7e87f072108cf485f44bbec076c6217ffbd3562 (patch)
treecf14cc9da106b1f7241667f86e486b19e8368fd7
parentd738068a4e5cb33167353c9765b183b8a70f9327 (diff)
downloadATCD-f7e87f072108cf485f44bbec076c6217ffbd3562.tar.gz
ChangeLogTag:Tue Aug 10 19:07:32 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-rw-r--r--ChangeLog-99b23
-rwxr-xr-xbin/auto_compile36
-rwxr-xr-xbin/run_all.pl215
-rw-r--r--bin/run_all_list.pm8
-rw-r--r--tests/run_tests.lst73
-rwxr-xr-xtests/run_tests.pl185
-rwxr-xr-xtests/run_tests.sh150
7 files changed, 568 insertions, 122 deletions
diff --git a/ChangeLog-99b b/ChangeLog-99b
index d396d9ce09a..81ecd58b5c0 100644
--- a/ChangeLog-99b
+++ b/ChangeLog-99b
@@ -1,3 +1,26 @@
+Tue Aug 10 19:07:32 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
+
+ * tests/run_tests.sh:
+ * tests/run_tests.pl:
+ * tests/run_tests.lst:
+ Move the list of tests to a separate file. This file is used to
+ drive both a perl version of the script and the old shell
+ version.
+ The new perl version is able to terminate programs that hang,
+ but still has problem with processes that fork children who then
+ hang for some reason. The perl script has to be ported to Win32
+ too.
+
+ * bin/run_all_list.pm:
+ Use the new tests/run_tests.pl script on Unix.
+
+ * bin/run_all.pl:
+ Run all the test scripts in ACE and TAO, much like run_all_win32
+ but for unix systems.
+
+ * bin/auto_compile:
+ Remember to remove the disable file in case of errors.
+
Tue Aug 10 18:08:30 1999 Jeff Parsons <parsons@cs.wustl.edu>
* ace/CDR_Stream.h:
diff --git a/bin/auto_compile b/bin/auto_compile
index 1e95e536b21..635d54c28f5 100755
--- a/bin/auto_compile
+++ b/bin/auto_compile
@@ -144,6 +144,10 @@ if ($debug) {
}
+sub mydie {
+ unlink $disable_file;
+ die $_ . "\n";
+}
sub report_errors {
# First clear the lock, so the next execution works...
@@ -153,7 +157,7 @@ sub report_errors {
local $to = $ADMIN;
open (MAIL, "|".$MAIL.' -s [AUTO_COMPILE] '.$to)
- || die "Cannot open mail pipe for: $_\n";
+ || mydie "Cannot open mail pipe for: $_\n";
print MAIL 'The following message is brought to you by: ', "\n";
print MAIL $CMD, ' [', $REVISION, "] for $BUILD on $CHECKOUT\n";
@@ -172,7 +176,7 @@ sub report_errors {
# Now send the complete log to bugzilla...
local $bugs = 'bugzilla'.'@cs.wustl.edu';
open (MAIL, "|".$MAIL.' -s AUTO_COMPILE_LOG='.$LOG_NAME.' '.$bugs)
- || die "Cannot open mail pipe for: $LOG_NAME\n";
+ || mydie "Cannot open mail pipe for: $LOG_NAME\n";
print MAIL 'This is the log for: ', "\n";
print MAIL $CMD, ' [', $REVISION, "] for $BUILD on $CHECKOUT\n";
@@ -224,7 +228,7 @@ close (DISABLE)
|| die "cannot close disable file";
open(LOG, '>' . $LOGFILE)
- || die "cannot open log file";
+ || mydie "cannot open log file";
LOG->autoflush ();
@@ -235,13 +239,13 @@ LOG->autoflush ();
#}
chdir($CHECKOUT)
- || die "Cannot chdir to $CHECKOUT";
+ || mydie "Cannot chdir to $CHECKOUT";
if ($dont_update == 0) {
$date = localtime;
print LOG "$CMD: starting checkout at ", $date, "\n";
open(CVS, "cvs -q checkout -P $MODULE 2>&1 |")
- || die "cannot start checkout of $MODULE";
+ || mydie "cannot start checkout of $MODULE";
$conflicts = 0;
while (<CVS>) {
@@ -251,32 +255,32 @@ if ($dont_update == 0) {
print LOG $_;
}
close(CVS)
- || die "error while checking out $MODULE";
+ || mydie "error while checking out $MODULE";
$date = localtime;
print LOG "$CMD: checkout finished at ", $date, "\n";
if ($conflicts != 0) {
- die "conflicts on checkout";
+ mydie "conflicts on checkout";
}
}
chdir($MODULE)
- || die "cannot chdir to $MODULE";
+ || mydie "cannot chdir to $MODULE";
$date = localtime;
print LOG "$CMD: starting clone at ", $date, "\n";
open(CLONE, "perl bin/create_ace_build -a -v $BUILD 2>&1 |")
- || die "cannot clone directory";
+ || mydie "cannot clone directory";
while(<CLONE>) {
print LOG $_;
}
close(CLONE)
- || die "error while cloning ACE_ROOT";
+ || mydie "error while cloning ACE_ROOT";
$date = localtime;
print LOG "$CMD: clone finished at ", $date, "\n";
chdir('build/' . $BUILD)
- || die "cannot chdir to $BUILD";
+ || mydie "cannot chdir to $BUILD";
@failures = ();
@@ -286,7 +290,7 @@ if ($pre_realclean) {
print LOG "$CMD: =============================================\n";
print LOG "$CMD: make realclean in $i started at ", $date, "\n";
open(MAKE, "make -k $MAKEFLAGS -C $i realclean 2>&1 |")
- || die "cannot start make in $i";
+ || mydie "cannot start make in $i";
while (<MAKE>) {
# Ignore errors....
@@ -306,7 +310,7 @@ foreach $i (@BUILD_LIST) {
print LOG "$CMD: =============================================\n";
print LOG "$CMD: make for $i started at ", $date, "\n";
open(MAKE, "make -k $MAKEFLAGS -C $i 2>&1 |")
- || die "cannot start make for $i";
+ || mydie "cannot start make for $i";
local $current_dir = $i;
local $last_error = "";
@@ -369,7 +373,7 @@ if ($dont_run == 0) {
local $subdir =
$CHECKOUT .'/'. $MODULE .'/build/'. $BUILD .'/'. $directory;
chdir ($subdir)
- || die "cannot chdir to $subdir";
+ || mydie "cannot chdir to $subdir";
$run_error = 0;
if (open(RUN, "perl $program 2>&1 |") == 0) {
@@ -429,11 +433,11 @@ if ($#failures >= 0) {
}
close(LOG)
- || die "cannot close LOGFILE";
+ || mydie "cannot close LOGFILE";
print HIST "$STATUS\n";
close(HIST)
- || die "cannot close history file";
+ || mydie "cannot close history file";
unlink $disable_file
|| die "cannot unlink disable file";
diff --git a/bin/run_all.pl b/bin/run_all.pl
new file mode 100755
index 00000000000..07b3989da2d
--- /dev/null
+++ b/bin/run_all.pl
@@ -0,0 +1,215 @@
+# -*- perl -*-
+# $Id$
+#
+# This script execute the test programs (usually, other scripts) in
+# the RUN_LIST defined below. If it detects any problem it send email.
+#
+# This script requires ActivePerl for Win32 and libnet from CPAN.
+#
+# Usage: run_all.pl <log directory> <admin email address>
+#
+# For example: run_all.pl /tmp/log peter_pan@neverland.org
+
+use Net::SMTP;
+use File::Basename;
+use FileHandle;
+require POSIX;
+
+push @INC, $ENV{'ACE_ROOT'}.'/bin';
+require run_all_list;
+
+# Find out the command name.
+$CMD = basename($0);
+
+$single_threaded = 0;
+$minimum_corba = 0;
+$dont_run = 0;
+$report_success = 0;
+$debug = 0;
+
+@ARGS = ();
+while ($#ARGV >= 0) {
+ if (!($ARGV[0] =~ m/-/)) {
+ push @ARGS, $ARGV[0];
+ shift;
+ } elsif ($ARGV[0] eq "-single_threaded") {
+ $single_threaded = 1;
+ shift;
+ } elsif ($ARGV[0] eq "-minimum_corba") {
+ $minimum_corba = 1;
+ shift;
+ } elsif ($ARGV[0] eq "-report_success") {
+ $report_success = 1;
+ shift;
+ } elsif ($ARGV[0] eq "-debug") {
+ $debug = 1;
+ shift;
+ }
+}
+
+# We obtain our revision to report errors.
+$REVISION='$Revision$ ';
+
+# Extract configuration information from command line.
+ # TODO: Some validation and checking should be done here.
+$LOGDIR = $ARGS[0];
+$ADMIN = $ARGS[1];
+$MAIL = "mail";
+if ($#ARGS >= 2) {
+ $MAIL = $ARGS[2];
+}
+
+$disable_file = $LOGDIR . '/.disable';
+$histfile = $LOGDIR . '/history';
+$LOGBASE = POSIX::strftime("%b%d_%Y.log", localtime);
+$LOGFILE = $LOGDIR . '/' . $LOGBASE;
+$HOST = `hostname`;
+chop $HOST;
+$LOG_NAME = $HOST . "_" . $BUILD . "_" . $LOGBASE;
+$STATUS = "OK";
+
+sub report_errors {
+ # Now send a summary of the errors to the ADMIN account...
+ local $to = $ADMIN;
+
+ open (MAIL, "|".$MAIL.' -s [AUTO_COMPILE] '.$to)
+ || die "Cannot open mail pipe for: $_\n";
+
+ print MAIL 'The following message is brought to you by: ', "\n";
+ print MAIL $CMD, ' [', $REVISION, "] for $BUILD on $CHECKOUT\n";
+
+ local $m;
+ foreach $m (@_) {
+ print MAIL $m, "\n";
+ }
+
+ print MAIL "\nPlease check the following log for more info:\n\n";
+ print MAIL 'http://www.cs.wustl.edu/~bugzilla/auto_compile_logs/',
+ $LOG_NAME, "\n\n";
+
+ close (MAIL); # Ignore errors....
+
+# # Now send the complete log to bugzilla...
+# local $bugs = 'bugzilla'.'@cs.wustl.edu';
+# open (MAIL, "|".$MAIL.' -s AUTO_COMPILE_LOG='.$LOG_NAME.' '.$bugs)
+# || die "Cannot open mail pipe for: $LOG_NAME\n";
+
+# print MAIL 'This is the log for: ', "\n";
+# print MAIL $CMD, ' [', $REVISION, "] for $BUILD on $CHECKOUT\n";
+
+# print MAIL "\n================================================================\n";
+
+# if (open (THELOG, "$LOGFILE"))
+# {
+# while (<THELOG>) {
+# print MAIL $_;
+# }
+# close (THELOG);
+# }
+# close (MAIL); # Ignore errors....
+}
+
+### MAIN FUNCTION
+
+$histfile = $LOGDIR . '/history';
+open(HIST, '>>' . $histfile)
+ # Do not use 'die' to report the problem, it tries to use HIST....
+ || die "cannot open history file \"$histfile\"\n";
+
+$date = localtime;
+
+print HIST $CMD, ': running at ', $date, ' ';
+
+if (-f $disable_file) {
+ print HIST "DISABLED\n";
+ exit 0;
+}
+
+open (DISABLE, '>' . $disable_file)
+ || die "cannot open disable file";
+print DISABLE "auto_compile <$date> is running\n";
+close (DISABLE)
+ || die "cannot close disable file";
+
+$LOGFILE = $LOGDIR . '/' . POSIX::strftime("%b%d_%Y.log", localtime);
+open(LOG, '>' . $LOGFILE)
+ || die "cannot open log file";
+
+LOG->autoflush ();
+
+@failures = ();
+
+if ($dont_run == 0) {
+ @LIST = @RUN_LIST;
+ if ($single_threaded) {
+ @LIST = @SINGLE_THREADED_LIST;
+ } elsif ($minimum_corba) {
+ @LIST = @MINIMUM_CORBA_LIST;
+ }
+
+ $DIR = $ENV{'PWD'};
+ foreach $i (@LIST) {
+ local @test_info = split (/\ \,\ /, $i);
+ local $directory = $test_info[0];
+ local $program = $test_info[1];
+
+ $date = localtime;
+ print LOG "$CMD: =============================================\n";
+ print LOG "$CMD: running $program in $directory at ", $date, "\n";
+ local $subdir = $DIR . '/' . $directory;
+ chdir ($subdir)
+ || die "cannot chdir to $subdir";
+
+ $run_error = 0;
+ if (open(RUN, "perl $program 2>&1 |") == 0) {
+ push @failures, "cannot run $program in $directory";
+ next;
+ }
+ while (<RUN>) {
+ print LOG $_;
+ if (m/Error/
+ || m/FAILED/
+ || m/EXCEPTION/
+ || m/pure virtual /i) {
+ if ($STATUS eq "OK") {
+ $STATUS = "RUNTIME ERROR";
+ }
+ $run_error = 1;
+ }
+ }
+ if (close(RUN) == 0) {
+ if ($STATUS eq "OK") {
+ $STATUS = "RUNTIME ERROR";
+ }
+ push @failures, "Error when closing pipe for $program in $directory";
+ next;
+ }
+ $date = localtime;
+ print LOG "$CMD: $program finished ", $date, "\n";
+
+ if ($run_error != 0) {
+ push @failures,
+ "errors detected while running $program in $directory";
+ }
+ }
+}
+
+if ($#failures >= 0) {
+ report_errors @failures;
+}
+
+close(LOG)
+ || die "cannot close LOGFILE";
+
+print HIST "$STATUS\n";
+close(HIST)
+ || die "cannot close history file";
+
+unlink $disable_file
+ || die "cannot unlink disable file";
+
+if ($report_success) {
+ report_errors "Congratulations: No errors or warnings detected\n";
+}
+
+exit 0;
diff --git a/bin/run_all_list.pm b/bin/run_all_list.pm
index 1c69cb2b002..f8629aa6d1c 100644
--- a/bin/run_all_list.pm
+++ b/bin/run_all_list.pm
@@ -3,7 +3,7 @@
# This are the pairs "sub-directory , script" we run; the separator
# *must* be a space followed by a comma and then another space.
-$ace_tests = 'tests , run_tests.sh';
+$ace_tests = 'tests , run_tests.pl';
if ($^O eq "MSWin32") {
$ace_tests = 'tests , run_tests.bat';
}
@@ -66,15 +66,15 @@ if ($^O eq "MSWin32") {
@MINIMUM_CORBA_LIST =
( $ace_tests,
- 'TAO/tests/Param_Test , run_test.pl',
- 'TAO/tests/Param_Test , run_test.pl -i dii',
+# NOT MINIMUM 'TAO/tests/Param_Test , run_test.pl',
+# NOT MINIMUM 'TAO/tests/Param_Test , run_test.pl -i dii',
# NOT MINIMUM 'TAO/performance-tests/Cubit/TAO/IDL_Cubit , run_test.pl',
'TAO/performance-tests/Latency , run_test.pl',
'TAO/tests/OctetSeq , run_test.pl',
'TAO/tests/Multiple_Inheritance , run_test.pl',
'TAO/tests/MT_Client , run_test.pl',
'TAO/tests/MT_Server , run_test.pl',
- 'TAO/tests/Faults , run_test.pl',
+# NOT MINIMUM 'TAO/tests/Faults , run_test.pl',
'TAO/tests/NestedUpcall/Simple , run_test.pl',
'TAO/tests/NestedUpcall/MT_Client_Test , run_test.pl',
'TAO/tests/NestedUpcall/Triangle_Test , run_test.pl',
diff --git a/tests/run_tests.lst b/tests/run_tests.lst
new file mode 100644
index 00000000000..543238a2d63
--- /dev/null
+++ b/tests/run_tests.lst
@@ -0,0 +1,73 @@
+Basic_Types_Test
+chorus/Env_Value_Test
+Atomic_Op_Test
+CDR_Test
+Semaphore_Test
+TSS_Test
+Timeprobe_Test
+Time_Value_Test
+High_Res_Timer_Test
+SString_Test
+Collection_Test
+Unicos/libDLL_Test/DLL_Test
+OTHER/chorus/LynxOS/Unicos/Naming_Test
+Handle_Set_Test
+OrdMultiSet_Test
+chorus/Unicos/Mem_Map_Test
+Malloc_Test
+Unicos/SV_Shared_Memory_Test
+chorus/Unicos/MM_Shared_Memory_Test
+Sigset_Ops_Test
+Timer_Queue_Test
+MT_Reactor_Timer_Test
+SOCK_Connector_Test
+SOCK_Send_Recv_Test
+Task_Test
+Unicos/Thread_Manager_Test
+Thread_Pool_Test
+Future_Test
+Future_Set_Test
+RB_Tree_Test
+Reactors_Test
+Reactor_Exceptions_Test
+Reactor_Notify_Test
+Reactor_Timer_Test
+chorus/Reactor_Performance_Test
+Notify_Performance_Test
+Reader_Writer_Test
+chorus/Priority_Reactor_Test
+chorus/SOCK_Test
+chorus/MT_SOCK_Test
+SPIPE_Test
+UPIPE_SAP_Test
+Barrier_Test
+Svc_Handler_Test
+Buffer_Stream_Test
+Priority_Buffer_Test
+Dynamic_Priority_Test
+Recursive_Mutex_Test
+Reverse_Lock_Test
+netsvcs_main/TOKEN/chorus/Unicos/Time_Service_Test
+TOKEN/chorus/Unicos/Tokens_Test
+Cache_Map_Manager_Test
+Cached_Conn_Test
+Cached_Accept_Conn_Test
+Map_Manager_Test
+Hash_Map_Manager_Test
+Hash_Map_Bucket_Iterator_Test
+Map_Test
+Message_Queue_Notifications_Test
+chorus/Message_Queue_Test
+chorus/Simple_Message_Block_Test
+chorus/Message_Block_Test
+chorus/Pipe_Test
+chorus/Process_Mutex_Test
+chorus/Thread_Mutex_Test
+chorus/Process_Strategy_Test
+Service_Config_Test
+Unicos/Priority_Task_Test
+IOStream_Test
+Enum_Interfaces_Test
+chorus/Upgradable_RW_Test
+chorus/Conn_Test
+DISABLED/New_Fail_Test
diff --git a/tests/run_tests.pl b/tests/run_tests.pl
new file mode 100755
index 00000000000..5f10a13f7fc
--- /dev/null
+++ b/tests/run_tests.pl
@@ -0,0 +1,185 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+unshift @INC, '../bin';
+require ACEutils;
+
+use English;
+
+$tmp="/tmp";
+$compilation_log="log/compilations.log";
+
+$ACE_ROOT = $ENV{'ACE_ROOT'};
+$LD_VAR = 'LD_LIBRARY_PATH';
+
+if ($OSNAME eq "HP-UX") {
+ $LD_VAR = 'SHLIB_PATH';
+} elsif ($OSNAME eq 'AIX') {
+ $LD_VAR = 'LIBPATH';
+}
+
+local $path = $ENV{$LD_VAR};
+if ($path eq '') {
+ $path = '/usr/lib';
+}
+$ENV{$LD_VAR} = $ACE_ROOT."/ace:".$path;
+
+####
+#### Run each process
+####
+sub run
+{
+ local $program = shift;
+
+ unlink "core";
+ local $log = "log/".$program.".log";
+ unlink $log;
+
+ local $remove_exe_after_test = 0;
+ if ( ! -x $program) {
+ print STDERR "Making $program . . .\n";
+ $remove_exe_after_test = 1;
+ system ("make BIN=$program >>$compilation_log 2>&1");
+ }
+
+ print STDERR "Running $program\n";
+ $P = Process::Create ($EXEPREFIX.$program.$EXE_EXT, "");
+ $status = $P->TimedWait (300);
+
+ if ($status == -1) {
+ print STDERR "$program FAILED (time out)\n";
+ $P->Kill (); $P->TimedWait (1);
+ } elsif ($status != 0) {
+ print STDERR "$program FAILED with exit status $status!!!!\n";
+ }
+
+ if ( -e "core" ) {
+ print STDERR "$program dumped core!!!!\n";
+ }
+ if ( ! -e $log ) {
+ print STDERR "No log file (log/$program.log) is present\n";
+ } else {
+ if (open (LOG, "<". $log) == 0) {
+ print STDERR "Cannot open log file $log\n";
+ } else {
+ $starting_matched = 0;
+ $ending_matched = 0;
+ $bad_matched = 0;
+ while (<LOG>) {
+ chop;
+ if (m/starting/) {
+ $starting_matched = 1;
+ }
+ if (m/Ending/) {
+ $ending_matched = 1;
+ }
+ if (m/assertion failed|Invalid argument|timeout|Bad file number/) {
+ $bad_matched = 1;
+ }
+ if ($program ne "Cached_Accept_Conn_Test"
+ && m/No such file or directory/) {
+ $bad_matched = 1;
+ }
+ if (m/not supported/) {
+ print STDERR $_, "\n";
+ }
+ }
+ if ($starting_matched == 0) {
+ print STDERR "Error in $program log: no line with 'starting'\n";
+ }
+ if ($ending_matched == 0) {
+ print STDERR "Error in $program log: no line with 'Ending'\n";
+ }
+ if ($bad_matched == 1) {
+ print STDERR "Error in $program log: unexpected output\n";
+ }
+ close (LOG); # ignore errors
+ }
+ }
+
+ if ($remove_exe_after_test == 1) {
+ unlink $program;
+ }
+}
+
+$ACE_BUILD_COMPONENTS=`$ACE_ROOT/bin/ace_components --ace`;
+$OTHER = 1;
+if (grep {/ Other /} $ACE_BUILD_COMPONENTS) {
+ $OTHER = 0;
+}
+$TOKEN = 1;
+if (grep {/ Token /} $ACE_BUILD_COMPONENTS) {
+ $TOKEN = 0;
+}
+$netsvcs_main = 1;
+if (-f "../netsvcs/servers/main" ) {
+ $netsvcs_main = 0;
+}
+$libDLL_Test = 1;
+if (-f "libDLL_Test.so" ) {
+ $libDLL_Test = 0;
+}
+
+# Testing for this flag always disables the test.
+$DISABLED = 0;
+
+# @@ Can we obtain reasonable values for this features?
+$chorus = 0;
+$LynxOS = 0;
+$Unicos = 0;
+
+if ($chorus eq "" || $chorus == 0) {
+ if (!defined $ENV{'LOGNAME'}) {
+ $user=`whoami`;
+ } else {
+ $user = $ENV{'LOGNAME'};
+ }
+ $start_test_resources=`ipcs | egrep $user`;
+}
+
+$ace_version=`head -1 ../VERSION | sed -e 's/.*version \\([0-9.]*\\).*\$/\\1/'`;
+chop $ace_version;
+
+print "Starting ACE version $ace_version tests . . .\n";
+open (LIST, '<run_tests.lst')
+ || die "Can't read program list\n";
+PROGRAM: while (<LIST>) {
+ chop;
+ local @fields = split (/\//, $_);
+ local $program = $fields[$#fields];
+
+
+ for ($i = 0; $i < $#fields; $i++) {
+ $var = $fields[$i];
+# print "var = $var -> $program\n";
+ local $e = $$var;
+ if ($e == 1) {
+ print "Skipping $program on this platform\n";
+ next PROGRAM;
+ }
+ }
+ run $program;
+}
+close (LIST)
+ || die "Can't close program list\n";
+print "Finished ACE version $ace_version tests.\n";
+
+unlink "ace_pipe_name";
+unlink "pattern";
+unlink "$tmp/ace_temp_file";
+# unlink "$tmp/ace_temp_file*"; # How to make this work?
+# unlink "$tmp/Naming_Test*";
+
+if ($chorus eq "" || $chorus == 0) {
+ $end_test_resources=`ipcs | egrep $user`;
+ if ("$start_test_resources" ne "$end_test_resources") {
+ print "WARNING: the ACE tests _may_ have leaked OS resources!\n";
+ print "$end_test_resources";
+ }
+}
+
+exit 0;
diff --git a/tests/run_tests.sh b/tests/run_tests.sh
index 27846b9dc19..a0ebb9dfaa8 100755
--- a/tests/run_tests.sh
+++ b/tests/run_tests.sh
@@ -66,12 +66,12 @@ fi
####
target=
run_command=
-chorus=
+chorus=1
if [ $# -eq 1 ]; then
target=$1
if rsh $target help | head -1 | egrep CHORUS > /dev/null; then
run_command=arun
- chorus=1
+ chorus=
else
#### Only support Chorus/MVME, for now.
echo $0: host $1 does not appear to be Chorus/MVME: not supported.
@@ -95,7 +95,7 @@ run()
fi
echo "running $1"
- if [ "$chorus" ]; then
+ if [ -z "$chorus" ]; then
#### Assumes that the PATH has been set on the target.
rsh $target $run_command $1
else
@@ -123,12 +123,14 @@ run()
fi
}
+LynxOS=1
if [ -x /bin/uname -a `uname -s` = 'LynxOS' ]; then
- LynxOS=1
+ LynxOS=
fi
+Unicos=1
if [ -x /bin/uname -a `uname -s` = 'unicos' ]; then
- Unicos=1
+ Unicos=
fi
ace_version=`head -1 ../VERSION | sed 's/.*version \([0-9.]*\).*/\1/'`
@@ -142,107 +144,51 @@ ACE_BUILD_COMPONENTS=`$ACE_ROOT/bin/ace_components --ace`
OTHER=`echo $ACE_BUILD_COMPONENTS | egrep ' Other '`
TOKEN=`echo $ACE_BUILD_COMPONENTS | egrep ' Token '`
+libDLL_Test=
+if [ -f libDLL_Test.so ]; then
+ libDLL_Test=1
+fi
+
+netsvcs_main=
+if [ -f ../netsvcs/servers/main ]; then
+ netsvcs_main=1
+fi
+
+# Testing for this flag always disables the test
+DISABLED=1
+
echo "Starting ACE version $ace_version tests . . ."
mv -f "$compilation_log" "$compilation_log.bak" > /dev/null 2>&1
-run Basic_Types_Test
-test $chorus || run Env_Value_Test # tests Env_Value_T and Process
-run Atomic_Op_Test # tests Atomic_Op
-run CDR_Test # tests ACE_OutputCDR and ACE_InputCDR
-run Semaphore_Test # tests ACE_Thread_Semaphore
-run TSS_Test # tests ACE_Task, ACE_Mutex, ACE_Guard
-run Timeprobe_Test # tests ACE_Timeprobes
-run Time_Value_Test # tests Time_Value
-run High_Res_Timer_Test # tests High_Res_Timer
-run SString_Test # tests ACE_CString and ACE_SString
-run Collection_Test # tests ACE Collection classes
-test $Unicos || test -f libDLL_Test.so && run DLL_Test # tests ACE_DLL class
-# Naming_Test: UNICOS fails due to feature not supported
-test $OTHER && \
- (test $chorus || test $LynxOS || test $Unicos || run Naming_Test) # tests ACE_Naming_Context, ACE_WString
-
-run Handle_Set_Test # tests ACE_Handle_Set
-run OrdMultiSet_Test # tests ACE_Ordered_MultiSet
-# Mem_Map_Test: UNICOS fails due to feature not supported
-test $chorus || test $Unicos || run Mem_Map_Test # tests ACE_Mem_Map
-
-run Malloc_Test # tests ACE_Malloc with ACE_MMAP_Memory_Pool and ACE_Process_Mutex
-# SV_Shared_Memory_Test: UNICOS fails due to feature not supported
-test $Unicos || run SV_Shared_Memory_Test # tests ACE_SV_Shared_Memory, fork
-# MM_Shared_Memory_Test: UNICOS fails due to feature not supported
-test $chorus || test $Unicos || run MM_Shared_Memory_Test # tests ACE_Shared_Memory_MM
-
-run Sigset_Ops_Test # tests ACE_sigset*() functions
-
-run Timer_Queue_Test # tests ACE_Event_Handler, ACE_Timer_Queue
-run MT_Reactor_Timer_Test # tests ACE_Reactor's timer mechanism.
-
-run SOCK_Connector_Test # tests ACE_SOCK_Connector
-run SOCK_Send_Recv_Test # tests ACE_SOCK_Stream
-
-run Task_Test # tests ACE_Thread_Manager, ACE_Task
-# Thread_Manager_Test: UNICOS fails due to no pthread_kill nor pthread_cancel
-test $Unicos || run Thread_Manager_Test # tests ACE_Thread_Manager, ACE_Task
-run Thread_Pool_Test # tests ACE_Thread_Manager, ACE_Task
-run Future_Test # tests ACE_Thread_Manager, ACE_Task, ACE_Future
-run Future_Set_Test # tests ACE_Thread_Manager, ACE_Task, ACE_Future_Set
-run RB_Tree_Test # tests ACE_RB_Tree, ACE_RB_Tree_Iterator
-run Reactors_Test # tests ACE_Task, ACE_Mutex, ACE_Reactor
-run Reactor_Exceptions_Test # tests ACE_Reactor and C++ exceptions
-run Reactor_Notify_Test # tests ACE_Reactor's notify() method, ACE_Task
-run Reactor_Timer_Test # tests ACE_Event_Handler, ACE_Reactor
-# test $OTHER && run Thread_Pool_Reactor_Test # tests ACE_TP_Reactor, ACE_Select_Reactor, ACE_Acceptor...
-test $chorus || run Reactor_Performance_Test # tests ACE_Event_Handler, ACE_Reactor
-run Notify_Performance_Test # tests ACE_Event_Handler, ACE_Reactor
-run Reader_Writer_Test # tests ACE_Thread_Manager, ACE_Mutex
-test $chorus || run Priority_Reactor_Test # tests ACE_Priority_Reactor, ACE_Acceptor/ACE_Connector...
-test $chorus || run SOCK_Test # tests ACE_Thread_Manager, ACE_SOCK_SAP
-test $chorus || run MT_SOCK_Test # tests ACE_Thread_Manager, ACE_Acceptor/ACE_Connector
-
-# ifdef ACE_HAS_STREAM_PIPES
-run SPIPE_Test # tests ACE_SPIPE_Acceptor/ACE_Connector, ACE_Thread_Manager
-run UPIPE_SAP_Test # tests ACE_UPIPE, ACE_Thread, ACE_Thread_Manager
-
-run Barrier_Test # tests ACE_Service_Config, ACE_Barrier
-run Svc_Handler_Test # tests ACE_Service_Config buffering and ACE_FILE_IO
-run Buffer_Stream_Test # tests ACE_Service_Config, ACE_Stream (ACE_Module, ACE_Task, ACE_Message_Queue)
-run Priority_Buffer_Test # tests ACE_Service_Config, ACE_Message_Queue
-run Dynamic_Priority_Test # tests ACE_ACE_Message_Queue, ACE_Dynamic_Message_Queue
-run Recursive_Mutex_Test # tests ACE_Service_Config, ACE_Recursive_Thread_Mutex
-run Reverse_Lock_Test # tests ACE_Reverse_Lock
-
-# Time_Service_Test: UNICOS fails dlopen() - no shared libs on UNICOS
-if [ -f ../netsvcs/servers/main ]; then
- test $TOKEN && (test $chorus || test $Unicos || run Time_Service_Test) # tests libnetsvcs
-fi
-# Tokens_Test: UNICOS fails dlopen() - no shared libs on UNICOS
-test $TOKEN && (test $chorus || test $Unicos || run Tokens_Test) # tests ACE_Token
-
-run Cache_Map_Manager_Test # tests ACE_Cache_Map_Manager and ACE_Hash_Cache_Manager and caching features.
-run Cached_Conn_Test # tests connection management features (with OneShot Acceptor).
-run Cached_Accept_Conn_Test # tests connection management features (with regular Acceptor).
-
-run Map_Manager_Test # tests ACE_Map Manager and ACE_Hash_Map_Manager + Forward and Reverse Map Iterators.
-run Hash_Map_Manager_Test # tests ACE_Hash_Map_Manager + Forward and Reverse Map Iterators.
-run Hash_Map_Bucket_Iterator_Test # tests ACE_Hash Map Bucket iterator.
-run Map_Test # tests ACE_Map + Forward and Reverse Map Iterators.
-run Message_Queue_Notifications_Test # tests ACE_Message_Queue + ACE_Reactor
-test $chorus || run Message_Queue_Test # tests ACE_Message_Queue + Forward and Reverse Message Queue Iterators.
-test $chorus || run Simple_Message_Block_Test # tests ACE_Message_Block
-test $chorus || run Message_Block_Test # tests ACE_Message_Block and ACE_Message_Queue
-test $chorus || run Pipe_Test # tests ACE_Pipe
-test $chorus || run Process_Mutex_Test # tests ACE_Process_Mutex
-test $chorus || run Thread_Mutex_Test # tests ACE_Thread_Process_Mutex
-test $chorus || run Process_Strategy_Test # tests ACE_ACE_Strategy_Acceptor
-run Service_Config_Test # tests ACE_Service_Config
-# Priority_Task_Test: UNICOS fails due to getprio - feature not supported
-test $Unicos || run Priority_Task_Test # tests ACE_Task with priorities
-run IOStream_Test # tests ACE_IOStream and ACE_SOCK_Stream
-run Enum_Interfaces_Test # tests ACE_ACE::get_ip_interfaces()
-test $chorus || run Upgradable_RW_Test # tests ACE_RW locks
-test $chorus || run Conn_Test # tests ACE_Thread_Manager, ACE_Acceptor/ACE_Connector, ACE_SOCK_SAP
-# run New_Fail_Test # tests correct ACE_NEW[_RETURN]
+# Limit the amount of memory required by the tests to 64Mb
+ulimit -d 65536
+
+while read i; do
+
+ case $i in
+ */*)
+ p=`dirname $i | sed 's%/% \&\& test $%g'`;
+ precond="\$$p";
+ test=`basename $i`;
+ ;;
+ *)
+ precond="";
+ test=$i;
+ ;;
+ esac
+
+# echo =****= $precond ===== $test;
+
+ if test -z "$precond"; then
+ run $test;
+ elif eval test $precond; then
+ run $test;
+ else
+ echo Skipping $test on this platform;
+ fi
+
+done <run_tests.lst
echo "Finished ACE version $ace_version tests."