summaryrefslogtreecommitdiffstats
path: root/security/nss/tests/jssqa
diff options
context:
space:
mode:
Diffstat (limited to 'security/nss/tests/jssqa')
-rwxr-xr-xsecurity/nss/tests/jssqa220
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"