Imported Upstream version 3.16.3
[platform/upstream/nss.git] / tests / run_niscc.sh
1 #!/bin/bash
2 #
3 # This Source Code Form is subject to the terms of the Mozilla Public
4 # License, v. 2.0. If a copy of the MPL was not distributed with this
5 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
6
7 #
8 # PRIOR TO RUNNING THIS SCRIPT
9 # you should adjust MAIL_COMMAND and QA_LIST
10 #
11 # External dependencies:
12 # - install the NISCC test files, e.g. at /niscc (readonly OK)
13 # - libfaketimeMT because the test certificates have expired
14 # - build environment for building NSS
15 # - gdb to analyze core files
16 # - a command line mail tool (e.g. mailx)
17 # - openssl to combine input PEM files into pkcs#12
18 # - curl for obtaining version information from the web
19 #
20
21 ################################################################################
22 # Print script usage
23 ################################################################################
24 usage()
25 {
26     cat << EOF
27 Usage: $0 [options]
28
29 Test NSS library against NISCC SMIME and TLS testcases.
30
31 Options:
32  -h, --help           print this help message and exit
33  -v, --verbose        enable extra verbose output
34      --niscc-home DIR use NISCC testcases from directory DIR (default /niscc)
35      --host HOST      use host HOST (default '127.0.0.1')
36      --threads X      set thread number to X (max. 10, default 10)
37      --out DIR        set DIR as output directory (default '/out')
38      --mail ADDRESS   send mail with test result to ADDRESS
39      --nss DIR        set NSS directory to DIR (default '~/niscc-hg/nss')
40      --nss-hack DIR   set hacked NSS directory to DIR (default '~/niscc-hg/nss_hack')
41      --log-store      store all the logs (only summary by default)
42      --no-build-test  don't pull and build tested NSS
43      --no-build-hack  don't pull and build hacked NSS
44      --test-system    test system installed NSS
45      --date DATE      use DATE in log archive name and outgoing email
46      --libfaketime path.so  use faketime library with LD_PRELOAD=path.so
47      --smallset       test only a very small subset
48
49 All options are optional.
50 All options (and possibly more) can be also set through environment variables.
51 Commandline options have higher priority than environment variables.
52 For more information please refer to the source code of this script.
53
54 For a successfull run the script NEEDS the core file pattern to be 'core.*',
55 e.g. 'core.%t'. You can check the current pattern in
56 '/proc/sys/kernel/core_pattern'. Otherwise the test will be unable to detect
57 any failures and will pass every time.
58
59 It is recommended to use hacked and tested binaries in a location, where their
60 absolute path is max. 80 characters. If their path is longer and a core file is
61 generated, its properties may be incomplete.
62
63 Return value of the script indicates how many failures it experienced.
64
65 EOF
66     exit $1
67 }
68
69 ################################################################################
70 # Process command-line arguments
71 ################################################################################
72 process_args()
73 {
74     HELP="false"
75     args=`getopt -u -l "niscc-home:,host:,threads:,out:,verbose,mail:,nss:,nss-hack:,log-store,no-build-test,no-build-hack,help,test-system,date:,libfaketime:,smallset" -- "hv" $*`
76     [ "$?" != "0" ] && usage 1
77     set -- $args
78     for i; do
79         case "$i" in
80             -v|--verbose)
81                 shift
82                 VERBOSE="-v"
83                 ;;
84             --niscc-home)
85                 shift
86                 NISCC_HOME="$1"
87                 shift
88                 ;;
89             --host)
90                 shift
91                 HOST="$1"
92                 shift
93                 ;;
94             --threads)
95                 shift
96                 THREADS="$1"
97                 shift
98                 ;;
99             --out)
100                 shift
101                 TEST_OUTPUT="$1"
102                 shift
103                 ;;
104             --mail)
105                 shift
106                 USE_MAIL="true"
107                 QA_LIST="$1"
108                 shift
109                 ;;
110             --nss)
111                 shift
112                 LOCALDIST="$1"
113                 shift
114                 ;;
115             --nss-hack)
116                 shift
117                 NSS_HACK="$1"
118                 shift
119                 ;;
120             --log-store)
121                 shift
122                 LOG_STORE="true"
123                 ;;
124             --no-build-test)
125                 shift
126                 NO_BUILD_TEST="true"
127                 ;;
128             --no-build-hack)
129                 shift
130                 NO_BUILD_HACK="true"
131                 ;;
132             -h|--help)
133                 shift
134                 HELP="true"
135                 ;;
136             --test-system)
137                 shift
138                 TEST_SYSTEM="true"
139                 ;;
140             --date)
141                 shift
142                 DATE="$1"
143                 shift
144                 ;;
145             --libfaketime)
146                 shift
147                 FAKETIMELIB="$1"
148                 shift
149                 ;;
150             --smallset)
151                 shift
152                 SMALLSET="true"
153                 ;;
154             --)
155                 ;;
156             *)
157                 ;;
158         esac
159     done
160     [ $HELP = "true" ] && usage 0
161 }
162
163 ################################################################################
164 # Create and set needed and useful environment variables
165 ################################################################################
166 create_environment()
167 {
168     # Base location of NISCC testcases
169     export NISCC_HOME=${NISCC_HOME:-/niscc}
170
171     # Base location of NSS
172     export HG=${HG:-"$HOME/niscc-hg"}
173
174     # NSS being tested
175     export LOCALDIST=${LOCALDIST:-"${HG}/nss"}
176
177     # Hacked NSS - built with "NISCC_TEST=1"
178     export NSS_HACK=${NSS_HACK:-"${HG}/nss_hack"}
179
180     # Hostname of the testmachine
181     export HOST=${HOST:-127.0.0.1}
182
183     # Whether to store logfiles
184     export LOG_STORE=${LOG_STORE:-"false"}
185
186     # Whether to mail the summary
187     export USE_MAIL=${USE_MAIL:-"false"}
188
189     # How to mail summary
190     export MAIL_COMMAND=${MAIL_COMMAND:-"mailx -S smtp=smtp://your.smtp.server:25 -r your+niscc@email.address"}
191
192     # List of mail addresses where to send summary
193     export QA_LIST=${QA_LIST:-"result@recipient.address"}
194
195     # Whether to use 64b build
196     export USE_64=${USE_64:-1}
197
198     # Directory where to write all the output data (around 650MiB for each run)
199     export TEST_OUTPUT=${TEST_OUTPUT:-"$HOME/out"}
200
201     # How many threads to use in selfserv and strsclnt (max. 10)
202     export THREADS=${THREADS:-10}
203
204     # If true, do not build tthe tested version of NSS
205     export NO_BUILD_TEST=${NO_BUILD_TEST:-"false"}
206
207     # If true, do not build the special NSS version for NISCC
208     export NO_BUILD_HACK=${NO_BUILD_HACK:-"false"}
209
210     # If true, do not rebuild client and server directories
211     export NO_SETUP=${NO_SETUP:-"false"}
212
213     # Location of NISCC SSL/TLS testcases
214     export TEST=${TEST:-"${NISCC_HOME}/NISCC_SSL_testcases"}
215
216     # If true, then be extra verbose
217     export VERBOSE=${VERBOSE:-""}
218
219     # If true, test the system installed NSS
220     export TEST_SYSTEM=${TEST_SYSTEM:-"false"}
221     [ "$TEST_SYSTEM" = "true" ] && export NO_BUILD_TEST="true"
222
223     [ ! -z "$VERBOSE" ] && set -xv
224
225     # Real date for naming of archives (system date must be 2002-11-18 .. 2007-11-18 due to certificate validity
226     DATE=${DATE:-`date`}
227     export DATE=`date -d "$DATE" +%Y%m%d`
228
229     FAKETIMELIB=${FAKETIMELIB:-""}
230     export DATE=`date -d "$DATE" +%Y%m%d`
231
232     # Whether to test only a very small subset
233     export SMALLSET=${SMALLSET:-"false"}
234
235     # Create output dir if it doesn't exist
236     mkdir -p ${TEST_OUTPUT}
237 }
238
239 ################################################################################
240 # Do a HG pull of NSS
241 ################################################################################
242 hg_pull()
243 {
244     # Tested NSS - by default using HG default tip
245     if [ "$NO_BUILD_TEST" = "false" ]; then
246         echo "cloning NSS sources to be tested from HG"
247         [ ! -d "$LOCALDIST" ] && mkdir -p "$LOCALDIST"
248         cd "$LOCALDIST"
249         [ ! -d "$LOCALDIST/nspr" ] && hg clone --noupdate https://hg.mozilla.org/projects/nspr
250         cd nspr; hg pull; hg update -C -r default; cd ..
251         [ ! -d "$LOCALDIST/nss" ] && hg clone --noupdate https://hg.mozilla.org/projects/nss
252         cd nss; hg pull; hg update -C -r default; cd ..
253         #find . -exec touch {} \;
254     fi
255
256     # Hacked NSS - by default using some RTM version.
257     # Do not use HEAD for hacked NSS - it needs to be stable and bug-free
258     if [ "$NO_BUILD_HACK" = "false" ]; then
259         echo "cloning NSS sources for a hacked build from HG"
260         [ ! -d "$NSS_HACK" ] && mkdir -p "$NSS_HACK"
261         cd "$NSS_HACK"
262         NSPR_TAG=`curl --silent http://hg.mozilla.org/releases/mozilla-aurora/raw-file/default/nsprpub/TAG-INFO | head -1 | sed --regexp-extended 's/[[:space:]]//g' | awk '{print $1}'`
263         NSS_TAG=`curl --silent http://hg.mozilla.org/releases/mozilla-aurora/raw-file/default/security/nss/TAG-INFO | head -1 | sed --regexp-extended 's/[[:space:]]//g' | awk '{print $1}'`
264         [ ! -d "$NSS_HACK/nspr" ] && hg clone --noupdate https://hg.mozilla.org/projects/nspr
265         cd nspr; hg pull; hg update -C -r "$NSPR_TAG"; cd ..
266         [ ! -d "$NSS_HACK/nss" ] && hg clone --noupdate https://hg.mozilla.org/projects/nss
267         cd nss; hg pull; hg update -C -r "$NSS_TAG"; cd ..
268         #find . -exec touch {} \;
269     fi
270 }
271
272 ################################################################################
273 # Build NSS after setting make variable NISCC_TEST
274 ################################################################################
275 build_NSS()
276 {
277     # Tested NSS
278     if [ "$NO_BUILD_TEST" = "false" ]; then
279         echo "building NSS to be tested"
280         cd "$LOCALDIST"
281         unset NISCC_TEST
282         cd nss
283         gmake nss_clean_all &>> $TEST_OUTPUT/nisccBuildLog
284         gmake nss_build_all &>> $TEST_OUTPUT/nisccBuildLog
285     fi
286
287     # Hacked NSS
288     if [ "$NO_BUILD_HACK" = "false" ]; then
289         echo "building hacked NSS"
290         cd "$NSS_HACK"
291         export NISCC_TEST=1
292         cd nss
293         gmake nss_clean_all &>> $TEST_OUTPUT/nisccBuildLogHack
294         gmake nss_build_all &>> $TEST_OUTPUT/nisccBuildLogHack
295     fi
296
297     unset NISCC_TEST
298 }
299
300 ################################################################################
301 # Set build dir, bin and lib directories
302 ################################################################################
303 init()
304 {
305     # Enable useful core files to be generated in case of crash
306     ulimit -c unlimited
307
308     # Pattern of core files, they should be created in current directory
309     echo "core_pattern $(cat /proc/sys/kernel/core_pattern)" > "$TEST_OUTPUT/nisccLog00"
310
311     # gmake is needed in the path for this suite to run
312     echo "PATH $PATH" >> "$TEST_OUTPUT/nisccLog00"
313
314     # Find out hacked NSS version
315     DISTTYPE=`cd "$NSS_HACK/nss/tests/common"; gmake objdir_name`
316     echo "NSS_HACK DISTTYPE $DISTTYPE" >> "$TEST_OUTPUT/nisccLog00"
317     export HACKBIN="$NSS_HACK/dist/$DISTTYPE/bin"
318     export HACKLIB="$NSS_HACK/dist/$DISTTYPE/lib"
319
320     if [ "$TEST_SYSTEM" = "false" ]; then
321         # Find out nss version
322         DISTTYPE=`cd "$LOCALDIST/nss/tests/common"; gmake objdir_name`
323         echo "NSS DISTTYPE $DISTTYPE" >> "$TEST_OUTPUT/nisccLog00"
324         export TESTBIN="$LOCALDIST/dist/$DISTTYPE/bin"
325         export TESTLIB="$LOCALDIST/dist/$DISTTYPE/lib"
326         export TESTTOOLS="$TESTBIN"
327     else
328         # Using system installed NSS
329         echo "USING SYSTEM NSS" >> "$TEST_OUTPUT/nisccLog00"
330         export TESTBIN="/usr/bin"
331         if [ `uname -m` = "x86_64" ]; then
332             export TESTLIB="/usr/lib64"
333             export TESTTOOLS="/usr/lib64/nss/unsupported-tools"
334         else
335             export TESTLIB="/usr/lib"
336             export TESTTOOLS="/usr/lib/nss/unsupported-tools"
337         fi
338     fi
339
340     # Verify NISCC_TEST was set in the proper library
341     if strings "$HACKLIB/libssl3.so" | grep NISCC_TEST > /dev/null 2>&1; then
342         echo "$HACKLIB/libssl3.so contains NISCC_TEST" >> "$TEST_OUTPUT/nisccLog00"
343     else
344         echo "$HACKLIB/libssl3.so does NOT contain NISCC_TEST" >> "$TEST_OUTPUT/nisccLog00"
345     fi
346
347     if strings "$TESTLIB/libssl3.so" | grep NISCC_TEST > /dev/null 2>&1; then
348         echo "$TESTLIB/libssl3.so contains NISCC_TEST" >> "$TEST_OUTPUT/nisccLog00"
349     else
350         echo "$TESTLIB/libssl3.so does NOT contain NISCC_TEST" >> "$TEST_OUTPUT/nisccLog00"
351     fi
352 }
353
354 ################################################################################
355 # Setup simple client and server directory
356 ################################################################################
357 ssl_setup_dirs_simple()
358 {
359     [ "$NO_SETUP" = "true" ] && return
360
361     echo "Setting up working directories for SSL simple tests"
362
363     CLIENT="$TEST_OUTPUT/niscc_ssl/simple_client"
364     SERVER="$TEST_OUTPUT/niscc_ssl/simple_server"
365
366     # Generate .p12 files
367     openssl pkcs12 -export -inkey "$TEST/client_key.pem" -in "$TEST/client_crt.pem" -out "$TEST_OUTPUT/client_crt.p12" -passout pass:testtest1 -name "client_crt"
368     openssl pkcs12 -export -inkey "$TEST/server_key.pem" -in "$TEST/server_crt.pem" -out "$TEST_OUTPUT/server_crt.p12" -passout pass:testtest1 -name "server_crt"
369
370     # Setup simple client directory
371     rm -rf "$CLIENT"
372     mkdir -p "$CLIENT"
373     echo test > "$CLIENT/password-is-test.txt"
374     export LD_LIBRARY_PATH="$TESTLIB"
375     LD_PRELOAD=${FAKETIMELIB} NO_FAKE_STAT=1 FAKETIME="@2004-03-29 14:14:14" \
376     "${TESTBIN}/certutil" -N -d "$CLIENT" -f "$CLIENT/password-is-test.txt" >> "$TEST_OUTPUT/nisccLog00" 2>&1
377     LD_PRELOAD=${FAKETIMELIB} NO_FAKE_STAT=1 FAKETIME="@2004-03-29 14:14:14" \
378     "${TESTBIN}/certutil" -A -d "$CLIENT" -n rootca -i "$TEST/rootca.crt" -t "C,C," >> "$TEST_OUTPUT/nisccLog00" 2>&1
379     LD_PRELOAD=${FAKETIMELIB} NO_FAKE_STAT=1 FAKETIME="@2004-03-29 14:14:14" \
380     "${TESTBIN}/pk12util" -i "$TEST_OUTPUT/client_crt.p12" -d "$CLIENT" -k "$CLIENT/password-is-test.txt" -W testtest1 >> "$TEST_OUTPUT/nisccLog00" 2>&1
381     LD_PRELOAD=${FAKETIMELIB} NO_FAKE_STAT=1 FAKETIME="@2004-03-29 14:14:14" \
382     "${TESTBIN}/certutil" -L -d "$CLIENT" >> "$TEST_OUTPUT/nisccLog00" 2>&1
383
384     # File containg message used for terminating the server
385     echo "GET /stop HTTP/1.0" > "$CLIENT/stop.txt"
386     echo ""                  >> "$CLIENT/stop.txt"
387
388     # Setup simple server directory
389     rm -rf "$SERVER"
390     mkdir -p "$SERVER"
391     echo test > "$SERVER/password-is-test.txt"
392     LD_PRELOAD=${FAKETIMELIB} NO_FAKE_STAT=1 FAKETIME="@2004-03-29 14:14:14" \
393     "${TESTBIN}/certutil" -N -d "$SERVER" -f "$SERVER/password-is-test.txt" >> "$TEST_OUTPUT/nisccLog00" 2>&1
394     LD_PRELOAD=${FAKETIMELIB} NO_FAKE_STAT=1 FAKETIME="@2004-03-29 14:14:14" \
395     "${TESTBIN}/certutil" -A -d "$SERVER" -n rootca -i "$TEST/rootca.crt" -t "TC,C," >> "$TEST_OUTPUT/nisccLog00" 2>&1
396     LD_PRELOAD=${FAKETIMELIB} NO_FAKE_STAT=1 FAKETIME="@2004-03-29 14:14:14" \
397     "${TESTBIN}/pk12util" -i "$TEST_OUTPUT/server_crt.p12" -d "$SERVER" -k "$SERVER/password-is-test.txt" -W testtest1 >> "$TEST_OUTPUT/nisccLog00" 2>&1
398     LD_PRELOAD=${FAKETIMELIB} NO_FAKE_STAT=1 FAKETIME="@2004-03-29 14:14:14" \
399     "${TESTBIN}/certutil" -L -d "$SERVER" >> "$TEST_OUTPUT/nisccLog00" 2>&1
400
401     unset LD_LIBRARY_PATH
402 }
403
404 ################################################################################
405 # Setup resigned client and server directory
406 ################################################################################
407 ssl_setup_dirs_resigned()
408 {
409     [ "$NO_SETUP" = "true" ] && return
410
411     echo "Setting up working directories for SSL resigned tests"
412
413     CLIENT="$TEST_OUTPUT/niscc_ssl/resigned_client"
414     SERVER="$TEST_OUTPUT/niscc_ssl/resigned_server"
415
416     # Setup resigned client directory
417     rm -rf "$CLIENT"
418     mkdir -p "$CLIENT"
419     echo test > "$CLIENT/password-is-test.txt"
420     export LD_LIBRARY_PATH="$TESTLIB"
421     LD_PRELOAD=${FAKETIMELIB} NO_FAKE_STAT=1 FAKETIME="@2004-03-29 14:14:14" \
422     "${TESTBIN}/certutil" -N -d "$CLIENT" -f "$CLIENT/password-is-test.txt" >> "$TEST_OUTPUT/nisccLog00" 2>&1
423     LD_PRELOAD=${FAKETIMELIB} NO_FAKE_STAT=1 FAKETIME="@2004-03-29 14:14:14" \
424     "${TESTBIN}/certutil" -A -d "$CLIENT" -n rootca -i "$TEST/rootca.crt" -t "C,C," >> "$TEST_OUTPUT/nisccLog00" 2>&1
425     LD_PRELOAD=${FAKETIMELIB} NO_FAKE_STAT=1 FAKETIME="@2004-03-29 14:14:14" \
426     "${TESTBIN}/pk12util" -i "$TEST_OUTPUT/client_crt.p12" -d "$CLIENT" -k "$CLIENT/password-is-test.txt" -W testtest1 >> "$TEST_OUTPUT/nisccLog00" 2>&1
427     LD_PRELOAD=${FAKETIMELIB} NO_FAKE_STAT=1 FAKETIME="@2004-03-29 14:14:14" \
428     "${TESTBIN}/certutil" -L -d "$CLIENT" >> "$TEST_OUTPUT/nisccLog00" 2>&1
429
430     echo "GET /stop HTTP/1.0" > "$CLIENT/stop.txt"
431     echo ""                  >> "$CLIENT/stop.txt"
432
433     # Setup resigned server directory
434     rm -rf "$SERVER"
435     mkdir -p "$SERVER"
436     echo test > "$SERVER/password-is-test.txt"
437     LD_PRELOAD=${FAKETIMELIB} NO_FAKE_STAT=1 FAKETIME="@2004-03-29 14:14:14" \
438     "${TESTBIN}/certutil" -N -d "$SERVER" -f "$SERVER/password-is-test.txt" >> "$TEST_OUTPUT/nisccLog00" 2>&1
439     LD_PRELOAD=${FAKETIMELIB} NO_FAKE_STAT=1 FAKETIME="@2004-03-29 14:14:14" \
440     "${TESTBIN}/certutil" -A -d "$SERVER" -n rootca -i "$TEST/rootca.crt" -t "TC,C," >> "$TEST_OUTPUT/nisccLog00" 2>&1
441     LD_PRELOAD=${FAKETIMELIB} NO_FAKE_STAT=1 FAKETIME="@2004-03-29 14:14:14" \
442     "${TESTBIN}/pk12util" -i "$TEST_OUTPUT/server_crt.p12" -d "$SERVER" -k "$SERVER/password-is-test.txt" -W testtest1 >> "$TEST_OUTPUT/nisccLog00" 2>&1
443     LD_PRELOAD=${FAKETIMELIB} NO_FAKE_STAT=1 FAKETIME="@2004-03-29 14:14:14" \
444     "${TESTBIN}/certutil" -L -d "$SERVER" >> "$TEST_OUTPUT/nisccLog00" 2>&1
445
446     unset LD_LIBRARY_PATH
447 }
448
449 ################################################################################
450 # NISCC SMIME tests
451 ################################################################################
452 niscc_smime()
453 {
454     cd "$TEST_OUTPUT"
455     DATA="$NISCC_HOME/NISCC_SMIME_testcases"
456
457     [ ! -d niscc_smime ] && mkdir -p niscc_smime
458
459     export SMIME_CERT_DB_DIR=envDB
460     export NSS_STRICT_SHUTDOWN=1
461     export NSS_DISABLE_ARENA_FREE_LIST=1
462     export LD_LIBRARY_PATH="$TESTLIB"
463
464     # Generate .p12 files
465     openssl pkcs12 -export -inkey "$DATA/Client.key" -in "$DATA/Client.crt" -out Client.p12 -passout pass:testtest1 &>/dev/null
466     openssl pkcs12 -export -inkey "$DATA/CA.key" -in "$DATA/CA.crt" -out CA.p12 -passout pass:testtest1 &>/dev/null
467
468     # Generate envDB if needed
469     if [ ! -d "$SMIME_CERT_DB_DIR" ]; then
470         mkdir -p "$SMIME_CERT_DB_DIR"
471         echo testtest1 > password-is-testtest1.txt
472         LD_PRELOAD=${FAKETIMELIB} NO_FAKE_STAT=1 FAKETIME="@2004-03-29 14:14:14" \
473         "${TESTBIN}/certutil" -N -d "./$SMIME_CERT_DB_DIR" -f password-is-testtest1.txt > /dev/null 2>&1
474         LD_PRELOAD=${FAKETIMELIB} NO_FAKE_STAT=1 FAKETIME="@2004-03-29 14:14:14" \
475         "${TESTBIN}/certutil" -A -d "$SMIME_CERT_DB_DIR" -f password-is-testtest1.txt -i "$DATA/CA.crt" -n CA -t "TC,C,"
476         LD_PRELOAD=${FAKETIMELIB} NO_FAKE_STAT=1 FAKETIME="@2004-03-29 14:14:14" \
477         "${TESTBIN}/certutil" -A -d "$SMIME_CERT_DB_DIR" -f password-is-testtest1.txt -i "$DATA/Client.crt" -n Client -t "TC,C,"
478         LD_PRELOAD=${FAKETIMELIB} NO_FAKE_STAT=1 FAKETIME="@2004-03-29 14:14:14" \
479         "${TESTBIN}/pk12util" -i ./CA.p12 -d "$SMIME_CERT_DB_DIR" -k password-is-testtest1.txt -W testtest1
480         LD_PRELOAD=${FAKETIMELIB} NO_FAKE_STAT=1 FAKETIME="@2004-03-29 14:14:14" \
481         "${TESTBIN}/pk12util" -i ./Client.p12 -d "$SMIME_CERT_DB_DIR" -k password-is-testtest1.txt -W testtest1
482     fi
483
484     # if p7m-ed-m-files.txt does not exist, then generate it.
485     [ -f "$DATA/p7m-ed-m-files.txt" ] && sed "s|^|$DATA/|" "$DATA/p7m-ed-m-files.txt" > p7m-ed-m-files.txt
486     export P7M_ED_M_FILES=p7m-ed-m-files.txt
487     if [ "$SMALLSET" = "true" ]; then
488         [ ! -f "$P7M_ED_M_FILES" ] && find "$DATA"/p7m-ed-m-0* -type f -print | head -10 >> "$P7M_ED_M_FILES"
489     else
490         [ ! -f "$P7M_ED_M_FILES" ] && find "$DATA"/p7m-ed-m-0* -type f -print >> "$P7M_ED_M_FILES"
491     fi
492
493     # Test "p7m-ed-m*" testcases
494     echo "Testing SMIME enveloped data testcases"
495     LD_PRELOAD=${FAKETIMELIB} NO_FAKE_STAT=1 FAKETIME="@2004-03-29 14:14:14" \
496     "${TESTBIN}/cmsutil" $VERBOSE -D -d "$SMIME_CERT_DB_DIR" -p testtest1 -b -i "$P7M_ED_M_FILES" > niscc_smime/p7m-ed-m-results.txt 2>&1
497
498     export SMIME_CERT_DB_DIR=sigDB
499     # Generate sigDB if needed
500     if [ ! -d "$SMIME_CERT_DB_DIR" ]; then
501         mkdir -p "$SMIME_CERT_DB_DIR"
502         LD_PRELOAD=${FAKETIMELIB} NO_FAKE_STAT=1 FAKETIME="@2004-03-29 14:14:14" \
503         "${TESTBIN}/certutil" -N -d "$SMIME_CERT_DB_DIR" -f password-is-testtest1.txt
504         LD_PRELOAD=${FAKETIMELIB} NO_FAKE_STAT=1 FAKETIME="@2004-03-29 14:14:14" \
505         "${TESTBIN}/certutil" -A -d "$SMIME_CERT_DB_DIR" -i "$DATA/CA.crt" -n CA -t "TC,C,"
506         LD_PRELOAD=${FAKETIMELIB} NO_FAKE_STAT=1 FAKETIME="@2004-03-29 14:14:14" \
507         "${TESTBIN}/certutil" -A -d "$SMIME_CERT_DB_DIR" -i "$DATA/Client.crt" -n Client -t "TC,C,"
508     fi
509
510     # if p7m-sd-dt-files.txt does not exist, then generate it.
511     [ -f "$DATA/p7m-sd-dt-files.txt" ] && sed "s|^|$DATA/|" "$DATA/p7m-sd-dt-files.txt" > p7m-sd-dt-files.txt
512     export P7M_SD_DT_FILES=p7m-sd-dt-files.txt
513     if [ "$SMALLSET" = "true" ]; then
514         [ ! -f "$P7M_SD_DT_FILES" ] && find "$DATA"/p7m-sd-dt-[cm]-* -type f -print | head -10 >> "$P7M_SD_DT_FILES"
515     else
516         [ ! -f "$P7M_SD_DT_FILES" ] && find "$DATA"/p7m-sd-dt-[cm]-* -type f -print >> "$P7M_SD_DT_FILES"
517     fi
518
519     [ ! -f detached.txt ] && touch detached.txt
520
521     # Test "p7m-sd-dt*" testcases
522     echo "Testing SMIME detached signed data testcases"
523     LD_PRELOAD=${FAKETIMELIB} NO_FAKE_STAT=1 FAKETIME="@2004-03-29 14:14:14" \
524     "${TESTBIN}/cmsutil" $VERBOSE -D -d "$SMIME_CERT_DB_DIR" -c detached.txt -b -i "$P7M_SD_DT_FILES" > niscc_smime/p7m-sd-dt-results.txt 2>&1
525
526     # if p7m-sd-op-files.txt does not exist, then generate it.
527     [ -f "$DATA/p7m-sd-op-files.txt" ] && sed "s|^|$DATA/|" "$DATA/p7m-sd-op-files.txt" > p7m-sd-op-files.txt
528     export P7M_SD_OP_FILES=p7m-sd-op-files.txt
529     if [ "$SMALLSET" = "true" ]; then
530         [ ! -f "$P7M_SD_OP_FILES" ] && find "$DATA"/p7m-sd-op-[cm]-* -type f -print | head -10 >> "$P7M_SD_OP_FILES"
531     else
532         [ ! -f "$P7M_SD_OP_FILES" ] && find "$DATA"/p7m-sd-op-[cm]-* -type f -print >> "$P7M_SD_OP_FILES"
533     fi
534
535     # Test "p7m-sd-op*" testcases
536     echo "Testing SMIME opaque signed data testcases"
537     LD_PRELOAD=${FAKETIMELIB} NO_FAKE_STAT=1 FAKETIME="@2004-03-29 14:14:14" \
538     "${TESTBIN}/cmsutil" $VERBOSE -D -d "$SMIME_CERT_DB_DIR" -b -i "$P7M_SD_OP_FILES" > niscc_smime/p7m-sd-op-results.txt 2>&1
539
540     unset LD_LIBRARY_PATH
541 }
542
543 ################################################################################
544 # Set env variables for NISCC SSL tests
545 ################################################################################
546 niscc_ssl_init()
547 {
548     export NSS_STRICT_SHUTDOWN=1
549     export NSS_DISABLE_ARENA_FREE_LIST=1
550     cd "$TEST_OUTPUT"
551 }
552
553 force_crash()
554 {
555     echo "int main(int argc, char *argv[]) { int *i; i = (int*)(void*)1; *i = 1; }" > "$TEST_OUTPUT/crashme.c"
556     gcc -g -o "$TEST_OUTPUT/crashme" "$TEST_OUTPUT/crashme.c"
557     "$TEST_OUTPUT/crashme"
558 }
559
560 ################################################################################
561 # Do simple client auth tests
562 # Use an altered client against the server
563 ################################################################################
564 ssl_simple_client_auth()
565 {
566     echo "Testing SSL simple client auth testcases"
567     export CLIENT="$TEST_OUTPUT/niscc_ssl/simple_client"
568     export SERVER="$TEST_OUTPUT/niscc_ssl/simple_server"
569     export PORT=8443
570     export START_AT=1
571     if [ "$SMALLSET" = "true" ]; then
572         export STOP_AT=10
573     else
574         export STOP_AT=106160
575     fi
576     unset NISCC_TEST
577     export LD_LIBRARY_PATH="$TESTLIB"
578     LD_PRELOAD=${FAKETIMELIB} NO_FAKE_STAT=1 FAKETIME="@2004-03-29 14:14:14" \
579     "${TESTTOOLS}/selfserv" $VERBOSE -p $PORT -d "$SERVER" -n server_crt -rr -t $THREADS -w test > "$TEST_OUTPUT/nisccLog01" 2>&1 &
580
581     export NISCC_TEST="$TEST/simple_client"
582     export LD_LIBRARY_PATH="$HACKLIB"
583
584     for START in `seq $START_AT $THREADS $STOP_AT`; do
585         START_AT=$START \
586         STOP_AT=$(($START+$THREADS)) \
587         LD_PRELOAD=${FAKETIMELIB} NO_FAKE_STAT=1 FAKETIME="@2004-03-29 14:14:14" \
588         "${HACKBIN}/strsclnt" $VERBOSE -d "$CLIENT" -n client_crt -p $PORT -t $THREADS -c $THREADS -o -N -w test $HOST >> "$TEST_OUTPUT/nisccLog02" 2>&1
589     done
590
591     unset NISCC_TEST
592     echo "starting tstclnt to shutdown simple client selfserv process"
593     for i in `seq 5`; do
594         LD_PRELOAD=${FAKETIMELIB} NO_FAKE_STAT=1 FAKETIME="@2004-03-29 14:14:14" \
595         "${HACKBIN}/tstclnt" -h $HOST -p $PORT -d "$CLIENT" -n client_crt -o -f -w test < "$CLIENT/stop.txt" >> "$TEST_OUTPUT/nisccLog02" 2>&1
596     done
597
598     unset LD_LIBRARY_PATH
599
600     sleep 1
601 }
602
603 ################################################################################
604 # Do simple server auth tests
605 # Use an altered server against the client
606 ################################################################################
607 ssl_simple_server_auth()
608 {
609     echo "Testing SSL simple server auth testcases"
610     export CLIENT="$TEST_OUTPUT/niscc_ssl/simple_client"
611     export SERVER="$TEST_OUTPUT/niscc_ssl/simple_server"
612     export PORT=8444
613     export START_AT=00000001
614     if [ "$SMALLSET" = "true" ]; then
615         export STOP_AT=00000010
616     else
617         export STOP_AT=00106167
618     fi
619     export LD_LIBRARY_PATH="$HACKLIB"
620     export NISCC_TEST="$TEST/simple_server"
621     LD_PRELOAD=${FAKETIMELIB} NO_FAKE_STAT=1 FAKETIME="@2004-03-29 14:14:14" \
622     "${HACKBIN}/selfserv" $VERBOSE -p $PORT -d "$SERVER" -n server_crt -t $THREADS -w test > "$TEST_OUTPUT/nisccLog03" 2>&1 &
623
624     unset NISCC_TEST
625     export LD_LIBRARY_PATH="$TESTLIB"
626     for START in `seq $START_AT $THREADS $STOP_AT`; do
627         LD_PRELOAD=${FAKETIMELIB} NO_FAKE_STAT=1 FAKETIME="@2004-03-29 14:14:14" \
628         "${TESTTOOLS}/strsclnt" $VERBOSE -d "$CLIENT" -p $PORT -t $THREADS -c $THREADS -o -N $HOST >> "$TEST_OUTPUT/nisccLog04" 2>&1
629     done
630
631     echo "starting tstclnt to shutdown simple server selfserv process"
632     for i in `seq 5`; do
633         LD_PRELOAD=${FAKETIMELIB} NO_FAKE_STAT=1 FAKETIME="@2004-03-29 14:14:14" \
634         "${TESTTOOLS}/tstclnt" -h $HOST -p $PORT -d "$CLIENT" -n client_crt -o -f -w test < "$CLIENT/stop.txt" >> "$TEST_OUTPUT/nisccLog04" 2>&1
635     done
636
637     unset LD_LIBRARY_PATH
638
639     sleep 1
640 }
641
642 ################################################################################
643 # Do simple rootCA tests
644 # Use an altered server against the client
645 ################################################################################
646 ssl_simple_rootca()
647 {
648     echo "Testing SSL simple rootCA testcases"
649     export CLIENT="$TEST_OUTPUT/niscc_ssl/simple_client"
650     export SERVER="$TEST_OUTPUT/niscc_ssl/simple_server"
651     export PORT=8445
652     export START_AT=1
653     if [ "$SMALLSET" = "true" ]; then
654         export STOP_AT=10
655     else
656         export STOP_AT=106190
657     fi
658     export LD_LIBRARY_PATH="$HACKLIB"
659     export NISCC_TEST="$TEST/simple_rootca"
660     LD_PRELOAD=${FAKETIMELIB} NO_FAKE_STAT=1 FAKETIME="@2004-03-29 14:14:14" \
661     "${HACKBIN}/selfserv" $VERBOSE -p $PORT -d "$SERVER" -n server_crt -t $THREADS -w test > "$TEST_OUTPUT/nisccLog05" 2>&1 &
662
663     unset NISCC_TEST
664     export LD_LIBRARY_PATH="$TESTLIB"
665     for START in `seq $START_AT $THREADS $STOP_AT`; do
666         LD_PRELOAD=${FAKETIMELIB} NO_FAKE_STAT=1 FAKETIME="@2004-03-29 14:14:14" \
667         "${TESTTOOLS}/strsclnt" $VERBOSE -d "$CLIENT" -p $PORT -t $THREADS -c $THREADS -o -N $HOST >> "$TEST_OUTPUT/nisccLog06" 2>&1
668     done
669
670     echo "starting tstclnt to shutdown simple rootca selfserv process"
671     for i in `seq 5`; do
672         LD_PRELOAD=${FAKETIMELIB} NO_FAKE_STAT=1 FAKETIME="@2004-03-29 14:14:14" \
673         "${TESTTOOLS}/tstclnt" -h $HOST -p $PORT -d "$CLIENT" -n client_crt -o -f -w test < "$CLIENT/stop.txt" >> "$TEST_OUTPUT/nisccLog06" 2>&1
674     done
675
676     unset LD_LIBRARY_PATH
677
678     sleep 1
679 }
680
681 ################################################################################
682 # Do resigned client auth tests
683 # Use an altered client against the server
684 ################################################################################
685 ssl_resigned_client_auth()
686 {
687     echo "Testing SSL resigned client auth testcases"
688     export CLIENT="$TEST_OUTPUT/niscc_ssl/resigned_client"
689     export SERVER="$TEST_OUTPUT/niscc_ssl/resigned_server"
690     export PORT=8446
691     export START_AT=0
692     if [ "$SMALLSET" = "true" ]; then
693         export STOP_AT=9
694     else
695         export STOP_AT=99981
696     fi
697     unset NISCC_TEST
698     export LD_LIBRARY_PATH="$TESTLIB"
699     LD_PRELOAD=${FAKETIMELIB} NO_FAKE_STAT=1 FAKETIME="@2004-03-29 14:14:14" \
700     "${TESTTOOLS}/selfserv" $VERBOSE -p $PORT -d "$SERVER" -n server_crt -rr -t $THREADS -w test > "$TEST_OUTPUT/nisccLog07" 2>&1 &
701
702     export NISCC_TEST="$TEST/resigned_client"
703     export LD_LIBRARY_PATH="$HACKLIB"
704
705     for START in `seq $START_AT $THREADS $STOP_AT`; do
706         START_AT=$START \
707         STOP_AT=$(($START+$THREADS)) \
708         LD_PRELOAD=${FAKETIMELIB} NO_FAKE_STAT=1 FAKETIME="@2004-03-29 14:14:14" \
709         "${HACKBIN}/strsclnt" $VERBOSE -d "$CLIENT" -n client_crt -p $PORT -t $THREADS -c $THREADS -o -N -w test $HOST >> "$TEST_OUTPUT/nisccLog08" 2>&1
710     done
711
712     unset NISCC_TEST
713     echo "starting tstclnt to shutdown resigned client selfserv process"
714     for i in `seq 5`; do
715         LD_PRELOAD=${FAKETIMELIB} NO_FAKE_STAT=1 FAKETIME="@2004-03-29 14:14:14" \
716         "${HACKBIN}/tstclnt" -h $HOST -p $PORT -d "$CLIENT" -n client_crt -o -f -w test < "$CLIENT/stop.txt" >> "$TEST_OUTPUT/nisccLog08" 2>&1
717     done
718
719     unset LD_LIBRARY_PATH
720
721     sleep 1
722 }
723
724 ################################################################################
725 # Do resigned server auth tests
726 # Use an altered server against the client
727 ################################################################################
728 ssl_resigned_server_auth()
729 {
730     echo "Testing SSL resigned server auth testcases"
731     export CLIENT="$TEST_OUTPUT/niscc_ssl/resigned_client"
732     export SERVER="$TEST_OUTPUT/niscc_ssl/resigned_server"
733     export PORT=8447
734     export START_AT=0
735     if [ "$SMALLSET" = "true" ]; then
736         export STOP_AT=9
737     else
738         export STOP_AT=100068
739     fi
740     export LD_LIBRARY_PATH="$HACKLIB"
741     export NISCC_TEST="$TEST/resigned_server"
742     LD_PRELOAD=${FAKETIMELIB} NO_FAKE_STAT=1 FAKETIME="@2004-03-29 14:14:14" \
743     "${HACKBIN}/selfserv" $VERBOSE -p $PORT -d "$SERVER" -n server_crt -t $THREADS -w test > "$TEST_OUTPUT/nisccLog09" 2>&1 &
744
745     unset NISCC_TEST
746     export LD_LIBRARY_PATH="$TESTLIB"
747     for START in `seq $START_AT $THREADS $STOP_AT`; do
748         LD_PRELOAD=${FAKETIMELIB} NO_FAKE_STAT=1 FAKETIME="@2004-03-29 14:14:14" \
749         "${TESTTOOLS}/strsclnt" $VERBOSE -d "$CLIENT" -p $PORT -t $THREADS -c $THREADS -o -N $HOST >> "$TEST_OUTPUT/nisccLog10" 2>&1
750     done
751
752     echo "starting tstclnt to shutdown resigned server selfserv process"
753     for i in `seq 5`; do
754         LD_PRELOAD=${FAKETIMELIB} NO_FAKE_STAT=1 FAKETIME="@2004-03-29 14:14:14" \
755         "${TESTTOOLS}/tstclnt" -h $HOST -p $PORT -d "$CLIENT" -n client_crt -o -f -w test < "$CLIENT/stop.txt" >> "$TEST_OUTPUT/nisccLog10" 2>&1
756     done
757
758     unset LD_LIBRARY_PATH
759
760     sleep 1
761 }
762
763 ################################################################################
764 # Do resigned rootCA tests
765 # Use an altered server against the client
766 ################################################################################
767 ssl_resigned_rootca()
768 {
769     echo "Testing SSL resigned rootCA testcases"
770     export CLIENT="$TEST_OUTPUT/niscc_ssl/resigned_client"
771     export SERVER="$TEST_OUTPUT/niscc_ssl/resigned_server"
772     export PORT=8448
773     export START_AT=0
774     if [ "$SMALLSET" = "true" ]; then
775         export STOP_AT=9
776     else
777         export STOP_AT=99959
778     fi
779     export LD_LIBRARY_PATH="$HACKLIB"
780     export NISCC_TEST="$TEST/resigned_rootca"
781     LD_PRELOAD=${FAKETIMELIB} NO_FAKE_STAT=1 FAKETIME="@2004-03-29 14:14:14" \
782     "${HACKBIN}/selfserv" $VERBOSE -p $PORT -d "$SERVER" -n server_crt -t $THREADS -w test > "$TEST_OUTPUT/nisccLog11" 2>&1 &
783
784     unset NISCC_TEST
785     export LD_LIBRARY_PATH="$TESTLIB"
786     for START in `seq $START_AT $THREADS $STOP_AT`; do
787         LD_PRELOAD=${FAKETIMELIB} NO_FAKE_STAT=1 FAKETIME="@2004-03-29 14:14:14" \
788         "${TESTTOOLS}/strsclnt" $VERBOSE -d "$CLIENT" -p $PORT -t $THREADS -c $THREADS -o -N $HOST >> "$TEST_OUTPUT/nisccLog12" 2>&1
789     done
790
791     echo "starting tstclnt to shutdown resigned rootca selfserv process"
792     for i in `seq 5`; do
793         LD_PRELOAD=${FAKETIMELIB} NO_FAKE_STAT=1 FAKETIME="@2004-03-29 14:14:14" \
794         "${TESTTOOLS}/tstclnt" -h $HOST -p $PORT -d "$CLIENT" -n client_crt -o -f -w test < "$CLIENT/stop.txt" >> "$TEST_OUTPUT/nisccLog12" 2>&1
795     done
796
797     unset LD_LIBRARY_PATH
798
799     sleep 1
800 }
801
802 ################################################################################
803 # Email the test logfile, and if core found, notify of failure
804 ################################################################################
805 mail_testLog()
806 {
807     pushd "$TEST_OUTPUT"
808
809     # remove mozilla nss build false positives and core stored in previous runs
810     find . -name "core*" -print | grep -v coreconf | grep -v core_watch | grep -v archive >> crashLog
811     export SIZE=`cat crashLog | wc -l`
812
813     [ "$USE_MAIL" = "false" ] && return
814
815     # mail text
816     MT=mailText
817     rm -f $MT
818
819     if [ "$SIZE" -ne 1 ]; then
820         echo "### FAILED ###" >> $MT
821         echo "### Exactly one crash is expected." >> $MT
822         echo "### Zero means: crash detection is broken, fix the script!" >> $MT
823         echo "### > 1 means: robustness test failure, fix the bug! (check the logs)" >> $MT
824         cat crashLog >> nisccLogSummary
825         SUBJ="FAILED: NISCC TESTS (check file: crashLog)"
826     else
827         echo ":) PASSED :)" >> $MT
828         SUBJ="PASSED: NISCC tests"
829     fi
830
831     echo "Date used during test run: $DATE" >> $MT
832
833     echo "Count of lines in files:" >> $MT
834     wc -l crashLog nisccBuildLog nisccBuildLogHack nisccLog[0-9]* p7m-* |grep -vw total >> $MT
835     NUM=`cat nisccLog0[123456789] nisccLog1[12] | egrep -ic "success/passed"`
836     echo "Number of times the SSL tests reported success/passed (low expected): $NUM" >> $MT
837     NUM=`cat nisccLog0[123456789] nisccLog1[12] | egrep -ic "problem|failed|error"`
838     echo "Number of times the SSL tests reported problem/failed/error (high expected): $NUM" >> $MT
839     NUM=`cat niscc_smime/p7m*results.txt | egrep -ic "success/passed"`
840     echo "Number of times the S/MIME tests reported success/passed (low expected): $NUM" >> $MT
841     NUM=`cat niscc_smime/p7m*results.txt | egrep -ic "problem|failed|error"`
842     echo "Number of times the S/MIME tests reported problem/failed/error (high expected): $NUM" >> $MT
843     echo "==== tail of nisccBuildLog ====" >> $MT
844     tail -20 nisccBuildLog >> $MT
845     echo "===============================" >> $MT
846     echo "==== tail of nisccBuildLogHack ====" >> $MT
847     tail -20 nisccBuildLogHack >> $MT
848     echo "===================================" >> $MT
849
850     #NUM=``
851     #echo "Number of : $NUM" >> $MT
852
853     cat $MT | $MAIL_COMMAND -s "$SUBJ" $QA_LIST
854
855     popd
856 }
857
858 ################################################################################
859 # Summarize all logs
860 ################################################################################
861 log_summary()
862 {
863     echo "Summarizing all logs"
864     # Move old logs
865     [ -f "$TEST_OUTPUT/nisccLogSummary" ] && mv nisccLogSummary nisccLogSummary.old
866     [ -f "$TEST_OUTPUT/crashLog" ] && mv crashLog crashLog.old
867
868     for a in $TEST_OUTPUT/nisccLog[0-9]*; do
869         echo ================================== "$a"
870         grep -v using "$a" | sort | uniq -c | sort -b -n +0 -1
871     done > $TEST_OUTPUT/nisccLogSummary
872
873     for a in $TEST_OUTPUT/niscc_smime/p7m-*-results.txt; do
874         echo ================================== "$a"
875         grep -v using "$a" | sort | uniq -c | sort -b -n +0 -1
876     done >> $TEST_OUTPUT/nisccLogSummary
877 }
878
879 ################################################################################
880 # Process core files
881 ################################################################################
882 core_process()
883 {
884     echo "Processing core files"
885     cd "$TEST_OUTPUT"
886
887     for CORE in `cat crashLog`; do
888         FILE=`file "$CORE" | sed "s/.* from '//" | sed "s/'.*//"`
889         BINARY=`strings "$CORE" | grep "^${FILE}" | tail -1`
890         gdb "$BINARY" "$CORE" << EOF_GDB > "$CORE.details"
891 where
892 quit
893 EOF_GDB
894     done
895 }
896
897 ################################################################################
898 # Move the old log files to save them, delete extra log files
899 ################################################################################
900 move_files()
901 {
902     echo "Moving and deleting log files"
903     cd "$TEST_OUTPUT"
904
905     rm -rf TRASH
906     mkdir TRASH
907
908     if [ "$LOG_STORE" = "true" ]; then
909         BRANCH=`echo $LOCALDIST | sed "s:.*/\(security.*\)/builds/.*:\1:"`
910         if [ "$BRANCH" = "$LOCALDIST" ]; then
911             ARCHIVE="$TEST_OUTPUT/archive"
912         else
913             ARCHIVE="$TEST_OUTPUT/archive/$BRANCH"
914         fi
915
916         # Check for archive directory
917         if [ ! -d "$ARCHIVE" ]; then
918             mkdir -p "$ARCHIVE"
919         fi
920
921         # Determine next log storage point
922         slot=`ls -1 "$ARCHIVE" | grep $DATE | wc -l`
923         slot=`expr $slot + 1`
924         location="$ARCHIVE/$DATE.$slot"
925         mkdir -p "$location"
926
927         # Archive the logs
928         mv nisccBuildLog "$location" 2> /dev/null
929         mv nisccBuildLogHack "$location" 2> /dev/null
930         mv nisccLogSummary "$location"
931         mv nisccLog* "$location"
932         mv niscc_smime/p7m-ed-m-results.txt "$location"
933         mv niscc_smime/p7m-sd-dt-results.txt "$location"
934         mv niscc_smime/p7m-sd-op-results.txt "$location"
935
936         # Archive any core files produced
937         for core in `cat "$TEST_OUTPUT/crashLog"`; do
938             mv "$core" "$location"
939             mv "$core.details" "$location"
940         done
941         mv crashLog "$location"
942     else
943         # Logs not stored => summaries, crashlog and corefiles not moved, other logs deleted
944         mv nisccLog00 nisccLog01 nisccLog02 nisccLog03 nisccLog04 nisccLog05 nisccLog06 nisccLog07 nisccLog08 nisccLog09 nisccLog10 nisccLog11 nisccLog12 TRASH/
945         mv niscc_smime/p7m-ed-m-results.txt niscc_smime/p7m-sd-dt-results.txt niscc_smime/p7m-sd-op-results.txt TRASH/
946     fi
947     mv envDB sigDB niscc_smime niscc_ssl TRASH/
948     mv CA.p12 Client.p12 client_crt.p12 server_crt.p12 TRASH/
949     mv p7m-ed-m-files.txt p7m-sd-dt-files.txt p7m-sd-op-files.txt password-is-testtest1.txt detached.txt TRASH/
950     mv crashme.c crashme TRASH/
951 }
952
953 ################################################################################
954 # Main
955 ################################################################################
956 process_args $*
957 create_environment
958 hg_pull
959 build_NSS
960 init
961 niscc_smime
962 niscc_ssl_init
963 force_crash
964 ssl_setup_dirs_simple
965     ssl_simple_client_auth
966     ssl_simple_server_auth
967     ssl_simple_rootca
968 ssl_setup_dirs_resigned
969     ssl_resigned_client_auth
970     ssl_resigned_server_auth
971     ssl_resigned_rootca
972 # no idea what these commented-out lines are supposed to be!
973 #ssl_setup_dirs_update
974 #    ssl_update_server_auth der
975 #    ssl_update_client_auth der
976 #    ssl_update_server_auth resigned-der
977 #    ssl_update_client_auth resigned-der
978 log_summary
979 mail_testLog
980 core_process
981 move_files
982 exit $SIZE