diff options
author | coryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1999-08-11 00:08:30 +0000 |
---|---|---|
committer | coryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1999-08-11 00:08:30 +0000 |
commit | f7e87f072108cf485f44bbec076c6217ffbd3562 (patch) | |
tree | cf14cc9da106b1f7241667f86e486b19e8368fd7 | |
parent | d738068a4e5cb33167353c9765b183b8a70f9327 (diff) | |
download | ATCD-f7e87f072108cf485f44bbec076c6217ffbd3562.tar.gz |
ChangeLogTag:Tue Aug 10 19:07:32 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-rw-r--r-- | ChangeLog-99b | 23 | ||||
-rwxr-xr-x | bin/auto_compile | 36 | ||||
-rwxr-xr-x | bin/run_all.pl | 215 | ||||
-rw-r--r-- | bin/run_all_list.pm | 8 | ||||
-rw-r--r-- | tests/run_tests.lst | 73 | ||||
-rwxr-xr-x | tests/run_tests.pl | 185 | ||||
-rwxr-xr-x | tests/run_tests.sh | 150 |
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." |