diff options
Diffstat (limited to 'security/nss/tests/jssqa')
-rwxr-xr-x | security/nss/tests/jssqa | 220 |
1 files changed, 220 insertions, 0 deletions
diff --git a/security/nss/tests/jssqa b/security/nss/tests/jssqa new file mode 100755 index 000000000..d5356b9e8 --- /dev/null +++ b/security/nss/tests/jssqa @@ -0,0 +1,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" |