1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220
|
#! /bin/sh
########################################################################
#
# /u/sonmi/bin/jssqa
#
# this script is supposed to automatically run - now a sanity test, later QA for
# JSS on all required Unix and Windows (NT and 2000) platforms
#
# parameters
# ----------
# jssversion (supported: 31, tip)
# builddate (default - today)
#
# options
# -------
# -y answer all questions with y - use at your own risk...ignores warnings
# -s silent (only usefull with -y)
# -h, -? - you guessed right - displays this text
# -d debug
# -f <filename> - write the (error)output to filename
# -cron equivalient to -y -s -d -f $RESULTDIR/$HOST.nssqa
#
########################################################################
O_OPTIONS=ON # accept options (see above for listing)
WIN_WAIT_FOREVER=OFF # don't wait for the NSS testdir
PRODUCT_TO_TEST="JSS"
JSS_NSPR_DIR="/share/builds/components/nspr20/v4.1.2"
JSS_NSS_DIR="/share/builds/components/nss/NSS_3_3_1_RTM"
JSS_NSS_UX_SRC_DIR="nss331/builds/20010928.2.331-RTM/booboo_Solaris8"
JSS_NSS_NT_SRC_DIR="nss331/builds/20010928.2.331-RTM/blowfish_NT4.0_Win95"
JSS_NSS_SRC_DIR=$JSS_NSS_UX_SRC_DIR
NATIVE_FLAG=""
. `dirname $0`/header # utilities, shellfunctions etc, global to NSS and JSS QA
if [ -z "$O_TBX" -o "$O_TBX" != "ON" ] ; then
is_running ${TMP}/jssqa
# checks if the file exists, if yes Exits, if not
# creates to implement a primitive locking mechanism
fi
INTERNAL_TOKEN="NSS Certificate DB"
SIGTEST_INTERNAL_TOKEN="Internal Key Storage Token"
################################ jss_init #########################
#
# Most of the procedure is setting up the test environment.
# set all necessary dir and file variables, set all paths, copy the shared libs
# Put all the shared libraries into a lib directory, <libdir>.
# including the libjss3.so that was built by the build process.
# set LD_LIBRARY PATH and CLASSPATH
# The xpclass.jar produced by the JSS build needs to be in the classpath.
# The classpath must also include the current directory so we can run our test
# programs.
################################################################################
jss_init()
{
Debug "Jss init"
#correct all directories that the header has set...
NTDIST=`echo $NTDIST | sed -e 's/nss/jss/g'`
UXDIST=`echo $UXDIST | sed -e 's/nss/jss/g'`
RESULTDIR=`echo $RESULTDIR | sed -e 's/nss/jss/g'`
mkdir -p ${RESULTDIR} 2>/dev/null
JSS_LOGFILE=${RESULTDIR}/${HOST}.txt
FILENAME=$JSS_LOGFILE
O_FILE=ON
MOZILLA_ROOT=`echo $MOZILLA_ROOT | sed -e 's/nss/jss/g'`
JSS_SAMPLES="$MOZILLA_ROOT/security/jss/samples"
JSS_CLASSPATH=`echo $MOZILLA_ROOT |
sed -e "s/jss$NSSVER.builds/jss$NSSVER\/ships/g" -e "s/mozilla/jss\/${QAYEAR}${BUILDDATE}/"`
Debug "JSS_CLASSPATH=$JSS_CLASSPATH"
Debug "JSS_SAMPLES=$JSS_SAMPLES"
if [ ! -d $JSS_SAMPLES ] ; then
if [ "$O_WIN" = "ON" -a "$WIN_WAIT_FOREVER" = "ON" ]
then
WaitForever $JSS_SAMPLES/TestKeyGen.java 1
else
Exit "Test directory $JSS_SAMPLES does not exist"
fi
fi
PWFILE="$JSS_SAMPLES/passwd"
EMPTYFILE="$JSS_SAMPLES/emptyfile"
rm $PWFILE $EMPTYFILE 2>/dev/null
echo "jss" >$PWFILE
echo "" >$EMPTYFILE
echo "" >>$EMPTYFILE
echo "" >>$EMPTYFILE
INIT_PATH=$PATH
INIT_LD_LIBRARY_PATH=$LD_LIBRARY_PATH
}
jss_mode_init()
{
OBJDIR=`cd ${TESTSCRIPTDIR}/common; gmake objdir_name`
LOCALDIST_BIN=`echo $LOCALDIST_BIN | sed -e 's/nss/jss/g'`
LOCALDIST_LIB=$LOCALDIST_BIN/../lib
debug_dirs
#make testdir/libdir
JSS_LIBDIR=${RESULTDIR}/${HOST}.libdir/${OBJDIR}
mkdir -p ${JSS_LIBDIR} 2>/dev/null
Debug "JSS_LIBDIR=$JSS_LIBDIR"
#Put all the shared libraries into a lib directory
Debug "copy all needed libs to ${JSS_LIBDIR}"
cp $JSS_NSPR_DIR/${OBJDIR}/lib/* ${JSS_LIBDIR}
cp $JSS_NSS_DIR/${OBJDIR}/lib/* ${JSS_LIBDIR}
cp $LOCALDIST_LIB/libjss3.* ${JSS_LIBDIR}
#FIXME uncomment above
if [ $O_DEBUG = ON ] ; then
Debug "ls $JSS_LIBDIR"
ls $JSS_LIBDIR
fi
#LD_LIBRARY_PATH=$INIT_LD_LIBRARY_PATH:${JSS_LIBDIR}
LD_LIBRARY_PATH=${JSS_LIBDIR} #remove to avoid HP coredump
CLASSPATH="$JSS_CLASSPATH/xpclass.jar:."
SHLIB_PATH=${LD_LIBRARY_PATH}
LIBPATH=${LD_LIBRARY_PATH}
PATH=$JSS_NSPR_DIR/${OBJDIR}/bin:$JSS_NSS_DIR/${OBJDIR}//bin:$INIT_PATH
Debug "PATH $PATH"
Debug "LD_LIBRARY_PATH $LD_LIBRARY_PATH"
Debug "CLASSPATH=$CLASSPATH"
export CLASSPATH LD_LIBRARY_PATH SHLIB_PATH LIBPATH
export TESTSCRIPTDIR COMMON
export_dirs
}
################################ jss_test #########################
#
# go into the build tree. cd to mozilla/security/jss/samples.
# Create NSS directories in this directory with modutil and set the password
#
#6. Create an alias for the "java" and "javac" commands. You'll need to set
#it to whatever version of the JDK you used to build on this platform. For
#example,
#alias java /share/builds/components/cms_jdk/AIX/1.3.0/jre/bin/java
#alias javac /share/builds/components/cms_jdk/AIX/1.3.0/bin/javac
# instead $JAVA and $JAVAC
# 7. Compile the tests.
#####################################################################
jss_test()
{
O_FILE=OFF
Debug "JSS main test"
#set -x
cd $JSS_SAMPLES
Debug "Cleaning $JSS_SAMPLES"
rm cert7.db key3.db 2>/dev/null
Debug "echo | modutil -dbdir . -create -force"
echo | modutil -dbdir . -create -force
Debug "modutil returned $?"
modutil -dbdir . -list
Debug "echo | modutil -dbdir . -changepw \"$INTERNAL_TOKEN\" -newpwfile $PWFILE -force"
modutil -dbdir . -changepw "$INTERNAL_TOKEN" -newpwfile $PWFILE -force <$EMPTYFILE
#modutil -dbdir . -changepw "$INTERNAL_TOKEN" -pwfile $PWFILE -newpwfile $PWFILE <$EMPTYFILE
Debug "modutil returned $?"
Debug "$JAVAC TestKeyGen.java"
$JAVAC TestKeyGen.java
Debug "$JAVAC TestKeyGen.java returned $?"
Debug "$JAVAC SigTest.java"
$JAVAC SigTest.java
Debug "$JAVAC SigTest.java returned $?"
echo "Starting new jss test on $HOST"
date
# Run the actual tests
Debug "$JAVA $NATIVE_FLAG TestKeyGen ."
$JAVA $NATIVE_FLAG TestKeyGen .
Debug "$JAVA TestKeyGen returned $?"
Debug "$JAVA $NATIVE_FLAG SigTest . \"$SIGTEST_INTERNAL_TOKEN\""
$JAVA $NATIVE_FLAG SigTest . "$SIGTEST_INTERNAL_TOKEN"
Debug "$JAVA SigTest returned $?"
O_FILE=ON
}
jss_init
jss_mode_init
if [ "$O_CRON" = "ON" -o "$O_WIN" = "ON" ]
then
jss_test >>$JSS_LOGFILE 2>&1
else
jss_test 2>&1 | tee -a $JSS_LOGFILE
fi
BUILD_OPT=1; export BUILD_OPT; Debug "BUILD_OPT $BUILD_OPT"
jss_mode_init
if [ "$O_CRON" = "ON" -o "$O_WIN" = "ON" ]
then
jss_test >>$JSS_LOGFILE 2>&1
else
jss_test 2>&1 | tee -a $JSS_LOGFILE
fi
Exit "jssqa completed. Done `uname -n` $QA_OS_STRING"
|