runy2ktests.ksh (3604B)
1 #!/bin/ksh 2 # 3 # This Source Code Form is subject to the terms of the Mozilla Public 4 # License, v. 2.0. If a copy of the MPL was not distributed with this 5 # file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 7 # 8 # runy2ktests.ksh 9 # Set system clock to Y2K dates of interest and run the Y2K tests. 10 # Needs root/administrator privilege 11 # 12 # WARNING: Because this script needs to be run with root/administrator 13 # privilege, thorough understanding of the script and extreme 14 # caution are urged. 15 # 16 17 # 18 # SECTION I 19 # Define variables 20 # 21 22 SYSTEM_INFO=`uname -a` 23 OS_ARCH=`uname -s` 24 if [ $OS_ARCH = "Windows_NT" ] || [ $OS_ARCH = "Windows_95" ] 25 then 26 NULL_DEVICE=nul 27 else 28 NULL_DEVICE=/dev/null 29 fi 30 31 # 32 # Test dates for NSPR Y2K tests 33 # 34 Y2KDATES=" 123123591998.55 35 090923591999.55 36 123123591999.55 37 022823592000.55 38 022923592000.55 39 123123592000.55" 40 41 Y2KDATES_AIX=" 12312359.5598 42 09092359.5599 43 12312359.5599 44 02282359.5500 45 02292359.5500 46 12312359.5500" 47 48 Y2KDATES_HPUX=" 123123591998 49 090923591999 50 123123591999 51 022823592000 52 022923592000 53 123123592000" 54 55 Y2KDATES_MKS=" 1231235998.55 56 0909235999.55 57 1231235999.55 58 0228235900.55 59 0229235900.55 60 1231235900.55" 61 62 # 63 # NSPR Y2K tests 64 # 65 Y2KTESTS=" 66 y2k \n 67 y2ktmo \n 68 y2k \n 69 ../runtests.ksh" 70 71 Y2KTESTS_HPUX=" 72 y2k \n 73 y2ktmo -l 60\n 74 y2k \n 75 ../runtests.ksh" 76 77 # 78 # SECTION II 79 # Define functions 80 # 81 82 save_date() 83 { 84 case $OS_ARCH in 85 AIX) 86 SAVED_DATE=`date "+%m%d%H%M.%S%y"` 87 ;; 88 HP-UX) 89 SAVED_DATE=`date "+%m%d%H%M%Y"` 90 ;; 91 Windows_NT) 92 SAVED_DATE=`date "+%m%d%H%M%y.%S"` 93 ;; 94 Windows_95) 95 SAVED_DATE=`date "+%m%d%H%M%y.%S"` 96 ;; 97 *) 98 SAVED_DATE=`date "+%m%d%H%M%Y.%S"` 99 ;; 100 esac 101 } 102 103 set_date() 104 { 105 case $OS_ARCH in 106 Windows_NT) 107 # 108 # The date command in MKS Toolkit releases 5.1 and 5.2 109 # uses the current DST status for the date we want to 110 # set the system clock to. However, the DST status for 111 # that date may be different from the current DST status. 112 # We can work around this problem by invoking the date 113 # command with the same date twice. 114 # 115 date "$1" > $NULL_DEVICE 116 date "$1" > $NULL_DEVICE 117 ;; 118 *) 119 date "$1" > $NULL_DEVICE 120 ;; 121 esac 122 } 123 124 restore_date() 125 { 126 set_date "$SAVED_DATE" 127 } 128 129 savedate() 130 { 131 case $OS_ARCH in 132 AIX) 133 SAVED_DATE=`date "+%m%d%H%M.%S%y"` 134 ;; 135 HP-UX) 136 SAVED_DATE=`date "+%m%d%H%M%Y"` 137 ;; 138 Windows_NT) 139 SAVED_DATE=`date "+%m%d%H%M%y.%S"` 140 ;; 141 Windows_95) 142 SAVED_DATE=`date "+%m%d%H%M%y.%S"` 143 ;; 144 *) 145 SAVED_DATE=`date "+%m%d%H%M%Y.%S"` 146 ;; 147 esac 148 } 149 150 set_y2k_test_parameters() 151 { 152 # 153 # set dates 154 # 155 case $OS_ARCH in 156 AIX) 157 DATES=$Y2KDATES_AIX 158 ;; 159 HP-UX) 160 DATES=$Y2KDATES_HPUX 161 ;; 162 Windows_NT) 163 DATES=$Y2KDATES_MKS 164 ;; 165 Windows_95) 166 DATES=$Y2KDATES_MKS 167 ;; 168 *) 169 DATES=$Y2KDATES 170 ;; 171 esac 172 173 # 174 # set tests 175 # 176 case $OS_ARCH in 177 HP-UX) 178 TESTS=$Y2KTESTS_HPUX 179 ;; 180 *) 181 TESTS=$Y2KTESTS 182 ;; 183 esac 184 } 185 186 # 187 # runtests: 188 # - runs each test in $TESTS after setting the 189 # system clock to each date in $DATES 190 # 191 192 runtests() 193 { 194 for newdate in ${DATES} 195 do 196 set_date $newdate 197 echo $newdate 198 echo "BEGIN\t\t\t`date`" 199 echo "Date\t\t\t\t\tTest\t\t\tResult" 200 echo $TESTS | while read prog 201 do 202 echo "`date`\t\t\c" 203 echo "$prog\c" 204 ./$prog >> ${LOGFILE} 2>&1 205 if [ 0 = $? ] ; then 206 echo "\t\t\tPassed"; 207 else 208 echo "\t\t\tFAILED"; 209 fi; 210 done 211 echo "END\t\t\t`date`\n" 212 done 213 214 } 215 216 # 217 # SECTION III 218 # Run tests 219 # 220 221 LOGFILE=${NSPR_TEST_LOGFILE:-$NULL_DEVICE} 222 OBJDIR=`basename $PWD` 223 echo "\nNSPR Year 2000 Test Results - $OBJDIR\n" 224 echo "SYSTEM:\t\t\t${SYSTEM_INFO}" 225 echo "NSPR_TEST_LOGFILE:\t${LOGFILE}\n" 226 227 228 save_date 229 230 # 231 # Run NSPR Y2k and standard tests 232 # 233 234 set_y2k_test_parameters 235 runtests 236 237 restore_date