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