tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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