tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

multinit.sh (5584B)


      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/.
      6 
      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 ########################################################################
     21 
     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
     28 
     29  if [ -z "${CLEANUP}" ] ; then     # if nobody else is responsible for
     30      CLEANUP="${SCRIPTNAME}"       # cleaning this script will do it
     31  fi
     32 
     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
     42 
     43  html_head "MULTI Tests"
     44 
     45  grep "SUCCESS: SMIME passed" $CERT_LOG_FILE >/dev/null || {
     46      Exit 11 "Fatal - S/MIME of cert.sh needs to pass first"
     47  }
     48 
     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 }
     75 
     76 
     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
     89 
     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
     98 
     99 # convert shutdown type to option flags
    100 shutdown_command="";
    101 if [ "$shutdown_type" == "old" ]; then
    102    shutdown_command="--oldStype"
    103 fi
    104 
    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
    116 
    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;^.*,;;'`
    121 
    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;^.*,;;'`
    126 
    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 
    129 
    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=;;'` 
    133 
    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 }
    142  
    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 }
    153 
    154 ################## main #################################################
    155 
    156 multinit_init
    157 multinit_main
    158 multinit_cleanup