DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Mercurial (b66b287a2650)

VCS Links

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220
#! /bin/sh  

########################################################################
#
# /u/sonmi/bin/jssqa
#
# this script is supposed to automatically run - now a sanity test, later QA for 
# JSS on all required Unix and Windows (NT and 2000) platforms
#
# parameters
# ----------
#   jssversion  (supported: 31, tip)
#   builddate   (default - today)
#
# options
# -------
#   -y answer all questions with y - use at your own risk...ignores warnings
#   -s silent (only usefull with -y)
#   -h, -? - you guessed right - displays this text
#   -d debug
#   -f <filename> - write the (error)output to filename
#   -cron equivalient to -y -s -d -f $RESULTDIR/$HOST.nssqa
#
########################################################################

O_OPTIONS=ON            # accept options (see above for listing)
WIN_WAIT_FOREVER=OFF    # don't wait for the NSS testdir
PRODUCT_TO_TEST="JSS"
JSS_NSPR_DIR="/share/builds/components/nspr20/v4.1.2"
JSS_NSS_DIR="/share/builds/components/nss/NSS_3_3_1_RTM"
JSS_NSS_UX_SRC_DIR="nss331/builds/20010928.2.331-RTM/booboo_Solaris8"
JSS_NSS_NT_SRC_DIR="nss331/builds/20010928.2.331-RTM/blowfish_NT4.0_Win95"
JSS_NSS_SRC_DIR=$JSS_NSS_UX_SRC_DIR
NATIVE_FLAG=""

. `dirname $0`/header   # utilities, shellfunctions etc, global to NSS and JSS QA

if [ -z "$O_TBX" -o "$O_TBX" != "ON" ] ; then
    is_running ${TMP}/jssqa
                        # checks if the file exists, if yes Exits, if not
                        # creates to implement a primitive locking mechanism
fi

INTERNAL_TOKEN="NSS Certificate DB"
SIGTEST_INTERNAL_TOKEN="Internal Key Storage Token"

################################ jss_init #########################
# 
# Most of the procedure is setting up the test environment.
# set all necessary dir and file variables, set all paths, copy the shared libs 
# Put all the shared libraries into a lib directory, <libdir>.
# including the libjss3.so that was built by the build process.
# set LD_LIBRARY PATH and CLASSPATH
# The xpclass.jar produced by the JSS build needs to be in the classpath.
# The classpath must also include the current directory so we can run our test
# programs.
################################################################################

jss_init()
{
  Debug "Jss init"
  #correct all directories that the header has set...
  NTDIST=`echo $NTDIST | sed -e 's/nss/jss/g'`
  UXDIST=`echo $UXDIST | sed -e 's/nss/jss/g'`
  RESULTDIR=`echo $RESULTDIR | sed -e 's/nss/jss/g'`
  mkdir -p ${RESULTDIR} 2>/dev/null
  JSS_LOGFILE=${RESULTDIR}/${HOST}.txt
  FILENAME=$JSS_LOGFILE
  O_FILE=ON

  MOZILLA_ROOT=`echo $MOZILLA_ROOT | sed -e 's/nss/jss/g'`

  JSS_SAMPLES="$MOZILLA_ROOT/security/jss/samples"
  JSS_CLASSPATH=`echo $MOZILLA_ROOT | 
      sed -e "s/jss$NSSVER.builds/jss$NSSVER\/ships/g" -e "s/mozilla/jss\/${QAYEAR}${BUILDDATE}/"`
  Debug "JSS_CLASSPATH=$JSS_CLASSPATH"
  Debug "JSS_SAMPLES=$JSS_SAMPLES"

  if [ ! -d $JSS_SAMPLES ] ; then
      if [ "$O_WIN" = "ON" -a "$WIN_WAIT_FOREVER" = "ON" ]
      then
          WaitForever $JSS_SAMPLES/TestKeyGen.java 1
      else
          Exit "Test directory $JSS_SAMPLES does not exist"
      fi
  fi

  PWFILE="$JSS_SAMPLES/passwd"
  EMPTYFILE="$JSS_SAMPLES/emptyfile"
  rm $PWFILE $EMPTYFILE 2>/dev/null
  echo "jss" >$PWFILE
  echo "" >$EMPTYFILE
  echo "" >>$EMPTYFILE
  echo "" >>$EMPTYFILE

  INIT_PATH=$PATH
  INIT_LD_LIBRARY_PATH=$LD_LIBRARY_PATH
}


