security/nss/tests/nssqa

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rwxr-xr-x

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     1 #! /bin/sh
     3 ########################################################################
     4 #
     5 # /u/sonmi/bin/nssqa - /u/svbld/bin/init/nss/nssqa
     6 #
     7 # this script is supposed to automatically run QA for NSS on all required
     8 # Unix and Windows (NT and 2000) platforms
     9 #
    10 # parameters
    11 # ----------
    12 #   nssversion  (supported: 30b, 31, tip)
    13 #   builddate   (default - today)
    14 #
    15 # options
    16 # -------
    17 #   -y answer all questions with y - use at your own risk...ignores warnings
    18 #   -s silent (only usefull with -y)
    19 #   -h, -? - you guessed right - displays this text
    20 #   -d debug
    21 #   -f <filename> - write the (error)output to filename
    22 #   -cron equivalient to -y -s -d -f $RESULTDIR/$HOST.nssqa
    23 # 
    24 # 12/1/00
    25 # took out the (unused) local directory for releasebuild QA on NT
    26 # cleaned up 32 - 64 bit issues
    27 # took hardcoded machinenames out
    28 ########################################################################
    30 O_OPTIONS=ON            # accept options (see above for listing)
    31 WIN_WAIT_FOREVER=ON     # first we wait forever for a TESTDIR to appear, than 
    32                         # we wait forever for the build to finish...
    34 TBX_EXIT=50             # in case we are running on a tinderbox build, any 
    35                         # early exit needs to return an error
    36 . `dirname $0`/header   # utilities, shellfunctions etc, global to NSS QA
    38 if [ -z "$O_TBX" -o "$O_TBX" != "ON" ] ; then
    39     is_running ${TMP}/nssqa 
    40                         # checks if the file exists, if yes Exits, if not 
    41                         # creates to implement a primitive locking mechanism
    42 fi
    44 KILL_SELFSERV=OFF       # cleanup will also kill the leftover selfserv processes
    46 ################################ check_distdir #########################
    47 # local shell function to check if the DIST directory exists, if not there 
    48 # is no use to continue the test
    49 ########################################################################
    50 check_distdir()
    51 {
    52     set_objdir
    54     if [ ! -d "$LOCALDIST_BIN" ]
    55     then
    56         Debug "Dist $DIST"
    57         Warning "$LOCALDIST_BIN (the dist binaries dir) does not exist"
    58         return 1
    59     fi
    61     if [ ! -d "$LOCALDIST" -a ! -h "$LOCALDIST" ]
    62     then
    63         Debug "Dist $DIST"
    64         Warning "$LOCALDIST (the dist directory) does not exist"
    65         return 1
    66     fi
    68     Debug "LOCALDIST_BIN $LOCALDIST_BIN"
    69     Debug "Dist $DIST"
    70     return 0
    71 }
    73 ################################ run_all ###############################
    74 # local shell function to start the all.sh after asking user and redirect 
    75 # the output apropriately
    76 ########################################################################
    77 run_all()        
    78 {
    79     check_distdir || return 1
    80     #kill_by_name selfserv
    81     ask "Testing $OBJDIR continue with all.sh" "y" "n" || Exit
    83     Debug "running all.sh in `pwd`"
    84     if [ $O_SILENT = ON ]
    85     then
    86         if [ $O_DEBUG = ON -a $O_FILE = ON ]
    87         then
    88             all.sh >>$FILENAME 2>>$FILENAME
    89         else
    90             all.sh >/dev/null 2>/dev/null
    91         fi
    92     else
    93         all.sh
    94     fi
    95     Debug "Done with all.sh "
    96     line
    97 }
    99 all_sh()
   100 {
   101     echo
   102 }
   105 ########################### wait_for_build #############################
   106 # local shell function to wait until the build is finished
   107 ########################################################################
   108 wait_for_build()
   109 {
   110   if [ $O_WIN = "ON" ]
   111   then
   112       WaitForever ${OSDIR}/SVbuild.InProgress.1 0 
   113                      #Wait for the build to finish Windows a lot longer
   114       OS_TARGET=WINNT;export OS_TARGET;Debug "OS_TARGET set to $OS_TARGET"
   115       QA_OS_NAME=`cd ${TESTSCRIPTDIR}/common; gmake objdir_name | \
   116           sed -e "s/WINNT4.0.*/Windows-NT-4.0/" -e "s/WINNT5.0.*/Windows-2000/"`
   117       Echo "WINDOWS-OS-LINE: $QA_OS_NAME"
   118   else
   119       Wait ${OSDIR}/SVbuild.InProgress.1 0     
   120                      #Wait for the build to finish... Unix a few hours
   121       qa_stat_get_sysinfo
   122       Echo "UNIX-OS-LINE: $QA_OS"
   123   fi
   124   find_nt_masterbuild
   125 }
   128 ########################### map_os #############################
   129 # local shell function: From the operatingsystem figure out the name of 
   130 #     the build ; needed to detemine if the build finished, passed and for
   131 #     the directory names
   132 ########################################################################
   133 map_os32()
   134 {
   135     case `uname -s` in
   136         SunOS)
   137             S_REL=`uname -r | sed -e "s/^[^\.]*\.//g"`
   138             if [ `uname -p` = "i386" ] ; then
   139                 MAPPED_OS=Solaris8_x86
   140             elif [ "$S_REL" -lt 8 ] ; then
   141                 MAPPED_OS=Solaris2.6
   142             else
   143                 MAPPED_OS=Solaris8_forte6
   144             fi
   145             ;;
   146         OSF1)
   147             MAPPED_OS=OSF1V4.0
   148             ;;
   149         Darwin)
   150             MAPPED_OS=Darwin6.5
   151             ;;	
   152         AIX)
   153             MAPPED_OS=AIX4.3
   154             ;;
   155         Linux)
   156             RH_MR=`cat /etc/redhat-release | sed \
   157                 -e "s/Red Hat Linux release //" -e "s/ .*//g" \
   158                 -e "s/\..*//g"`
   160             if [ "$RH_MR" = "6" ] ; then
   161                 MAPPED_OS=Linux2.2
   162             else
   163                 MAPPED_OS=Linux2.4
   164                 LD_ASSUME_KERNEL="2.2.5"
   165                 export LD_ASSUME_KERNEL
   166             fi
   167             ;;
   168         HP-UX)
   169             MAPPED_OS=HPUX11.00
   170             ;;
   171         *)
   172             if [ "$os_name" = "Windows" ]
   173             then
   174                 MAPPED_OS=NT4.0
   175             else
   176                 Exit "Sorry, operating system `uname -s` is not supported yet"
   177             fi
   178             ;;
   179     esac
   180     set_osdir
   181     Debug "Mapped OS to $MAPPED_OS"
   182 }
   184 ############################# nssqa_main ###############################
   185 # local shell function main controlling function of the nss qa
   186 ########################################################################
   187 nssqa_main()
   188 {
   189   Debug "In function nssqa_main"
   191   if [ $O_WIN = "OFF" -a "$O_TBX" = "OFF" -a $O_LOCAL = "OFF" ] ; then
   192       if [ ! -h ${NTDIST}/WINNT5.0_DBG.OBJ -o \
   193               ! -h ${UXDIST}/SunOS5.8_OPT.OBJ -o \
   194               ! -h ${UXDIST}/OSF1V5.0_DBG.OBJ ] ; then
   195           # determine if all needed symbolic links are present, in case
   196           # we build on one platform and QA on another
   197           # create the symbolic links
   198           #mksymlinks $* ||
   199           `dirname $0`/mksymlinks  $NSSVER $BUILDDATE ||
   200               Warning "Can't make the neccessary symbolic links"
   201       fi
   202   fi
   204   if [ -d $TESTSCRIPTDIR ]    #the directory mozilla/security/nss/tests, 
   205   then            # where all.sh lives
   206       cd $TESTSCRIPTDIR
   207   else
   208       Exit "cant cd to $TESTSCRIPTDIR Exiting"
   209   fi
   211   Debug "Testing from `pwd`"
   212   line
   213   Debug "HOST: $HOST, DOMSUF: $DOMSUF"
   215   if [  "$O_TBX" = "OFF" ] ; then
   216       map_os32 # From the operatingsystem figure out the name of the build 
   217       Debug Testing build for $MAPPED_OS in $OSDIR
   218       wait_for_build
   219   fi
   220   run_all
   221   BUILD_OPT=1; export BUILD_OPT; Debug "BUILD_OPT $BUILD_OPT"
   222   run_all
   224   # now for the 64 bit build!
   225   map_os64 # From the operatingsystem figure out the name of the build 
   226   if [ -n "$IS_64" ] ; then #Wait for the 64 bit build to finish...
   227       Debug "This is a $IS_64 platform"
   228       USE_64=1;export USE_64;Debug "Use_64 set to $USE_64"
   229       unset BUILD_OPT;export BUILD_OPT;Debug "BUILD_OPT $BUILD_OPT"
   231       run_all
   232       BUILD_OPT=1; export BUILD_OPT; Debug "BUILD_OPT $BUILD_OPT"
   233       run_all
   234   elif [ "$O_WIN" = "ON" ] ; then
   235       OS_TARGET=WIN95;export OS_TARGET
   236       Debug "OS_TARGET set to $OS_TARGET"
   237       #Echo "WINDOWS-OS-LINE: $os_name $os_full $OS_TARGET"
   238       unset BUILD_OPT;export BUILD_OPT;Debug "BUILD_OPT $BUILD_OPT"
   239       #if [ "$TEST_LEVEL" = "0" ] ; then
   240           #QA_OS_NAME=`cd ${TESTSCRIPTDIR}/common; gmake objdir_name | \
   241               #sed -e "s/WINNT4.0.*/Windows-NT-4.0/" -e \
   242                      #"s/WINNT5.0.*/Windows-2000/"`
   243           #Echo "WINDOWS-OS-LINE: $QA_OS_NAME $OS_TARGET"
   244       #fi
   245       run_all
   246       BUILD_OPT=1; export BUILD_OPT; Debug "BUILD_OPT $BUILD_OPT"
   247       run_all
   248   else
   249       Debug "This is a 32 bit platform"
   250   fi
   251 }
   253 TEST_LEVEL=0
   255 while [ $TEST_LEVEL -lt 2 ] ; do 
   256     export TEST_LEVEL
   257     unset BUILD_OPT;export BUILD_OPT;Debug "BUILD_OPT $BUILD_OPT"
   258     unset USE_64;export USE_64;Debug "USE_64 $USE_64"
   259     bc $TEST_LEVEL
   260     Debug "About to start nssqa_main"
   261     if [ $O_FILE = ON -a "$O_WIN" != "ON" ] ; then
   262         nssqa_main 2>>$FILENAME
   263     else
   264         nssqa_main
   265     fi
   266     if [  "$O_TBX" = "ON" ] ; then      # do not do backward compatibility 
   267          TEST_LEVEL=3                   # testing on tinderbox
   268     else
   269          TEST_LEVEL=`expr $TEST_LEVEL + 1 `
   270     fi
   271 done
   273 if [  "$O_TBX" = "ON" -o "$O_LOCAL" = "ON" ] ; then
   274 #FIXME - maybe it should be copied back to the networkdrive later (-ln)
   275     if [ -n "${TMPFILES}" ] ; then #caused problems on tinderbox machines
   276         Debug "rm -f ${TMPFILES}"
   277         rm -f $TMPFILES 2>/dev/null
   278     fi
   279     Debug "running qa_stat"
   280     . `dirname $0`/qa_stat
   281 fi
   284 qa_stat_get_sysinfo
   286 Exit "nssqa completed. Done `uname -n` $QA_OS_STRING"

mercurial