forked from mozilla/gecko-dev
-
Notifications
You must be signed in to change notification settings - Fork 2
/
jssqa
executable file
·220 lines (182 loc) · 6.65 KB
/
jssqa
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
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"