Blame nss/coverage/cov.sh

Packit 40b132
#!/bin/bash
Packit 40b132
#
Packit 40b132
# This Source Code Form is subject to the terms of the Mozilla Public
Packit 40b132
# License, v. 2.0. If a copy of the MPL was not distributed with this
Packit 40b132
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
Packit 40b132
Packit 40b132
OS=`uname -s`
Packit 40b132
ARCH=`uname -p`
Packit 40b132
SCRIPT_DIR=`pwd`
Packit 40b132
DATE=`date +%Y%m%d`
Packit 40b132
Packit 40b132
if [ $# -ne 1 ]; then
Packit 40b132
    echo "Usage: $0 [securitytip|securityjes5]"
Packit 40b132
    exit 1
Packit 40b132
fi
Packit 40b132
Packit 40b132
BRANCH="$1"
Packit 40b132
Packit 40b132
if [ "${BRANCH}" != "securitytip" -a "${BRANCH}" != "securityjes5" ]; then
Packit 40b132
    echo "Usage: $0 [securitytip|securityjes5]"
Packit 40b132
    exit 1
Packit 40b132
fi
Packit 40b132
Packit 40b132
COV_DIR="/share/builds/mccrel3/security/coverage"
Packit 40b132
BRANCH_DIR="${COV_DIR}/${BRANCH}"
Packit 40b132
DATE_DIR="${BRANCH_DIR}/${DATE}-${ARCH}"
Packit 40b132
CVS_DIR="${DATE_DIR}/cvs_mozilla"
Packit 40b132
TCOV_DIR="${DATE_DIR}/tcov_mozilla"
Packit 40b132
Packit 40b132
CVS_CHECKOUT_BRANCH="cvs_checkout_${BRANCH}"
Packit 40b132
Packit 40b132
export HOST=`hostname`
Packit 40b132
export DOMSUF=red.iplanet.com
Packit 40b132
Packit 40b132
export NSS_ECC_MORE_THAN_SUITE_B=1
Packit 40b132
export IOPR_HOSTADDR_LIST="dochinups.red.iplanet.com"
Packit 40b132
export NSS_AIA_PATH="/share/builds/mccrel3/security/aia_certs"
Packit 40b132
export NSS_AIA_HTTP="http://cindercone.red.iplanet.com/share/builds/mccrel3/security/aia_certs"
Packit 40b132
Packit 40b132
export USE_TCOV=1
Packit 40b132
export SUN_PROFDATA_DIR="${DATE_DIR}"
Packit 40b132
export SUN_PROFDATA="tcov_data"
Packit 40b132
Packit 40b132
if [ "${OS}" != "SunOS" ]; then
Packit 40b132
    echo "OS not supported"
Packit 40b132
    exit 1
Packit 40b132
fi
Packit 40b132
Packit 40b132
case "${ARCH}" in 
Packit 40b132
"sparc")
Packit 40b132
    export PATH="/usr/dist/share/sunstudio_sparc,v12.0/SUNWspro/prod/bin:/usr/sfw/bin:/usr/bin:/usr/ccs/bin:/usr/ucb:/tools/ns/bin:/usr/local/bin"
Packit 40b132
    ;;
Packit 40b132
"i386")
Packit 40b132
    export PATH="/usr/dist/share/sunstudio_i386,v12.0/SUNWspro/bin:/usr/sfw/bin:/usr/bin:/usr/ccs/bin:/usr/ucb:/tools/ns/bin:/usr/local/bin"
Packit 40b132
    ;;
Packit 40b132
*)
Packit 40b132
    echo "Platform not supported"
Packit 40b132
    exit 1
Packit 40b132
    ;;
Packit 40b132
esac
Packit 40b132
Packit 40b132
cvs_checkout_securitytip()
Packit 40b132
{
Packit 40b132
    cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -A mozilla/nsprpub
Packit 40b132
    cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -A mozilla/dbm
Packit 40b132
    cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -A mozilla/security/dbm
Packit 40b132
    cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -A mozilla/security/coreconf
Packit 40b132
    cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -A mozilla/security/nss
Packit 40b132
    cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -A mozilla/security/jss
Packit 40b132
    cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -A -r NSS_3_11_1_RTM mozilla/security/nss/lib/freebl/ecl/ecl-curve.h
Packit 40b132
}
Packit 40b132
Packit 40b132
cvs_checkout_securityjes5()
Packit 40b132
{
Packit 40b132
    cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -A -r NSPR_4_6_BRANCH mozilla/nsprpub
Packit 40b132
    cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -A -r NSS_3_11_BRANCH mozilla/dbm
Packit 40b132
    cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -A -r NSS_3_11_BRANCH mozilla/security/dbm
Packit 40b132
    cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -A -r NSS_3_11_BRANCH mozilla/security/coreconf
Packit 40b132
    cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -A -r NSS_3_11_BRANCH mozilla/security/nss
Packit 40b132
    cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -A -r JSS_4_2_BRANCH mozilla/security/jss
Packit 40b132
    cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -A -r NSS_3_11_1_RTM mozilla/security/nss/lib/freebl/ecl/ecl-curve.h
Packit 40b132
}
Packit 40b132
Packit 40b132
cvs_checkout()
Packit 40b132
{
Packit 40b132
    rm -rf "${DATE_DIR}"
Packit 40b132
    mkdir -p "${CVS_DIR}"
Packit 40b132
    cd "${CVS_DIR}"
Packit 40b132
Packit 40b132
    ${CVS_CHECKOUT_BRANCH}
Packit 40b132
}
Packit 40b132
Packit 40b132
run_build()
Packit 40b132
{
Packit 40b132
    cd "${CVS_DIR}/mozilla/security/nss"
Packit 40b132
    gmake nss_build_all
Packit 40b132
}
Packit 40b132
Packit 40b132
run_tests()
Packit 40b132
{
Packit 40b132
    cd "${CVS_DIR}/mozilla/security/nss/tests"
Packit 40b132
    ./all.sh
Packit 40b132
}
Packit 40b132
Packit 40b132
process_results()
Packit 40b132
{
Packit 40b132
    rm -rf "${TCOV_DIR}"
Packit 40b132
    mkdir -p "${TCOV_DIR}"
Packit 40b132
Packit 40b132
    cat "${SUN_PROFDATA_DIR}/${SUN_PROFDATA}/tcovd" | grep SRCFILE | grep "${CVS_DIR}/.*.c$" | sed "s:[^/]*\(.*\):\1:" | sort -u |
Packit 40b132
    while read line
Packit 40b132
    do
Packit 40b132
	DIR=`echo "${line}" | sed "s:${CVS_DIR}/\(.*\)/.*:\1:"`
Packit 40b132
	FILE=`echo "${line}" | sed "s:.*/\(.*\):\1:"`
Packit 40b132
Packit 40b132
	mkdir -p "${TCOV_DIR}/${DIR}"
Packit 40b132
	tcov -o "${TCOV_DIR}/${DIR}/$FILE" -x "${SUN_PROFDATA}" $line >/dev/null 2>&1
Packit 40b132
    done
Packit 40b132
}
Packit 40b132
Packit 40b132
cvs_checkout
Packit 40b132
run_build
Packit 40b132
run_tests
Packit 40b132
process_results
Packit 40b132
Packit 40b132
cd "${SCRIPT_DIR}"
Packit 40b132
./report.sh "${BRANCH}" "${DATE}" "${ARCH}"  
Packit 40b132
Packit 40b132
exit 0
Packit 40b132