security/nss/tests/multinit/multinit.sh

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rwxr-xr-x

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 #! /bin/sh  
     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/.
     7 ########################################################################
     8 #
     9 # mozilla/security/nss/tests/multinit/multinit.sh
    10 #
    11 # Script to test NSS multinit
    12 #
    13 # needs to work on all Unix and Windows platforms
    14 #
    15 # special strings
    16 # ---------------
    17 #   FIXME ... known problems, search for this string
    18 #   NOTE .... unexpected behavior
    19 #
    20 ########################################################################
    22 ############################## multinit_init ##############################
    23 # local shell function to initialize this script
    24 ########################################################################
    25 multinit_init()
    26 {
    27   SCRIPTNAME=multinit.sh      # sourced - $0 would point to all.sh
    29   if [ -z "${CLEANUP}" ] ; then     # if nobody else is responsible for
    30       CLEANUP="${SCRIPTNAME}"       # cleaning this script will do it
    31   fi
    33   if [ -z "${INIT_SOURCED}" -o "${INIT_SOURCED}" != "TRUE" ]; then
    34       cd ../common
    35       . ./init.sh
    36   fi
    37   if [ ! -r $CERT_LOG_FILE ]; then  # we need certificates here
    38       cd ../cert
    39       . ./cert.sh
    40   fi
    41   SCRIPTNAME=multinit.sh
    43   html_head "MULTI Tests"
    45   grep "SUCCESS: SMIME passed" $CERT_LOG_FILE >/dev/null || {
    46       Exit 11 "Fatal - S/MIME of cert.sh needs to pass first"
    47   }
    49   # set up our directories
    50   MULTINITDIR=${HOSTDIR}/multinit
    51   MULTINITDIR_1=${MULTINITDIR}/dir1
    52   MULTINITDIR_2=${MULTINITDIR}/dir2
    53   MULTINITDIR_3=${MULTINITDIR}/dir3
    54   R_MULINITDIR=../multinit
    55   R_MULTINITDIR_1=${R_MULTINITDIR}/dir1
    56   R_MULTINITDIR_2=${R_MULTINITDIR}/dir2
    57   R_MULTINITDIR_3=${R_MULTINITDIR}/dir3
    58   # first create them all
    59   mkdir -p ${MULTINITDIR}
    60   mkdir -p ${MULTINITDIR_1}
    61   mkdir -p ${MULTINITDIR_2}
    62   mkdir -p ${MULTINITDIR_3}
    63   # now copy them fro alice, bob, and dave
    64   cd ${MULTINITDIR}
    65   cp ${P_R_ALICEDIR}/* ${MULTINITDIR_1}/
    66   cp ${P_R_BOBDIR}/*   ${MULTINITDIR_2}/
    67   cp ${P_R_DAVEDIR}/*  ${MULTINITDIR_3}/
    68   # finally delete the RootCerts module to keep the certificate noice in the
    69   # summary lines down
    70   echo | modutil -delete RootCerts -dbdir ${MULTINITDIR_1}
    71   echo | modutil -delete RootCerts -dbdir ${MULTINITDIR_2}
    72   echo | modutil -delete RootCerts -dbdir ${MULTINITDIR_3}
    73   MULTINIT_TESTS=${QADIR}/multinit/multinit.txt
    74 }
    77 ############################## multinit_main ##############################
    78 # local shell function to test basic signed and enveloped messages 
    79 # from 1 --> 2"
    80 ########################################################################
    81 multinit_main()
    82 {
    83   html_head "Multi init interface testing"
    84   exec < ${MULTINIT_TESTS}
    85   while read order commands shutdown_type dirs readonly testname
    86   do
    87     if [ "$order" != "#" ]; then
    88 	read tag expected_result
    90 	# handle the case where we expect different results based on
    91 	# the database type.
    92 	if [ "$tag" != "all" ]; then
    93 	    read tag2 expected_result2
    94 	    if [ "$NSS_DEFAULT_DB_TYPE" == "$tag2" ]; then
    95 		expected_result=$expected_result2
    96 	    fi
    97 	fi
    99 	# convert shutdown type to option flags
   100 	shutdown_command="";
   101 	if [ "$shutdown_type" == "old" ]; then
   102 	   shutdown_command="--oldStype"
   103 	fi
   105 	# convert read only to option flags
   106 	ro_command="";
   107 	case $readonly in
   108         all)  ro_command="--main_readonly --lib1_readonly --lib2_readonly";;
   109         libs) ro_command="--lib1_readonly --lib2_readonly";;
   110         main) ro_command="--main_readonly";;
   111         lib1) ro_command="--lib1_readonly";;
   112         lib2) ro_command="--lib2_readonly";;
   113 	none) ;;
   114 	*) ;;
   115 	esac
   117 	# convert commands to option flags
   118 	main_command=`echo $commands | sed -e 's;,.*$;;'`
   119 	lib1_command=`echo $commands | sed -e 's;,.*,;+&+;' -e 's;^.*+,;;' -e 's;,+.*$;;'`
   120 	lib2_command=`echo $commands | sed -e 's;^.*,;;'`
   122 	# convert db's to option flags
   123 	main_db=`echo $dirs | sed -e 's;,.*$;;'`
   124 	lib1_db=`echo $dirs | sed -e 's;,.*,;+&+;' -e 's;^.*+,;;' -e 's;,+.*$;;'`
   125 	lib2_db=`echo $dirs | sed -e 's;^.*,;;'`
   127 	# show us the command we are executing
   128 	echo ${PROFILETOOL} ${BINDIR}/multinit --order $order --main_command $main_command --lib1_command $lib1_command --lib2_command $lib2_command $shutdown_command --main_db $main_db --lib1_db $lib1_db --lib2_db $lib2_db $ro_command --main_token_name "Main" --lib1_token_name "Lib1" --lib2_token_name "Lib2" --verbose --summary 
   130 	# execute the command an collect the result. Most of the user
   131 	# visible output goes to stderr, so it's not captured by the pipe
   132 	actual_result=`${PROFILETOOL} ${BINDIR}/multinit --order $order --main_command $main_command --lib1_command $lib1_command --lib2_command $lib2_command $shutdown_command --main_db $main_db --lib1_db $lib1_db --lib2_db $lib2_db $ro_command --main_token_name "Main" --lib1_token_name "Lib1" --lib2_token_name "Lib2" --verbose --summary | grep "^result=" | sed -e 's;^result=;;'` 
   134 	# show what we got and what we expected for diagnostic purposes
   135 	echo "actual   = |$actual_result|"
   136 	echo "expected = |$expected_result|"
   137 	test  "$actual_result" == "$expected_result" 
   138 	html_msg $? 0 "$testname"
   139     fi
   140   done
   141 }
   143 ############################## multinit_cleanup ###########################
   144 # local shell function to finish this script (no exit since it might be
   145 # sourced)
   146 ########################################################################
   147 multinit_cleanup()
   148 {
   149   html "</TABLE><BR>"
   150   cd ${QADIR}
   151   . common/cleanup.sh
   152 }
   154 ################## main #################################################
   156 multinit_init
   157 multinit_main
   158 multinit_cleanup

mercurial