jss_mode_init()
{
  OBJDIR=`cd ${TESTSCRIPTDIR}/common; gmake objdir_name`

  LOCALDIST_BIN=`echo $LOCALDIST_BIN | sed -e 's/nss/jss/g'`
  LOCALDIST_LIB=$LOCALDIST_BIN/../lib
  debug_dirs

  #make testdir/libdir

  JSS_LIBDIR=${RESULTDIR}/${HOST}.libdir/${OBJDIR}
  mkdir -p ${JSS_LIBDIR} 2>/dev/null
  Debug "JSS_LIBDIR=$JSS_LIBDIR"

  #Put all the shared libraries into a lib directory
  Debug "copy all needed libs to ${JSS_LIBDIR}"
  cp $JSS_NSPR_DIR/${OBJDIR}/lib/* ${JSS_LIBDIR}
  cp $JSS_NSS_DIR/${OBJDIR}/lib/* ${JSS_LIBDIR}
  cp $LOCALDIST_LIB/libjss3.*  ${JSS_LIBDIR}
  #FIXME uncomment above

  if [ $O_DEBUG = ON ] ; then
      Debug "ls $JSS_LIBDIR"
      ls $JSS_LIBDIR
  fi

  #LD_LIBRARY_PATH=$INIT_LD_LIBRARY_PATH:${JSS_LIBDIR}
  LD_LIBRARY_PATH=${JSS_LIBDIR} #remove to avoid HP coredump
  CLASSPATH="$JSS_CLASSPATH/xpclass.jar:."

  SHLIB_PATH=${LD_LIBRARY_PATH}
  LIBPATH=${LD_LIBRARY_PATH}

  PATH=$JSS_NSPR_DIR/${OBJDIR}/bin:$JSS_NSS_DIR/${OBJDIR}//bin:$INIT_PATH
  Debug "PATH $PATH"
  Debug "LD_LIBRARY_PATH $LD_LIBRARY_PATH"
  Debug "CLASSPATH=$CLASSPATH"

  export CLASSPATH LD_LIBRARY_PATH SHLIB_PATH LIBPATH
  export TESTSCRIPTDIR COMMON
  export_dirs
}

  
################################ jss_test #########################
# 
# go into the build tree. cd to mozilla/security/jss/samples.
# Create NSS directories in this directory with modutil and set the password
#
#6. Create an alias for the "java" and "javac" commands. You'll need to set
#it to whatever version of the JDK you used to build on this platform. For
#example, 
      #alias java /share/builds/components/cms_jdk/AIX/1.3.0/jre/bin/java
        #alias javac /share/builds/components/cms_jdk/AIX/1.3.0/bin/javac
# instead $JAVA and $JAVAC
# 7. Compile the tests.
#####################################################################
jss_test()
{
  O_FILE=OFF
  Debug "JSS main test"
  #set -x
  cd $JSS_SAMPLES

  Debug "Cleaning  $JSS_SAMPLES"
  rm cert7.db key3.db 2>/dev/null

  Debug "echo | modutil -dbdir . -create -force"
  echo | modutil -dbdir . -create -force
  Debug "modutil returned $?"

  modutil -dbdir . -list

  Debug "echo | modutil -dbdir . -changepw \"$INTERNAL_TOKEN\" -newpwfile $PWFILE -force"
  modutil -dbdir . -changepw "$INTERNAL_TOKEN" -newpwfile $PWFILE  -force <$EMPTYFILE
  #modutil -dbdir . -changepw "$INTERNAL_TOKEN" -pwfile $PWFILE -newpwfile $PWFILE <$EMPTYFILE
  Debug "modutil returned $?"

  Debug "$JAVAC TestKeyGen.java"
  $JAVAC TestKeyGen.java
  Debug "$JAVAC TestKeyGen.java returned $?"

  Debug "$JAVAC SigTest.java"
  $JAVAC SigTest.java
  Debug "$JAVAC SigTest.java returned $?"
          
  echo "Starting new jss test on $HOST"  
  date

  # Run the actual tests

  Debug "$JAVA $NATIVE_FLAG TestKeyGen ." 
  $JAVA $NATIVE_FLAG TestKeyGen . 
  Debug "$JAVA TestKeyGen returned $?"

  Debug "$JAVA $NATIVE_FLAG SigTest . \"$SIGTEST_INTERNAL_TOKEN\""
  $JAVA $NATIVE_FLAG SigTest . "$SIGTEST_INTERNAL_TOKEN"
  Debug "$JAVA SigTest returned $?"

  O_FILE=ON
}

jss_init
jss_mode_init

if [ "$O_CRON" = "ON" -o "$O_WIN" = "ON" ]
then
    jss_test >>$JSS_LOGFILE  2>&1
else
    jss_test 2>&1 | tee -a $JSS_LOGFILE
fi
BUILD_OPT=1; export BUILD_OPT; Debug "BUILD_OPT $BUILD_OPT"
jss_mode_init
if [ "$O_CRON" = "ON" -o "$O_WIN" = "ON" ]
then
    jss_test >>$JSS_LOGFILE  2>&1
else
    jss_test 2>&1 | tee -a $JSS_LOGFILE
fi
Exit "jssqa completed. Done `uname -n` $QA_OS_STRING"