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