#!/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/. if test -z $1 then echo "usage: $0 " exit 1 fi cd $1/lib ABS_LIB=$PWD cd - export DYLD_LIBRARY_PATH=${ABS_LIB}:${DYLD_LIBRARY_PATH} export LD_LIBRARY_PATH=${ABS_LIB}:${LD_LIBRARY_PATH} export PATH=${ABS_LIB}:${PATH} # # 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 #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) #multiwait - fails on Linux 64bit since NSPR v 4.4 from 2004. #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 # # all of the following were disabled in 2019 when reenabling CI tests, # because they failed on at least one of the platforms: # # cltsrv # cvar # gethost # getproto # layer # logfile # nameshm1 # nblayer # nonblock # ntioto # op_2long # parent # provider # ranfile # socket # sockopt # vercheck #LOGFILE=${NSPR_TEST_LOGFILE:-$NULL_DEVICE} LOGFILE=nspr-test.log # # Tests run on all platforms # TESTS=" abstract accept acceptread acceptreademu affinity alarm anonfm atomic attach bigfile cleanup concur cvar2 dlltest dtoa errcodes exit fdcach fileio foreign formattm fsync i2l initclk inrval instrumt intrio intrupt io_timeout ioconthr join joinkk joinku joinuk joinuu lazyinit libfilename lltest lock lockfile logger many_cv ntoh op_excl op_filnf op_filok op_nofil parsetm peek perf pipeping pipeping2 pipeself poll_nm poll_to pollable prftest prfz primblok prpollml pushtop 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 sockping sprintf stack stdio str2addr strod switch system testbit testfile threads timemac timetest tpd udpsrv 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 (`date +%T`)" 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 (`date +%T`)" 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; if [ $rval -ne 0 ]; then cat ${LOGFILE} fi printf "END\t\t\t`date`\n" exit $rval