nsprpub/pr/tests/runy2ktests.ksh

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/nsprpub/pr/tests/runy2ktests.ksh	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,237 @@
     1.4 +#!/bin/ksh
     1.5 +# 
     1.6 +# This Source Code Form is subject to the terms of the Mozilla Public
     1.7 +# License, v. 2.0. If a copy of the MPL was not distributed with this
     1.8 +# file, You can obtain one at http://mozilla.org/MPL/2.0/.
     1.9 +
    1.10 +#
    1.11 +# runy2ktests.ksh
    1.12 +#	Set system clock to Y2K dates of interest and run the Y2K tests.
    1.13 +#	Needs root/administrator privilege
    1.14 +#
    1.15 +# WARNING: Because this script needs to be run with root/administrator
    1.16 +#	privilege, thorough understanding of the script and extreme
    1.17 +#	caution are urged.
    1.18 +#
    1.19 +
    1.20 +#
    1.21 +# SECTION I
    1.22 +#	Define variables
    1.23 +#
    1.24 +
    1.25 +SYSTEM_INFO=`uname -a`
    1.26 +OS_ARCH=`uname -s`
    1.27 +if [ $OS_ARCH = "Windows_NT" ] || [ $OS_ARCH = "Windows_95" ]
    1.28 +then
    1.29 +	NULL_DEVICE=nul
    1.30 +else
    1.31 +	NULL_DEVICE=/dev/null
    1.32 +fi
    1.33 +
    1.34 +#
    1.35 +# Test dates for NSPR Y2K tests
    1.36 +#
    1.37 +Y2KDATES="	123123591998.55
    1.38 +			090923591999.55
    1.39 +			123123591999.55
    1.40 +			022823592000.55
    1.41 +			022923592000.55
    1.42 +			123123592000.55"
    1.43 +
    1.44 +Y2KDATES_AIX="	12312359.5598
    1.45 +				09092359.5599
    1.46 +				12312359.5599
    1.47 +				02282359.5500
    1.48 +				02292359.5500
    1.49 +				12312359.5500"
    1.50 +
    1.51 +Y2KDATES_HPUX="	123123591998
    1.52 +				090923591999
    1.53 +				123123591999
    1.54 +				022823592000
    1.55 +				022923592000
    1.56 +				123123592000"
    1.57 +
    1.58 +Y2KDATES_MKS="	1231235998.55
    1.59 +				0909235999.55
    1.60 +				1231235999.55
    1.61 +				0228235900.55
    1.62 +				0229235900.55
    1.63 +				1231235900.55"
    1.64 +
    1.65 +#
    1.66 +# NSPR Y2K tests
    1.67 +#
    1.68 +Y2KTESTS="
    1.69 +y2k		\n
    1.70 +y2ktmo	\n
    1.71 +y2k		\n
    1.72 +../runtests.ksh"
    1.73 +
    1.74 +Y2KTESTS_HPUX="
    1.75 +y2k			\n
    1.76 +y2ktmo -l 60\n
    1.77 +y2k			\n
    1.78 +../runtests.ksh"
    1.79 +
    1.80 +#
    1.81 +# SECTION II
    1.82 +#	Define functions
    1.83 +#
    1.84 +
    1.85 +save_date()
    1.86 +{
    1.87 +	case $OS_ARCH in
    1.88 +	AIX)
    1.89 +		SAVED_DATE=`date "+%m%d%H%M.%S%y"`
    1.90 +	;;
    1.91 +	HP-UX)
    1.92 +		SAVED_DATE=`date "+%m%d%H%M%Y"`
    1.93 +	;;
    1.94 +	Windows_NT)
    1.95 +		SAVED_DATE=`date "+%m%d%H%M%y.%S"`
    1.96 +	;;
    1.97 +	Windows_95)
    1.98 +		SAVED_DATE=`date "+%m%d%H%M%y.%S"`
    1.99 +	;;
   1.100 +	*)
   1.101 +		SAVED_DATE=`date "+%m%d%H%M%Y.%S"`
   1.102 +	;;
   1.103 +	esac
   1.104 +}
   1.105 +
   1.106 +set_date()
   1.107 +{
   1.108 +	case $OS_ARCH in
   1.109 +	Windows_NT)
   1.110 +#
   1.111 +# The date command in MKS Toolkit releases 5.1 and 5.2
   1.112 +# uses the current DST status for the date we want to
   1.113 +# set the system clock to.  However, the DST status for
   1.114 +# that date may be different from the current DST status.
   1.115 +# We can work around this problem by invoking the date
   1.116 +# command with the same date twice.
   1.117 +#
   1.118 +		date "$1" > $NULL_DEVICE
   1.119 +		date "$1" > $NULL_DEVICE
   1.120 +	;;
   1.121 +	*)
   1.122 +		date "$1" > $NULL_DEVICE
   1.123 +	;;
   1.124 +	esac
   1.125 +}
   1.126 +
   1.127 +restore_date()
   1.128 +{
   1.129 +	set_date "$SAVED_DATE"
   1.130 +}
   1.131 +
   1.132 +savedate()
   1.133 +{
   1.134 +	case $OS_ARCH in
   1.135 +	AIX)
   1.136 +		SAVED_DATE=`date "+%m%d%H%M.%S%y"`
   1.137 +	;;
   1.138 +	HP-UX)
   1.139 +		SAVED_DATE=`date "+%m%d%H%M%Y"`
   1.140 +	;;
   1.141 +	Windows_NT)
   1.142 +		SAVED_DATE=`date "+%m%d%H%M%y.%S"`
   1.143 +	;;
   1.144 +	Windows_95)
   1.145 +		SAVED_DATE=`date "+%m%d%H%M%y.%S"`
   1.146 +	;;
   1.147 +	*)
   1.148 +		SAVED_DATE=`date "+%m%d%H%M%Y.%S"`
   1.149 +	;;
   1.150 +	esac
   1.151 +}
   1.152 +
   1.153 +set_y2k_test_parameters()
   1.154 +{
   1.155 +#
   1.156 +# set dates
   1.157 +#
   1.158 +	case $OS_ARCH in
   1.159 +	AIX)
   1.160 +		DATES=$Y2KDATES_AIX
   1.161 +	;;
   1.162 +	HP-UX)
   1.163 +		DATES=$Y2KDATES_HPUX
   1.164 +	;;
   1.165 +	Windows_NT)
   1.166 +		DATES=$Y2KDATES_MKS
   1.167 +	;;
   1.168 +	Windows_95)
   1.169 +		DATES=$Y2KDATES_MKS
   1.170 +	;;
   1.171 +	*)
   1.172 +		DATES=$Y2KDATES
   1.173 +	;;
   1.174 +	esac
   1.175 +
   1.176 +#
   1.177 +# set tests
   1.178 +#
   1.179 +	case $OS_ARCH in
   1.180 +	HP-UX)
   1.181 +		TESTS=$Y2KTESTS_HPUX
   1.182 +	;;
   1.183 +	*)
   1.184 +		TESTS=$Y2KTESTS
   1.185 +	;;
   1.186 +	esac
   1.187 +}
   1.188 +
   1.189 +#
   1.190 +# runtests:
   1.191 +#	-	runs each test in $TESTS after setting the
   1.192 +#		system clock to each date in $DATES
   1.193 +#
   1.194 +
   1.195 +runtests()
   1.196 +{
   1.197 +for newdate in ${DATES}
   1.198 +do
   1.199 +	set_date $newdate
   1.200 +	echo $newdate
   1.201 +	echo "BEGIN\t\t\t`date`"
   1.202 +	echo "Date\t\t\t\t\tTest\t\t\tResult"
   1.203 +	echo $TESTS | while read prog
   1.204 +	do
   1.205 +		echo "`date`\t\t\c"
   1.206 +		echo "$prog\c"
   1.207 +		./$prog >> ${LOGFILE} 2>&1
   1.208 +		if [ 0 = $? ] ; then
   1.209 +			echo "\t\t\tPassed";
   1.210 +		else
   1.211 +			echo "\t\t\tFAILED";
   1.212 +		fi;
   1.213 +	done
   1.214 +	echo "END\t\t\t`date`\n"
   1.215 +done
   1.216 +
   1.217 +}
   1.218 +
   1.219 +#
   1.220 +# SECTION III
   1.221 +#	Run tests
   1.222 +#
   1.223 +
   1.224 +LOGFILE=${NSPR_TEST_LOGFILE:-$NULL_DEVICE}
   1.225 +OBJDIR=`basename $PWD`
   1.226 +echo "\nNSPR Year 2000 Test Results - $OBJDIR\n"
   1.227 +echo "SYSTEM:\t\t\t${SYSTEM_INFO}"
   1.228 +echo "NSPR_TEST_LOGFILE:\t${LOGFILE}\n"
   1.229 +
   1.230 +
   1.231 +save_date
   1.232 +
   1.233 +#
   1.234 +# Run NSPR Y2k and standard tests
   1.235 +#
   1.236 +
   1.237 +set_y2k_test_parameters
   1.238 +runtests
   1.239 +
   1.240 +restore_date

mercurial