зеркало из https://github.com/mozilla/pjs.git
270 строки
5.0 KiB
Bash
270 строки
5.0 KiB
Bash
#!/bin/ksh
|
|
#
|
|
# ***** BEGIN LICENSE BLOCK *****
|
|
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
|
#
|
|
# The contents of this file are subject to the Mozilla Public License Version
|
|
# 1.1 (the "License"); you may not use this file except in compliance with
|
|
# the License. You may obtain a copy of the License at
|
|
# http://www.mozilla.org/MPL/
|
|
#
|
|
# Software distributed under the License is distributed on an "AS IS" basis,
|
|
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
|
# for the specific language governing rights and limitations under the
|
|
# License.
|
|
#
|
|
# The Original Code is the Netscape Portable Runtime (NSPR).
|
|
#
|
|
# The Initial Developer of the Original Code is
|
|
# Netscape Communications Corporation.
|
|
# Portions created by the Initial Developer are Copyright (C) 1999-2000
|
|
# the Initial Developer. All Rights Reserved.
|
|
#
|
|
# Contributor(s):
|
|
#
|
|
# Alternatively, the contents of this file may be used under the terms of
|
|
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
|
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
|
# in which case the provisions of the GPL or the LGPL are applicable instead
|
|
# of those above. If you wish to allow use of your version of this file only
|
|
# under the terms of either the GPL or the LGPL, and not to allow others to
|
|
# use your version of this file under the terms of the MPL, indicate your
|
|
# decision by deleting the provisions above and replace them with the notice
|
|
# and other provisions required by the GPL or the LGPL. If you do not delete
|
|
# the provisions above, a recipient may use your version of this file under
|
|
# the terms of any one of the MPL, the GPL or the LGPL.
|
|
#
|
|
# ***** END LICENSE BLOCK *****
|
|
|
|
#
|
|
# 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
|