123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238 |
- #!/bin/ksh
- #
- # 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/.
- #
- # runy2ktests.ksh
- # Set system clock to Y2K dates of interest and run the Y2K tests.
- # Needs root/administrator privilege
- #
- # WARNING: Because this script needs to be run with root/administrator
- # privilege, thorough understanding of the script and extreme
- # caution are urged.
- #
- #
- # SECTION I
- # Define variables
- #
- SYSTEM_INFO=`uname -a`
- OS_ARCH=`uname -s`
- if [ $OS_ARCH = "Windows_NT" ] || [ $OS_ARCH = "Windows_95" ]
- then
- NULL_DEVICE=nul
- else
- NULL_DEVICE=/dev/null
- fi
- #
- # Test dates for NSPR Y2K tests
- #
- Y2KDATES=" 123123591998.55
- 090923591999.55
- 123123591999.55
- 022823592000.55
- 022923592000.55
- 123123592000.55"
- Y2KDATES_AIX=" 12312359.5598
- 09092359.5599
- 12312359.5599
- 02282359.5500
- 02292359.5500
- 12312359.5500"
- Y2KDATES_HPUX=" 123123591998
- 090923591999
- 123123591999
- 022823592000
- 022923592000
- 123123592000"
- Y2KDATES_MKS=" 1231235998.55
- 0909235999.55
- 1231235999.55
- 0228235900.55
- 0229235900.55
- 1231235900.55"
- #
- # NSPR Y2K tests
- #
- Y2KTESTS="
- y2k \n
- y2ktmo \n
- y2k \n
- ../runtests.ksh"
- Y2KTESTS_HPUX="
- y2k \n
- y2ktmo -l 60\n
- y2k \n
- ../runtests.ksh"
- #
- # SECTION II
- # Define functions
- #
- save_date()
- {
- case $OS_ARCH in
- AIX)
- SAVED_DATE=`date "+%m%d%H%M.%S%y"`
- ;;
- HP-UX)
- SAVED_DATE=`date "+%m%d%H%M%Y"`
- ;;
- Windows_NT)
- SAVED_DATE=`date "+%m%d%H%M%y.%S"`
- ;;
- Windows_95)
- SAVED_DATE=`date "+%m%d%H%M%y.%S"`
- ;;
- *)
- SAVED_DATE=`date "+%m%d%H%M%Y.%S"`
- ;;
- esac
- }
- set_date()
- {
- case $OS_ARCH in
- Windows_NT)
- #
- # The date command in MKS Toolkit releases 5.1 and 5.2
- # uses the current DST status for the date we want to
- # set the system clock to. However, the DST status for
- # that date may be different from the current DST status.
- # We can work around this problem by invoking the date
- # command with the same date twice.
- #
- date "$1" > $NULL_DEVICE
- date "$1" > $NULL_DEVICE
- ;;
- *)
- date "$1" > $NULL_DEVICE
- ;;
- esac
- }
- restore_date()
- {
- set_date "$SAVED_DATE"
- }
- savedate()
- {
- case $OS_ARCH in
- AIX)
- SAVED_DATE=`date "+%m%d%H%M.%S%y"`
- ;;
- HP-UX)
- SAVED_DATE=`date "+%m%d%H%M%Y"`
- ;;
- Windows_NT)
- SAVED_DATE=`date "+%m%d%H%M%y.%S"`
- ;;
- Windows_95)
- SAVED_DATE=`date "+%m%d%H%M%y.%S"`
- ;;
- *)
- SAVED_DATE=`date "+%m%d%H%M%Y.%S"`
- ;;
- esac
- }
- set_y2k_test_parameters()
- {
- #
- # set dates
- #
- case $OS_ARCH in
- AIX)
- DATES=$Y2KDATES_AIX
- ;;
- HP-UX)
- DATES=$Y2KDATES_HPUX
- ;;
- Windows_NT)
- DATES=$Y2KDATES_MKS
- ;;
- Windows_95)
- DATES=$Y2KDATES_MKS
- ;;
- *)
- DATES=$Y2KDATES
- ;;
- esac
- #
- # set tests
- #
- case $OS_ARCH in
- HP-UX)
- TESTS=$Y2KTESTS_HPUX
- ;;
- *)
- TESTS=$Y2KTESTS
- ;;
- esac
- }
- #
- # runtests:
- # - runs each test in $TESTS after setting the
- # system clock to each date in $DATES
- #
- runtests()
- {
- for newdate in ${DATES}
- do
- set_date $newdate
- echo $newdate
- echo "BEGIN\t\t\t`date`"
- echo "Date\t\t\t\t\tTest\t\t\tResult"
- echo $TESTS | while read prog
- do
- echo "`date`\t\t\c"
- echo "$prog\c"
- ./$prog >> ${LOGFILE} 2>&1
- if [ 0 = $? ] ; then
- echo "\t\t\tPassed";
- else
- echo "\t\t\tFAILED";
- fi;
- done
- echo "END\t\t\t`date`\n"
- done
- }
- #
- # SECTION III
- # Run tests
- #
- LOGFILE=${NSPR_TEST_LOGFILE:-$NULL_DEVICE}
- OBJDIR=`basename $PWD`
- echo "\nNSPR Year 2000 Test Results - $OBJDIR\n"
- echo "SYSTEM:\t\t\t${SYSTEM_INFO}"
- echo "NSPR_TEST_LOGFILE:\t${LOGFILE}\n"
- save_date
- #
- # Run NSPR Y2k and standard tests
- #
- set_y2k_test_parameters
- runtests
- restore_date
|