RetroZilla/security/nss/tests/run_niscc.sh
2015-10-20 23:03:22 -04:00

658 lines
23 KiB
Bash

#!/bin/sh
#
# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# The contents of this file are subject to the Mozilla Public License Version
# 1.1 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
# http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
# for the specific language governing rights and limitations under the
# License.
#
# The Original Code is the Netscape security libraries.
#
# The Initial Developer of the Original Code is
# Sun Microsystems, Inc..
# Portions created by the Initial Developer are Copyright (C) 2004-2006
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****
# This script runs NSS against test data provided by the United Kingdom
# National Infrastructure Security Co-ordination Centre (NISCC).
# The test data is not public and is not provided with this script.
########################################################################
# Base location to work from
NISCC_HOME=${NISCC_HOME:-/niscc}
export NISCC_HOME
# Set to where special NSS version exists.
NSS_HACK=${NSS_HACK:-${NISCC_HOME}/nss_hack}; export NSS_HACK
# NSS version to test
LOCALDIST=${LOCALDIST:-/share/builds/sbstools/nsstools}
export LOCALDIST
# If true, do not rebuild client and server directories
NO_SETUP=${NO_SETUP:-"false"}; export NO_SETUP
# location of NISCC SSL testcases
TEST=${TEST:-"${NISCC_HOME}/NISCC_SSL_testcases"}; export TEST
# build the fully qualified domain name
# NOTE: domainname(1) may return the wrong domain in NIS environments
DOMSUF=${DOMSUF:-`domainname`}
if [ -z "$HOST" ]; then
HOST=`uname -n`
fi
HOSTNAME=$HOST.$DOMSUF; export HOSTNAME
# Who and how to mail the output to
QA_LIST=${QA_LIST:-"nobody@localhost"}; export QA_LIST
MAIL_COMMAND=${MAIL_COMMAND:-/bin/mail}; export MAIL_COMMAND
# Whether or not to archive the logs
LOG_STORE=${LOG_STORE:-"false"}; export LOG_STORE
##############################################################
# set build dir, bin and lib directories
##############################################################
init()
{
#enable useful core files to be generated in case of crash
ulimit -c unlimited
# gmake is needed in the path for this suite to run
PATH=/usr/bin:/usr/sbin:/usr/local/bin:/tools/ns/bin; export PATH
echo "PATH $PATH" >> $NISCC_HOME/nisccLog00
DISTTYPE=`cd ${NSS_HACK}/mozilla/security/nss/tests/common; gmake objdir_name`
echo "DISTTYPE ${DISTTYPE}" >> $NISCC_HOME/nisccLog00
HACKBIN=${NSS_HACK}/mozilla/dist/${DISTTYPE}/bin; export HACKBIN
HACKLIB=${NSS_HACK}/mozilla/dist/${DISTTYPE}/lib; export HACKLIB
TESTBIN=${LOCALDIST}/mozilla/dist/${DISTTYPE}/bin; export TESTBIN
TESTLIB=${LOCALDIST}/mozilla/dist/${DISTTYPE}/lib; export TESTLIB
# Verify NISCC_TEST was set in the proper library
if strings ${HACKLIB}/libssl3.so | grep NISCC_TEST > /dev/null 2>&1; then
echo "${HACKLIB}/libssl3.so contains NISCC_TEST" >> \
$NISCC_HOME/nisccLog00
else
echo "${HACKLIB}/libssl3.so does NOT contain NISCC_TEST" >> \
$NISCC_HOME/nisccLog00
fi
if strings ${TESTLIB}/libssl3.so | grep NISCC_TEST > /dev/null 2>&1; then
echo "${TESTLIB}/libssl3.so contains NISCC_TEST" >> \
$NISCC_HOME/nisccLog00
else
echo "${TESTLIB}/libssl3.so does NOT contain NISCC_TEST" >> \
$NISCC_HOME/nisccLog00
fi
}
#end of init section
##############################################################
# Setup simple client and server directory
##############################################################
ssl_setup_dirs_simple()
{
[ "$NO_SETUP" = "true" ] && return
CLIENT=${NISCC_HOME}/niscc_ssl/simple_client
SERVER=${NISCC_HOME}/niscc_ssl/simple_server
#
# Setup simple client directory
#
rm -rf $CLIENT
mkdir -p $CLIENT
echo test > $CLIENT/password-is-test.txt
LD_LIBRARY_PATH=${TESTLIB}; export LD_LIBRARY_PATH
${TESTBIN}/certutil -N -d $CLIENT -f $CLIENT/password-is-test.txt >> \
$NISCC_HOME/nisccLog00 2>&1
${TESTBIN}/certutil -A -d $CLIENT -n rootca -i $TEST/rootca.crt -t \
"C,C," >> $NISCC_HOME/nisccLog00 2>&1
${TESTBIN}/pk12util -i $TEST/client_crt.p12 -d $CLIENT -k \
$CLIENT/password-is-test.txt -W testtest1 >> $NISCC_HOME/nisccLog00 2>&1
${TESTBIN}/certutil -L -d $CLIENT >> $NISCC_HOME/nisccLog00 2>&1
echo "GET /stop HTTP/1.0" > $CLIENT/stop.txt
echo "" >> $CLIENT/stop.txt
#
# Setup simple server directory
#
rm -rf $SERVER
mkdir -p $SERVER
echo test > $SERVER/password-is-test.txt
${TESTBIN}/certutil -N -d $SERVER -f $SERVER/password-is-test.txt \
>> $NISCC_HOME/nisccLog00 2>&1
${TESTBIN}/certutil -A -d $SERVER -n rootca -i $TEST/rootca.crt -t \
"TC,C," >> $NISCC_HOME/nisccLog00 2>&1
${TESTBIN}/pk12util -i $TEST/server_crt.p12 -d $SERVER -k \
$SERVER/password-is-test.txt -W testtest1 >> $NISCC_HOME/nisccLog00 2>&1
${TESTBIN}/certutil -L -d $SERVER >> $NISCC_HOME/nisccLog00 2>&1
unset LD_LIBRARY_PATH
}
##############################################################
# Setup resigned client and server directory
###############################################################
ssl_setup_dirs_resigned()
{
[ "$NO_SETUP" = "true" ] && return
CLIENT=${NISCC_HOME}/niscc_ssl/resigned_client
SERVER=${NISCC_HOME}/niscc_ssl/resigned_server
#
# Setup resigned client directory
#
rm -rf $CLIENT
mkdir -p $CLIENT
echo test > $CLIENT/password-is-test.txt
LD_LIBRARY_PATH=${TESTLIB}; export LD_LIBRARY_PATH
${TESTBIN}/certutil -N -d $CLIENT -f $CLIENT/password-is-test.txt \
>> $NISCC_HOME/nisccLog00 2>&1
${TESTBIN}/certutil -A -d $CLIENT -n rootca -i $TEST/rootca.crt -t \
"C,C," >> $NISCC_HOME/nisccLog00 2>&1
${TESTBIN}/pk12util -i $TEST/client_crt.p12 -d $CLIENT -k \
$CLIENT/password-is-test.txt -W testtest1 >> $NISCC_HOME/nisccLog00 2>&1
${TESTBIN}/certutil -L -d $CLIENT >> $NISCC_HOME/nisccLog00 2>&1
echo "GET /stop HTTP/1.0" > $CLIENT/stop.txt
echo "" >> $CLIENT/stop.txt
#
# Setup resigned server directory
#
rm -rf $SERVER
mkdir -p $SERVER
echo test > $SERVER/password-is-test.txt
${TESTBIN}/certutil -N -d $SERVER -f $SERVER/password-is-test.txt \
>> $NISCC_HOME/nisccLog00 2>&1
${TESTBIN}/certutil -A -d $SERVER -n rootca -i $TEST/rootca.crt -t \
"TC,C," >> $NISCC_HOME/nisccLog00 2>&1
${TESTBIN}/pk12util -i $TEST/server_crt.p12 -d $SERVER -k \
$SERVER/password-is-test.txt -W testtest1 >> $NISCC_HOME/nisccLog00 2>&1
${TESTBIN}/certutil -L -d $SERVER >> $NISCC_HOME/nisccLog00 2>&1
unset LD_LIBRARY_PATH
}
##############################################################
# NISCC SMIME tests
##############################################################
niscc_smime()
{
cd ${NISCC_HOME}/NISCC_SMIME_testcases
if [ ! -d ${NISCC_HOME}/niscc_smime ]; then
mkdir -p ${NISCC_HOME}/niscc_smime
fi
SMIME_CERT_DB_DIR=envDB; export SMIME_CERT_DB_DIR
NSS_STRICT_SHUTDOWN=1; export NSS_STRICT_SHUTDOWN
NSS_DISABLE_ARENA_FREE_LIST=1; export NSS_DISABLE_ARENA_FREE_LIST
LD_LIBRARY_PATH=${TESTLIB}; export LD_LIBRARY_PATH
# Generate envDB if needed
if [ ! -d $SMIME_CERT_DB_DIR ]; then
mkdir -p $SMIME_CERT_DB_DIR
echo testtest1 > password-is-testtest1.txt
${TESTBIN}/certutil -N -d ./${SMIME_CERT_DB_DIR} -f \
password-is-testtest1.txt > /dev/null 2>&1
${TESTBIN}/certutil -A -d $SMIME_CERT_DB_DIR -i CA.crt -n CA -t "TC,C,"
${TESTBIN}/certutil -A -d $SMIME_CERT_DB_DIR -i Client.crt -n Client \
-t "TC,C,"
${TESTBIN}/pk12util -i ./CA.p12 -d $SMIME_CERT_DB_DIR -k \
./password-is-test.txt -W testtest1
${TESTBIN}/pk12util -i ./Client.p12 -d $SMIME_CERT_DB_DIR -k \
./password-is-test.txt -W testtest1
fi
# if p7m-ed-m-files.txt does not exist, then generate it.
if [ ! -f p7m-ed-m-files.txt ]; then
find ./p7m-ed-m-0* -type f -print >> p7m-ed-m-files.txt
fi
${TESTBIN}/cmsutil -D -d $SMIME_CERT_DB_DIR -p testtest1 -b -i \
p7m-ed-m-files.txt > $NISCC_HOME/niscc_smime/p7m-ed-m-results.txt 2>&1
SMIME_CERT_DB_DIR=sigDB; export SMIME_CERT_DB_DIR
# Generate sigDB if needed
if [ ! -d $SMIME_CERT_DB_DIR ]; then
mkdir -p $SMIME_CERT_DB_DIR
${TESTBIN}/certutil -N -d $SMIME_CERT_DB_DIR -f password-is-testtest1.txt
${TESTBIN}/certutil -A -d $SMIME_CERT_DB_DIR -i CA.crt -n CA -t "TC,C,"
${TESTBIN}/certutil -A -d $SMIME_CERT_DB_DIR -i Client.crt -n Client \
-t "TC,C,"
fi
# if p7m-sd-dt-files.txt does not exist, then generate it.
if [ ! -f p7m-sd-dt-files.txt ]; then
find ./p7m-sd-dt-[cm]-* -type f -print >> p7m-sd-dt-files.txt
fi
if [ ! -f detached.txt ]; then
touch detached.txt
fi
${TESTBIN}/cmsutil -D -d $SMIME_CERT_DB_DIR -c detached.txt -b -i \
p7m-sd-dt-files.txt > $NISCC_HOME/niscc_smime/p7m-sd-dt-results.txt 2>&1
# if p7m-sd-op-files.txt does not exist, then generate it.
if [ ! -f p7m-sd-op-files.txt ]; then
find ./p7m-sd-op-[cm]-* -type f -print >> p7m-sd-op-files.txt
fi
${TESTBIN}/cmsutil -D -d $SMIME_CERT_DB_DIR -b -i p7m-sd-op-files.txt > \
$NISCC_HOME/niscc_smime/p7m-sd-op-results.txt 2>&1
unset LD_LIBRARY_PATH
find_core
}
#end of smime section
##############################################################
# set env variables for NISCC SSL tests
##############################################################
niscc_ssl_init()
{
NSS_STRICT_SHUTDOWN=1; export NSS_STRICT_SHUTDOWN
NSS_DISABLE_ARENA_FREE_LIST=1; export NSS_DISABLE_ARENA_FREE_LIST
cd $NISCC_HOME
}
##############################################################
# do simple client auth tests
# Use an altered client against the server
##############################################################
ssl_simple_client_auth()
{
CLIENT=${NISCC_HOME}/niscc_ssl/simple_client; export CLIENT
SERVER=${NISCC_HOME}/niscc_ssl/simple_server; export SERVER
PORT=8443; export PORT
START_AT=1; export START_AT
STOP_AT=106160; export STOP_AT
unset NISCC_TEST; export NISCC_TEST
LD_LIBRARY_PATH=${TESTLIB}; export LD_LIBRARY_PATH
${TESTBIN}/selfserv -p $PORT -d $SERVER -n server_crt -rr -t 5 -w test > \
$NISCC_HOME/nisccLog01 2>&1 &
sleep 10
NISCC_TEST=$TEST/simple_client; export NISCC_TEST
LD_LIBRARY_PATH=${HACKLIB}; export LD_LIBRARY_PATH
${HACKBIN}/strsclnt -d $CLIENT -n client_crt -p $PORT -t 4 -c 106160 -o -N \
-w test $HOSTNAME > $NISCC_HOME/nisccLog02 2>&1
unset NISCC_TEST; export NISCC_TEST
echo "starting tstclnt to shutdown simple client selfserv process"
${HACKBIN}/tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f -w \
test < $CLIENT/stop.txt >> nisccLog02 2>&1
${HACKBIN}/tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f -w \
test < $CLIENT/stop.txt >> nisccLog02 2>&1
${HACKBIN}/tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f -w \
test < $CLIENT/stop.txt >> nisccLog02 2>&1
${HACKBIN}/tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f -w \
test < $CLIENT/stop.txt >> nisccLog02 2>&1
${HACKBIN}/tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f -w \
test < $CLIENT/stop.txt >> nisccLog02 2>&1
unset LD_LIBRARY_PATH
sleep 10
find_core
}
##############################################################
# do simple server auth tests
# Use an altered server against the client
##############################################################
ssl_simple_server_auth()
{
CLIENT=${NISCC_HOME}/niscc_ssl/simple_client; export CLIENT
SERVER=${NISCC_HOME}/niscc_ssl/simple_server; export SERVER
PORT=8444; export PORT
START_AT=1; export START_AT
STOP_AT=106167; export STOP_AT
LD_LIBRARY_PATH=${HACKLIB}; export LD_LIBRARY_PATH
NISCC_TEST=$TEST/simple_server; export NISCC_TEST
${HACKBIN}/selfserv -p $PORT -d $SERVER -n server_crt -t 5 -w test > \
$NISCC_HOME/nisccLog03 2>&1 &
unset NISCC_TEST; export NISCC_TEST
LD_LIBRARY_PATH=${TESTLIB}; export LD_LIBRARY_PATH
${TESTBIN}/strsclnt -d $CLIENT -p $PORT -t 4 -c 106167 -o -N $HOSTNAME > \
$NISCC_HOME/nisccLog04 2>&1
echo "starting tstclnt to shutdown simple server selfserv process"
${TESTBIN}/tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f \
-w test < $CLIENT/stop.txt >> nisccLog04 2>&1
${TESTBIN}/tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f \
-w test < $CLIENT/stop.txt >> nisccLog04 2>&1
${TESTBIN}/tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f \
-w test < $CLIENT/stop.txt >> nisccLog04 2>&1
${TESTBIN}/tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f \
-w test < $CLIENT/stop.txt >> nisccLog04 2>&1
${TESTBIN}/tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f \
-w test < $CLIENT/stop.txt >> nisccLog04 2>&1
unset LD_LIBRARY_PATH
sleep 10
find_core
}
##############################################################
# do simple rootCA tests
# Use an altered server against the client
##############################################################
ssl_simple_rootca()
{
CLIENT=${NISCC_HOME}/niscc_ssl/simple_client; export CLIENT
SERVER=${NISCC_HOME}/niscc_ssl/simple_server; export SERVER
PORT=8445; export PORT
START_AT=1; export START_AT
STOP_AT=106190; export STOP_AT
LD_LIBRARY_PATH=${HACKLIB}; export LD_LIBRARY_PATH
NISCC_TEST=$TEST/simple_rootca; export NISCC_TEST
${HACKBIN}/selfserv -p $PORT -d $SERVER -n server_crt -t 5 -w test > \
$NISCC_HOME/nisccLog05 2>&1 &
unset NISCC_TEST; export NISCC_TEST
LD_LIBRARY_PATH=${TESTLIB}; export LD_LIBRARY_PATH
${TESTBIN}/strsclnt -d $CLIENT -p $PORT -t 4 -c 106190 -o -N $HOSTNAME > \
$NISCC_HOME/nisccLog06 2>&1
echo "starting tstclnt to shutdown simple rootca selfserv process"
${TESTBIN}/tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f \
-w test < $CLIENT/stop.txt >> nisccLog06 2>&1
${TESTBIN}/tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f \
-w test < $CLIENT/stop.txt >> nisccLog06 2>&1
${TESTBIN}/tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f \
-w test < $CLIENT/stop.txt >> nisccLog06 2>&1
${TESTBIN}/tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f \
-w test < $CLIENT/stop.txt >> nisccLog06 2>&1
${TESTBIN}/tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f \
-w test < $CLIENT/stop.txt >> nisccLog06 2>&1
unset LD_LIBRARY_PATH
sleep 10
find_core
}
##############################################################
# do resigned client auth tests
# Use an altered client against the server
##############################################################
ssl_resigned_client_auth()
{
CLIENT=${NISCC_HOME}/niscc_ssl/resigned_client; export CLIENT
SERVER=${NISCC_HOME}/niscc_ssl/resigned_server; export SERVER
PORT=8446; export PORT
START_AT=0; export START_AT
STOP_AT=99981; export STOP_AT
unset NISCC_TEST; export NISCC_TEST
LD_LIBRARY_PATH=${TESTLIB}; export LD_LIBRARY_PATH
${TESTBIN}/selfserv -p $PORT -d $SERVER -n server_crt -rr -t 5 -w test > \
$NISCC_HOME/nisccLog07 2>&1 &
NISCC_TEST=$TEST/resigned_client; export NISCC_TEST
LD_LIBRARY_PATH=${HACKLIB}; export LD_LIBRARY_PATH
${HACKBIN}/strsclnt -d $CLIENT -n client_crt -p $PORT -t 4 -c 99982 -o -N \
-w test $HOSTNAME > $NISCC_HOME/nisccLog08 2>&1
unset NISCC_TEST; export NISCC_TEST
echo "starting tstclnt to shutdown resigned client selfserv process"
${HACKBIN}/tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f \
-w test < $CLIENT/stop.txt >> nisccLog08 2>&1
${HACKBIN}/tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f \
-w test < $CLIENT/stop.txt >> nisccLog08 2>&1
${HACKBIN}/tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f \
-w test < $CLIENT/stop.txt >> nisccLog08 2>&1
${HACKBIN}/tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f \
-w test < $CLIENT/stop.txt >> nisccLog08 2>&1
${HACKBIN}/tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f \
-w test < $CLIENT/stop.txt >> nisccLog08 2>&1
unset LD_LIBRARY_PATH
sleep 10
find_core
}
##############################################################
# do resigned server auth tests
# Use an altered server against the client
##############################################################
ssl_resigned_server_auth()
{
CLIENT=${NISCC_HOME}/niscc_ssl/resigned_client; export CLIENT
SERVER=${NISCC_HOME}/niscc_ssl/resigned_server; export SERVER
PORT=8447; export PORT
START_AT=0; export START_AT
STOP_AT=100068; export STOP_AT
LD_LIBRARY_PATH=${HACKLIB}; export LD_LIBRARY_PATH
NISCC_TEST=$TEST/resigned_server; export NISCC_TEST
${HACKBIN}/selfserv -p $PORT -d $SERVER -n server_crt -t 5 -w test > \
$NISCC_HOME/nisccLog09 2>&1 &
unset NISCC_TEST; export NISCC_TEST
LD_LIBRARY_PATH=${TESTLIB}; export LD_LIBRARY_PATH
${TESTBIN}/strsclnt -d $CLIENT -p $PORT -t 4 -c 100069 -o -N $HOSTNAME > \
$NISCC_HOME/nisccLog10 2>&1
echo "starting tstclnt to shutdown resigned server selfserv process"
${TESTBIN}/tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f \
-w test < $CLIENT/stop.txt >> nisccLog10 2>&1
${TESTBIN}/tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f \
-w test < $CLIENT/stop.txt >> nisccLog10 2>&1
${TESTBIN}/tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f \
-w test < $CLIENT/stop.txt >> nisccLog10 2>&1
${TESTBIN}/tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f \
-w test < $CLIENT/stop.txt >> nisccLog10 2>&1
${TESTBIN}/tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f \
-w test < $CLIENT/stop.txt >> nisccLog10 2>&1
unset LD_LIBRARY_PATH
sleep 10
find_core
}
##############################################################
# do resigned rootCA tests
# Use an altered server against the client
##############################################################
ssl_resigned_rootca()
{
CLIENT=${NISCC_HOME}/niscc_ssl/resigned_client; export CLIENT
SERVER=${NISCC_HOME}/niscc_ssl/resigned_server; export SERVER
PORT=8448; export PORT
START_AT=0; export START_AT
STOP_AT=99959; export STOP_AT
LD_LIBRARY_PATH=${HACKLIB}; export LD_LIBRARY_PATH
NISCC_TEST=$TEST/resigned_rootca; export NISCC_TEST
${HACKBIN}/selfserv -p $PORT -d $SERVER -n server_crt -t 5 -w test > \
$NISCC_HOME/nisccLog11 2>&1 &
unset NISCC_TEST; export NISCC_TEST
LD_LIBRARY_PATH=${TESTLIB}; export LD_LIBRARY_PATH
${TESTBIN}/strsclnt -d $CLIENT -p $PORT -t 4 -c 99960 -o -N $HOSTNAME > \
$NISCC_HOME/nisccLog12 2>&1
echo "starting tstclnt to shutdown resigned rootca selfserv process"
${TESTBIN}/tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f \
-w test < $CLIENT/stop.txt >> nisccLog12 2>&1
${TESTBIN}/tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f \
-w test < $CLIENT/stop.txt >> nisccLog12 2>&1
${TESTBIN}/tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f \
-w test < $CLIENT/stop.txt >> nisccLog12 2>&1
${TESTBIN}/tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f \
-w test < $CLIENT/stop.txt >> nisccLog12 2>&1
${TESTBIN}/tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f \
-w test < $CLIENT/stop.txt >> nisccLog12 2>&1
unset LD_LIBRARY_PATH
sleep 10
find_core
}
###############################################################
# find core file and email if found, move core file to save it
###############################################################
find_core()
{
for w in `find $NISCC_HOME -name "core" -print`
do
mv $w $w.`date +%H%M%S`
done
}
###############################################################
# NISCC tests result in a failure only if a core file is produced
# Mail out the status - the log summary is not mailed due to its
# size of about one hundred megabytes.
###############################################################
mail_testLog()
{
# remove mozilla nss build false positives and core stored in previous runs
find $NISCC_HOME -name "core*" -print | grep -v coreconf | grep -v \
core_watch | grep -v archive >> $NISCC_HOME/crashLog
SIZE=`cat $NISCC_HOME/crashLog | wc -l`
if [ "$SIZE" -gt 0 ]; then
cat $NISCC_HOME/crashLog >> $NISCC_HOME/nisccLogSummary
$MAIL_COMMAND -s "WEEKLY NISCC TESTS FAILED: check end of logfile" \
$QA_LIST < /dev/null
else
$MAIL_COMMAND -s "PASSED: weekly NISCC tests completed" \
$QA_LIST < /dev/null
fi
}
###############################################################
# summarise all logs
###############################################################
log_summary()
{
for a in $NISCC_HOME/nisccLog[0-9]*
do echo ================================== $a
grep -v using $a | sort | uniq -c | sort -b -n +0 -1
done | tee $NISCC_HOME/nisccLogSummary
for a in $NISCC_HOME/niscc_smime/p7m-*-results.txt
do echo ================================== $a
grep -v using $a | sort | uniq -c | sort -b -n +0 -1
done | tee -a $NISCC_HOME/nisccLogSummary
}
###############################################################
# move the old mozilla and log files to save them, delete extra
# log files
###############################################################
move_files()
{
cd $NISCC_HOME
if [ "$LOG_STORE" = "true" ]; then
# Check for archive directory
if [ ! -d $NISCC_HOME/archive ]; then
mkdir -p $NISCC_HOME/archive
fi
# Determine next log storage point
DATE=`date +%Y%m%d`
SLOT=`ls -1 $NISCC_HOME/archive | grep ${DATE} | wc -l`
SLOT=`expr $SLOT + 1`
LOCATION=$NISCC_HOME/archive/${DATE}.${SLOT}
mkdir -p ${LOCATION}
# Archive the logs
mv nisccBuildLog ${LOCATION} 2> /dev/null
mv nisccLogSummary ${LOCATION}
mv nisccLog00 ${LOCATION}
mv nisccLog01 ${LOCATION}
mv nisccLog02 ${LOCATION}
mv nisccLog03 ${LOCATION}
mv nisccLog04 ${LOCATION}
mv nisccLog05 ${LOCATION}
mv nisccLog06 ${LOCATION}
mv nisccLog07 ${LOCATION}
mv nisccLog08 ${LOCATION}
mv nisccLog09 ${LOCATION}
mv nisccLog10 ${LOCATION}
mv nisccLog11 ${LOCATION}
mv nisccLog12 ${LOCATION}
mv niscc_smime/p7m-ed-m-results.txt ${LOCATION}
mv niscc_smime/p7m-sd-dt-results.txt ${LOCATION}
mv niscc_smime/p7m-sd-op-results.txt ${LOCATION}
# Archive any core files produced
for CORE in `cat $NISCC_HOME/crashLog`
do
mv $CORE ${LOCATION}
done
mv crashLog ${LOCATION}
return
fi
if [ -d ../mozilla ]; then
mv -f ../mozilla ../mozilla.old
mv nisccBuildLog nisccBuildLog.old
fi
mv nisccLogSummary nisccLogSummary.old
mv crashLog crashLog.old
rm -f nisccLog00 nisccLog01 nisccLog02 nisccLog03 nisccLog04 nisccLog05 \
nisccLog06 nisccLog07 nisccLog08 nisccLog09 nisccLog10 nisccLog11 nisccLog12
rm -f niscc_smime/p7m-ed-m-results.txt \
niscc_smime/p7m-sd-dt-results.txt \
niscc_smime/p7m-sd-op-results.txt
}
############################## main ##############################
init
niscc_smime
niscc_ssl_init
ssl_setup_dirs_simple
ssl_simple_client_auth
ssl_simple_server_auth
ssl_simple_rootca
ssl_setup_dirs_resigned
ssl_resigned_client_auth
ssl_resigned_server_auth
ssl_resigned_rootca
log_summary
mail_testLog
move_files