|
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" |