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################################################################################ 24usage() 25{ 26 cat << EOF 27Usage: $0 [options] 28 29Test NSS library against NISCC SMIME and TLS testcases. 30 31Options: 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 49All options are optional. 50All options (and possibly more) can be also set through environment variables. 51Commandline options have higher priority than environment variables. 52For more information please refer to the source code of this script. 53 54For a successfull run the script NEEDS the core file pattern to be 'core.*', 55e.g. 'core.%t'. You can check the current pattern in 56'/proc/sys/kernel/core_pattern'. Otherwise the test will be unable to detect 57any failures and will pass every time. 58 59It is recommended to use hacked and tested binaries in a location, where their 60absolute path is max. 80 characters. If their path is longer and a core file is 61generated, its properties may be incomplete. 62 63Return value of the script indicates how many failures it experienced. 64 65EOF 66 exit $1 67} 68 69################################################################################ 70# Process command-line arguments 71################################################################################ 72process_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################################################################################ 166create_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################################################################################ 242hg_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################################################################################ 275build_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################################################################################ 303init() 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################################################################################ 357ssl_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################################################################################ 407ssl_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################################################################################ 452niscc_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################################################################################ 546niscc_ssl_init() 547{ 548 export NSS_STRICT_SHUTDOWN=1 549 export NSS_DISABLE_ARENA_FREE_LIST=1 550 cd "$TEST_OUTPUT" 551} 552 553force_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################################################################################ 564ssl_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################################################################################ 607ssl_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################################################################################ 646ssl_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################################################################################ 685ssl_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################################################################################ 728ssl_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################################################################################ 767ssl_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################################################################################ 805mail_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################################################################################ 861log_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################################################################################ 882core_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" 891where 892quit 893EOF_GDB 894 done 895} 896 897################################################################################ 898# Move the old log files to save them, delete extra log files 899################################################################################ 900move_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################################################################################ 956process_args $* 957create_environment 958hg_pull 959build_NSS 960init 961niscc_smime 962niscc_ssl_init 963force_crash 964ssl_setup_dirs_simple 965 ssl_simple_client_auth 966 ssl_simple_server_auth 967 ssl_simple_rootca 968ssl_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 978log_summary 979mail_testLog 980core_process 981move_files 982exit $SIZE 983