gecko-dev/security/nss/tests/run_niscc.sh
bishakhabanerjee%netscape.com 4cb1108d34 chenged log names to better align them in summary, added SMIME test output
to emailed log summary
2004-05-27 22:09:03 +00:00

488 lines
18 KiB
Bash
Executable File

#!/bin/sh
##############################################################
# do a cvs pull of NSS
##############################################################
cvs_pull()
{
HOME=/share/builds/sbstools/nsstools/tmp; export HOME
cd $HOME/..
#do a CVS checkout of NSS, set your own CVSROOT
cvs co mozilla/security/nss mozilla/security/coreconf
}
##############################################################
# build NSS after setting make variable NISCC_TEST
##############################################################
build_NSS()
{
HOME=/share/builds/sbstools/nsstools/tmp; export HOME
cd $HOME/..
NISCC_TEST=1; export NISCC_TEST
cd mozilla/security/coreconf
gmake import >> $HOME/nisccBuildLog
gmake >> $HOME/nisccBuildLog
cd ../nss
gmake import >> $HOME/nisccBuildLog
gmake >> $HOME/nisccBuildLog
}
##############################################################
# set build dir, hostname, bin and lib directories
##############################################################
init()
{
#
#enable useful core files to be generated in case of crash
#
unlimit coredumpsize
LOCALDIST=/share/builds/sbstools/nsstools/mozilla/dist; export LOCALDIST
#
# set appropriate hostname
#
DOMSUF=mcom.com
if [ -z "$HOST" ]
then
HOST=`uname -n`
fi
HOSTNAME=$HOST.$DOMSUF; export HOSTNAME
#
# set bin and lib directory for Solaris and Linux
#
case `uname -s` in
SunOS)
LOCALDIST_BIN=${LOCALDIST}/SunOS5.8_DBG.OBJ/bin
LOCALDIST_LIB=${LOCALDIST}/SunOS5.8_DBG.OBJ/lib
echo $LOCALDIST_BIN
;;
Linux)
LOCALDIST_BIN=${LOCALDIST}/Linux2.4_x86_glibc_PTH_DBG.OBJ/bin
LOCALDIST_LIB=${LOCALDIST}/Linux2.4_x86_glibc_PTH_DBG.OBJ/lib
echo $LOCALDIST_BIN
;;
HP-UX)
LOCALDIST_BIN=${LOCALDIST}/HP-UXB.11.00_DBG.OBJ/bin
LOCALDIST_LIB=${LOCALDIST}/HP-UXB.11.00_DBG.OBJ/lib
echo $LOCALDIST_BIN
;;
esac
export LOCALDIST_BIN LOCALDIST_LIB
PATH=/lib:/usr/lib:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/tools/ns/bin:$LOCALDIST_LIB:$LOCALDIST_BIN; export PATH
LD_LIBRARY_PATH=$LOCALDIST_LIB; export LD_LIBRARY_PATH
echo "PATH" $PATH
echo "LD_LIBRARY_PATH" $LD_LIBRARY_PATH
#run strings command to verify NISCC_TEST was set and built
echo "strings $LD_LIBRARY_PATH/libssl3.so | grep NISCC_TEST > $HOME/nisccLog 2>&1"
strings $LD_LIBRARY_PATH/libssl3.so | grep NISCC_TEST > $HOME/nisccLog 2>&1
}
#end of init section
##############################################################
# Setup simple client and server directory
# NOTE: this function is not called in main, these dirs need
# only be set up once
##############################################################
ssl_setup_dirs_simple()
{
CLIENT=/share/builds/sbstools/nsstools/tmp/niscc_ssl/simple_client
SERVER=/share/builds/sbstools/nsstools/tmp/niscc_ssl/simple_server
#
# Setup simple client directory
#
rm -rf $CLIENT
mkdir -p $CLIENT
echo test > $CLIENT/password-is-test.txt
certutil -N -d $CLIENT -f $CLIENT/password-is-test.txt
certutil -A -d $CLIENT -n rootca -i $TEST/rootca.crt -t "C,C,"
pk12util -i $TEST/client_crt.p12 -d $CLIENT -k $CLIENT/password-is-test.txt \
-W testtest1
certutil -L -d $CLIENT
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
certutil -N -d $SERVER -f $SERVER/password-is-test.txt
certutil -A -d $SERVER -n rootca -i $TEST/rootca.crt -t "TC,C,"
pk12util -i $TEST/server_crt.p12 -d $SERVER -k $SERVER/password-is-test.txt \
-W testtest1
certutil -L -d $SERVER
}
##############################################################
# Setup resigned client and server directory
# NOTE: this function is not called in main, these dirs need
# only be set up once
###############################################################
ssl_setup_dirs_resigned()
{
CLIENT=/share/builds/sbstools/nsstools/tmp/niscc_ssl/resigned_client
SERVER=/share/builds/sbstools/nsstools/tmp/niscc_ssl/resigned_server
#
# Setup resigned client directory
#
rm -rf $CLIENT
mkdir -p $CLIENT
echo test > $CLIENT/password-is-test.txt
certutil -N -d $CLIENT -f $CLIENT/password-is-test.txt
certutil -A -d $CLIENT -n rootca -i $TEST/rootca.crt -t "C,C,"
pk12util -i $TEST/client_crt.p12 -d $CLIENT -k $CLIENT/password-is-test.txt \
-W testtest1
certutil -L -d $CLIENT
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
certutil -N -d $SERVER -f $SERVER/password-is-test.txt
certutil -A -d $SERVER -n rootca -i $TEST/rootca.crt -t "TC,C,"
pk12util -i $TEST/server_crt.p12 -d $SERVER -k $SERVER/password-is-test.txt \
-W testtest1
certutil -L -d $SERVER
}
##############################################################
# NISCC SMIME tests
##############################################################
niscc_smime()
{
cd /share/builds/sbstools/nsstools/tmp/NISCC_SMIME_testcases
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
HOME=/share/builds/sbstools/nsstools/tmp/niscc_smime
cmsutil -D -d $SMIME_CERT_DB_DIR -p testtest1 -b -i p7m-ed-m-files.txt > \
$HOME/p7m-ed-m-results.txt 2>&1 &
SMIME_CERT_DB_DIR=sigDB; export SMIME_CERT_DB_DIR
cmsutil -D -d $SMIME_CERT_DB_DIR -c detached.txt -b -i p7m-sd-dt-files.txt > \
$HOME/p7m-sd-dt-results.txt 2>&1 &
cmsutil -D -d $SMIME_CERT_DB_DIR -b -i p7m-sd-op-files.txt > \
$HOME/p7m-sd-op-results.txt 2>&1 &
}
#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
TEST=/share/builds/sbstools/nsstools/tmp/NISCC_SSL_testcases; export TEST
HOME=/share/builds/sbstools/nsstools/tmp; export HOME
cd $HOME
}
##############################################################
# do simple client auth tests
##############################################################
ssl_simple_client_auth()
{
CLIENT=/share/builds/sbstools/nsstools/tmp/niscc_ssl/simple_client; export CLIENT
SERVER=/share/builds/sbstools/nsstools/tmp/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
selfserv -p $PORT -d $SERVER -n server_crt -rr -t 5 -w test > $HOME/nisccLog01 2>&1 &
NISCC_TEST=$TEST/simple_client; export NISCC_TEST
strsclnt -d $CLIENT -n client_crt -p $PORT -t 4 -c 106160 -o -N -w test $HOSTNAME > $HOME/nisccLog02 2>&1
unset NISCC_TEST; export NISCC_TEST
echo "starting tstclnt to shutdown simple client selfserv process"
tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f -w test < $CLIENT/stop.txt >> nisccLog02 2>&1
tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f -w test < $CLIENT/stop.txt >> nisccLog02 2>&1
tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f -w test < $CLIENT/stop.txt >> nisccLog02 2>&1
tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f -w test < $CLIENT/stop.txt >> nisccLog02 2>&1
tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f -w test < $CLIENT/stop.txt >> nisccLog02 2>&1
sleep 10
find_core
}
##############################################################
# do simple server auth tests
##############################################################
ssl_simple_server_auth()
{
CLIENT=/share/builds/sbstools/nsstools/tmp/niscc_ssl/simple_client; export CLIENT
SERVER=/share/builds/sbstools/nsstools/tmp/niscc_ssl/simple_server; export SERVER
PORT=8444; export PORT
START_AT=1; export START_AT
STOP_AT=106167; export STOP_AT
NISCC_TEST=$TEST/simple_server; export NISCC_TEST
selfserv -p $PORT -d $SERVER -n server_crt -t 5 -w test > $HOME/nisccLog03 2>&1 &
unset NISCC_TEST; export NISCC_TEST
strsclnt -d $CLIENT -p $PORT -t 4 -c 106167 -o -N $HOSTNAME > $HOME/nisccLog04 2>&1
echo "starting tstclnt to shutdown simple server selfserv process"
tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f -w test < $CLIENT/stop.txt >> nisccLog04 2>&1
tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f -w test < $CLIENT/stop.txt >> nisccLog04 2>&1
tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f -w test < $CLIENT/stop.txt >> nisccLog04 2>&1
tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f -w test < $CLIENT/stop.txt >> nisccLog04 2>&1
tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f -w test < $CLIENT/stop.txt >> nisccLog04 2>&1
sleep 10
find_core
}
##############################################################
# do simple rootCA tests
##############################################################
ssl_simple_rootca()
{
CLIENT=/share/builds/sbstools/nsstools/tmp/niscc_ssl/simple_client; export CLIENT
SERVER=/share/builds/sbstools/nsstools/tmp/niscc_ssl/simple_server; export SERVER
PORT=8445; export PORT
START_AT=1; export START_AT
STOP_AT=106190; export STOP_AT
NISCC_TEST=$TEST/simple_rootca; export NISCC_TEST
selfserv -p $PORT -d $SERVER -n server_crt -t 5 -w test > $HOME/nisccLog05 2>&1 &
unset NISCC_TEST; export NISCC_TEST
strsclnt -d $CLIENT -p $PORT -t 4 -c 106190 -o -N $HOSTNAME> $HOME/nisccLog06 2>&1
echo "starting tstclnt to shutdown simple rootca selfserv process"
tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f -w test < $CLIENT/stop.txt >> nisccLog06 2>&1
tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f -w test < $CLIENT/stop.txt >> nisccLog06 2>&1
tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f -w test < $CLIENT/stop.txt >> nisccLog06 2>&1
tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f -w test < $CLIENT/stop.txt >> nisccLog06 2>&1
tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f -w test < $CLIENT/stop.txt >> nisccLog06 2>&1
sleep 10
find_core
}
##############################################################
# do resigned client auth tests
##############################################################
ssl_resigned_client_auth()
{
CLIENT=/share/builds/sbstools/nsstools/tmp/niscc_ssl/resigned_client; export CLIENT
SERVER=/share/builds/sbstools/nsstools/tmp/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
selfserv -p $PORT -d $SERVER -n server_crt -rr -t 5 -w test > $HOME/nisccLog07 2>&1 &
NISCC_TEST=$TEST/resigned_client; export NISCC_TEST
strsclnt -d $CLIENT -n client_crt -p $PORT -t 4 -c 99982 -o -N -w test $HOSTNAME > $HOME/nisccLog08 2>&1
unset NISCC_TEST; export NISCC_TEST
echo "starting tstclnt to shutdown resigned client selfserv process"
tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f -w test < $CLIENT/stop.txt >> nisccLog08 2>&1
tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f -w test < $CLIENT/stop.txt >> nisccLog08 2>&1
tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f -w test < $CLIENT/stop.txt >> nisccLog08 2>&1
tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f -w test < $CLIENT/stop.txt >> nisccLog08 2>&1
tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f -w test < $CLIENT/stop.txt >> nisccLog08 2>&1
sleep 10
find_core
}
##############################################################
# do resigned server auth tests
##############################################################
ssl_resigned_server_auth()
{
CLIENT=/share/builds/sbstools/nsstools/tmp/niscc_ssl/resigned_client; export CLIENT
SERVER=/share/builds/sbstools/nsstools/tmp/niscc_ssl/resigned_server; export SERVER
PORT=8447; export PORT
START_AT=0; export START_AT
STOP_AT=100068; export STOP_AT
NISCC_TEST=$TEST/resigned_server; export NISCC_TEST
selfserv -p $PORT -d $SERVER -n server_crt -t 5 -w test > $HOME/nisccLog09 2>&1 &
unset NISCC_TEST; export NISCC_TEST
strsclnt -d $CLIENT -p $PORT -t 4 -c 100069 -o -N $HOSTNAME> $HOME/nisccLog10 2>&1
echo "starting tstclnt to shutdown resigned server selfserv process"
tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f -w test < $CLIENT/stop.txt >> nisccLog10 2>&1
tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f -w test < $CLIENT/stop.txt >> nisccLog10 2>&1
tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f -w test < $CLIENT/stop.txt >> nisccLog10 2>&1
tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f -w test < $CLIENT/stop.txt >> nisccLog10 2>&1
tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f -w test < $CLIENT/stop.txt >> nisccLog10 2>&1
sleep 10
find_core
}
##############################################################
# do resigned rootCA tests
##############################################################
ssl_resigned_rootca()
{
CLIENT=/share/builds/sbstools/nsstools/tmp/niscc_ssl/resigned_client; export CLIENT
SERVER=/share/builds/sbstools/nsstools/tmp/niscc_ssl/resigned_server; export SERVER
PORT=8448; export PORT
START_AT=0; export START_AT
STOP_AT=99959; export STOP_AT
NISCC_TEST=$TEST/resigned_rootca; export NISCC_TEST
selfserv -p $PORT -d $SERVER -n server_crt -t 5 -w test > $HOME/nisccLog11 2>&1 &
unset NISCC_TEST; export NISCC_TEST
strsclnt -d $CLIENT -p $PORT -t 4 -c 99960 -o -N $HOSTNAME> $HOME/nisccLog12 2>&1
echo "starting tstclnt to shutdown resigned rootca selfserv process"
tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f -w test < $CLIENT/stop.txt >> nisccLog12 2>&1
tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f -w test < $CLIENT/stop.txt >> nisccLog12 2>&1
tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f -w test < $CLIENT/stop.txt >> nisccLog12 2>&1
tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f -w test < $CLIENT/stop.txt >> nisccLog12 2>&1
tstclnt -h $HOSTNAME -p $PORT -d $CLIENT -n client_crt -o -f -w test < $CLIENT/stop.txt >> nisccLog12 2>&1
sleep 10
find_core
}
###############################################################
# find core file and email if found, move core file to save it
###############################################################
find_core()
{
HOME=/share/builds/sbstools/nsstools/tmp; export HOME
for w in `find $HOME -name "core" -print`
do
mv $w $w.`date +%H%M%S`
done
}
###############################################################
# email the test logfile, and if core found, notify of failure
###############################################################
mail_testLog()
{
HOME=/share/builds/sbstools/nsstools/tmp; export HOME
find $HOME -name "core*" -print >> $HOME/crashLog
SIZE=`cat $HOME/crashLog | wc -l`
if [ "$SIZE" -gt 0 ]
then
cat $HOME/crashLog >> $HOME/nisccLogSummary
/bin/mail -s "WEEKLY NISCC TESTS FAILED: check end of logfile" \
nss-qa-report@mcom.com < $HOME/nisccLogSummary
else
/bin/mail -s "PASSED: weekly NISCC tests completed" \
nss-qa-report@mcom.com < $HOME/nisccLogSummary
fi
}
###############################################################
# append all logs to primary log
# NOTE: this results in a huge log,fills up available space
# and is decommissioned
###############################################################
append_all_logs()
{
HOME=/share/builds/sbstools/nsstools/tmp; export HOME
cat $HOME/NISCC_SMIME_testcases/p7m-ed-m-results.txt >> $HOME/nisccLog
cat $HOME/NISCC_SMIME_testcases/p7m-sd-dt-results.txt >> $HOME/nisccLog
cat $HOME/NISCC_SMIME_testcases/p7m-sd-op-results.txt >> $HOME/nisccLog
cat $HOME/nisccLog01 >> $HOME/nisccLog
cat $HOME/nisccLog02 >> $HOME/nisccLog
cat $HOME/nisccLog03 >> $HOME/nisccLog
cat $HOME/nisccLog04 >> $HOME/nisccLog
cat $HOME/nisccLog05 >> $HOME/nisccLog
cat $HOME/nisccLog06 >> $HOME/nisccLog
cat $HOME/nisccLog07 >> $HOME/nisccLog
cat $HOME/nisccLog08 >> $HOME/nisccLog
cat $HOME/nisccLog09 >> $HOME/nisccLog
cat $HOME/nisccLog10 >> $HOME/nisccLog
cat $HOME/nisccLog11 >> $HOME/nisccLog
cat $HOME/nisccLog12 >> $HOME/nisccLog
}
###############################################################
# summarise all logs
###############################################################
log_summary()
{
HOME=/share/builds/sbstools/nsstools/tmp; export HOME
for a in $HOME/nisccLog[0-9]*
do echo ================================== $a
grep -v using $a | sort | uniq -c | sort -b -n +0 -1
done | tee $HOME/nisccLogSummary
for a in $HOME/niscc_smime/p7m-*-results.txt
do echo ================================== $a
grep -v using $a | sort | uniq -c | sort -b -n +0 -1
done | tee -a $HOME/nisccLogSummary
}
###############################################################
# move the old mozilla and log files to save them, delete extra
# log files
###############################################################
move_files()
{
HOME=/share/builds/sbstools/nsstools/tmp; export HOME
cd $HOME
mv -f ../mozilla ../mozilla.old
mv nisccLogSummary nisccLogSummary.old
mv crashLog crashLog.old
mv nisccBuildLog nisccBuildLog.old
rm -f 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 ##############################
cvs_pull
build_NSS
init
niscc_smime; find_core
niscc_ssl_init
ssl_simple_client_auth
ssl_simple_server_auth
ssl_simple_rootca
ssl_resigned_client_auth
ssl_resigned_server_auth
ssl_resigned_rootca
log_summary
mail_testLog
move_files