/security/nss/tests/jssqa
http://github.com/zpao/v8monkey · Shell · 220 lines · 125 code · 38 blank · 57 comment · 7 complexity · 023ee050a91ae82c0ed18ae6568343e5 MD5 · raw file
- #! /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"