| #!/bin/sh |
| # |
| # This Source Code Form is subject to the terms of the Mozilla Public |
| # License, v. 2.0. If a copy of the MPL was not distributed with this |
| # file, You can obtain one at http://mozilla.org/MPL/2.0/. |
| |
| # |
| # runtests.sh |
| # Bourne shell script for nspr tests |
| # |
| |
| SYSTEM_INFO=`uname -a` |
| OS_ARCH=`uname -s` |
| |
| if [ $OS_ARCH = "Windows_NT" ] || [ $OS_ARCH = "OS/2" ] |
| then |
| NULL_DEVICE=nul |
| else |
| NULL_DEVICE=/dev/null |
| FILE_D=`ulimit -n` |
| if [ $FILE_D -lt 512 ] |
| then |
| ulimit -n 512 |
| fi |
| fi |
| |
| # |
| # Irrevelant tests |
| # |
| #bug1test - used to demonstrate a bug on NT |
| #bigfile2 - requires 4Gig file creation. See BugZilla #5451 |
| #bigfile3 - requires 4Gig file creation. See BugZilla #5451 |
| #dbmalloc - obsolete; originally for testing debug version of nspr's malloc |
| #dbmalloc1 - obsolete; originally for testing debug version of nspr's malloc |
| #depend - obsolete; used to test a initial spec for library dependencies |
| #dceemu - used to tests special functions in NSPR for DCE emulation |
| #ipv6 - IPV6 not in use by NSPR clients |
| #mbcs - tests use of multi-byte charset for filenames. See BugZilla #25140 |
| #sproc_ch - obsolete; sproc-based tests for Irix |
| #sproc_p - obsolete; sproc-based tests for Irix |
| #io_timeoutk - obsolete; subsumed in io_timeout |
| #io_timeoutu - obsolete; subsumed in io_timeout |
| #prftest1 - obsolete; subsumed by prftest |
| #prftest2 - obsolete; subsumed by prftest |
| #prselect - obsolete; PR_Select is obsolete |
| #select2 - obsolete; PR_Select is obsolete |
| #sem - obsolete; PRSemaphore is obsolete |
| #stat - for OS2? |
| #suspend - private interfaces PR_SuspendAll, PR_ResumeAll, etc.. |
| #thruput - needs to be run manually as client/server |
| #time - used to measure time with native calls and nspr calls |
| #tmoacc - should be run with tmocon |
| #tmocon - should be run with tmoacc |
| #op_noacc - limited use |
| #yield - limited use for PR_Yield |
| |
| # |
| # Tests not run (but should) |
| # |
| |
| #forktest (failed on IRIX) |
| #nbconn - fails on some platforms |
| #poll_er - fails on some platforms? limited use? |
| #prpoll - the bad-FD test needs to be moved to a different test |
| #sleep - specific to OS/2 |
| |
| LOGFILE=${NSPR_TEST_LOGFILE:-$NULL_DEVICE} |
| |
| # |
| # Tests run on all platforms |
| # |
| |
| TESTS=" |
| accept |
| acceptread |
| acceptreademu |
| affinity |
| alarm |
| anonfm |
| atomic |
| attach |
| bigfile |
| cleanup |
| cltsrv |
| concur |
| cvar |
| cvar2 |
| dlltest |
| dtoa |
| errcodes |
| exit |
| fdcach |
| fileio |
| foreign |
| formattm |
| fsync |
| gethost |
| getproto |
| i2l |
| initclk |
| inrval |
| instrumt |
| intrio |
| intrupt |
| io_timeout |
| ioconthr |
| join |
| joinkk |
| joinku |
| joinuk |
| joinuu |
| layer |
| lazyinit |
| libfilename |
| lltest |
| lock |
| lockfile |
| logfile |
| logger |
| many_cv |
| multiwait |
| nameshm1 |
| nblayer |
| nonblock |
| ntioto |
| ntoh |
| op_2long |
| op_excl |
| op_filnf |
| op_filok |
| op_nofil |
| parent |
| parsetm |
| peek |
| perf |
| pipeping |
| pipeping2 |
| pipeself |
| poll_nm |
| poll_to |
| pollable |
| prftest |
| prfz |
| primblok |
| provider |
| prpollml |
| pushtop |
| ranfile |
| randseed |
| reinit |
| rwlocktest |
| sel_spd |
| selct_er |
| selct_nm |
| selct_to |
| selintr |
| sema |
| semaerr |
| semaping |
| sendzlf |
| server_test |
| servr_kk |
| servr_uk |
| servr_ku |
| servr_uu |
| short_thread |
| sigpipe |
| socket |
| sockopt |
| sockping |
| sprintf |
| stack |
| stdio |
| str2addr |
| strod |
| switch |
| system |
| testbit |
| testfile |
| threads |
| timemac |
| timetest |
| tpd |
| udpsrv |
| vercheck |
| version |
| writev |
| xnotify |
| zerolen" |
| |
| rval=0 |
| |
| |
| # |
| # When set, value of the environment variable TEST_TIMEOUT is the maximum |
| # time (secs) allowed for a test program beyond which it is terminated. |
| # If TEST_TIMEOUT is not set or if it's value is 0, then test programs |
| # don't timeout. |
| # |
| # Running runtests.ksh under MKS toolkit on NT, 95, 98 does not cause |
| # timeout detection correctly. For these platforms, do not attempt timeout |
| # test. (lth). |
| # |
| # |
| |
| OS_PLATFORM=`uname` |
| OBJDIR=`basename $PWD` |
| printf "\nNSPR Test Results - $OBJDIR\n\n" |
| printf "BEGIN\t\t\t`date`\n" |
| printf "NSPR_TEST_LOGFILE\t${LOGFILE}\n\n" |
| printf "Test\t\t\tResult\n\n" |
| if [ $OS_PLATFORM = "Windows_95" ] || [ $OS_PLATFORM = "Windows_98" ] || [ $OS_PLATFORM = "Windows_NT" ] || [ $OS_PLATFORM = "OS/2" ] ; then |
| for prog in $TESTS |
| do |
| printf "$prog" |
| printf "\nBEGIN TEST: $prog\n\n" >> ${LOGFILE} 2>&1 |
| ./$prog >> ${LOGFILE} 2>&1 |
| if [ 0 = $? ] ; then |
| printf "\t\t\tPassed\n"; |
| else |
| printf "\t\t\tFAILED\n"; |
| rval=1 |
| fi; |
| printf "\nEND TEST: $prog\n\n" >> ${LOGFILE} 2>&1 |
| done |
| else |
| for prog in $TESTS |
| do |
| printf "$prog" |
| printf "\nBEGIN TEST: $prog\n\n" >> ${LOGFILE} 2>&1 |
| export test_rval |
| ./$prog >> ${LOGFILE} 2>&1 & |
| test_pid=$! |
| sleep_pid=0 |
| if test -n "$TEST_TIMEOUT" && test "$TEST_TIMEOUT" -gt 0 |
| then |
| (sleep $TEST_TIMEOUT; kill $test_pid >/dev/null 2>&1 ) & |
| sleep_pid=$! |
| fi |
| wait $test_pid |
| test_rval=$? |
| [ $sleep_pid -eq 0 ] || kill $sleep_pid >/dev/null 2>&1 |
| if [ 0 = $test_rval ] ; then |
| printf "\t\t\tPassed\n"; |
| else |
| printf "\t\t\tFAILED\n"; |
| rval=1 |
| fi; |
| printf "\nEND TEST: $prog\n\n" >> ${LOGFILE} 2>&1 |
| done |
| fi; |
| |
| printf "END\t\t\t`date`\n" |
| exit $rval |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |