|
1 #!/bin/bash |
|
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 OS=`uname -s` |
|
8 ARCH=`uname -p` |
|
9 SCRIPT_DIR=`pwd` |
|
10 DATE=`date +%Y%m%d` |
|
11 |
|
12 if [ $# -ne 1 ]; then |
|
13 echo "Usage: $0 [securitytip|securityjes5]" |
|
14 exit 1 |
|
15 fi |
|
16 |
|
17 BRANCH="$1" |
|
18 |
|
19 if [ "${BRANCH}" != "securitytip" -a "${BRANCH}" != "securityjes5" ]; then |
|
20 echo "Usage: $0 [securitytip|securityjes5]" |
|
21 exit 1 |
|
22 fi |
|
23 |
|
24 COV_DIR="/share/builds/mccrel3/security/coverage" |
|
25 BRANCH_DIR="${COV_DIR}/${BRANCH}" |
|
26 DATE_DIR="${BRANCH_DIR}/${DATE}-${ARCH}" |
|
27 CVS_DIR="${DATE_DIR}/cvs_mozilla" |
|
28 TCOV_DIR="${DATE_DIR}/tcov_mozilla" |
|
29 |
|
30 CVS_CHECKOUT_BRANCH="cvs_checkout_${BRANCH}" |
|
31 |
|
32 export HOST=`hostname` |
|
33 export DOMSUF=red.iplanet.com |
|
34 |
|
35 export NSS_ECC_MORE_THAN_SUITE_B=1 |
|
36 export IOPR_HOSTADDR_LIST="dochinups.red.iplanet.com" |
|
37 export NSS_AIA_PATH="/share/builds/mccrel3/security/aia_certs" |
|
38 export NSS_AIA_HTTP="http://cindercone.red.iplanet.com/share/builds/mccrel3/security/aia_certs" |
|
39 |
|
40 export USE_TCOV=1 |
|
41 export SUN_PROFDATA_DIR="${DATE_DIR}" |
|
42 export SUN_PROFDATA="tcov_data" |
|
43 |
|
44 if [ "${OS}" != "SunOS" ]; then |
|
45 echo "OS not supported" |
|
46 exit 1 |
|
47 fi |
|
48 |
|
49 case "${ARCH}" in |
|
50 "sparc") |
|
51 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" |
|
52 ;; |
|
53 "i386") |
|
54 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" |
|
55 ;; |
|
56 *) |
|
57 echo "Platform not supported" |
|
58 exit 1 |
|
59 ;; |
|
60 esac |
|
61 |
|
62 cvs_checkout_securitytip() |
|
63 { |
|
64 cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -A mozilla/nsprpub |
|
65 cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -A mozilla/dbm |
|
66 cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -A mozilla/security/dbm |
|
67 cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -A mozilla/security/coreconf |
|
68 cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -A mozilla/security/nss |
|
69 cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -A mozilla/security/jss |
|
70 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 |
|
71 } |
|
72 |
|
73 cvs_checkout_securityjes5() |
|
74 { |
|
75 cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -A -r NSPR_4_6_BRANCH mozilla/nsprpub |
|
76 cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -A -r NSS_3_11_BRANCH mozilla/dbm |
|
77 cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -A -r NSS_3_11_BRANCH mozilla/security/dbm |
|
78 cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -A -r NSS_3_11_BRANCH mozilla/security/coreconf |
|
79 cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -A -r NSS_3_11_BRANCH mozilla/security/nss |
|
80 cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -A -r JSS_4_2_BRANCH mozilla/security/jss |
|
81 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 |
|
82 } |
|
83 |
|
84 cvs_checkout() |
|
85 { |
|
86 rm -rf "${DATE_DIR}" |
|
87 mkdir -p "${CVS_DIR}" |
|
88 cd "${CVS_DIR}" |
|
89 |
|
90 ${CVS_CHECKOUT_BRANCH} |
|
91 } |
|
92 |
|
93 run_build() |
|
94 { |
|
95 cd "${CVS_DIR}/mozilla/security/nss" |
|
96 gmake nss_build_all |
|
97 } |
|
98 |
|
99 run_tests() |
|
100 { |
|
101 cd "${CVS_DIR}/mozilla/security/nss/tests" |
|
102 ./all.sh |
|
103 } |
|
104 |
|
105 process_results() |
|
106 { |
|
107 rm -rf "${TCOV_DIR}" |
|
108 mkdir -p "${TCOV_DIR}" |
|
109 |
|
110 cat "${SUN_PROFDATA_DIR}/${SUN_PROFDATA}/tcovd" | grep SRCFILE | grep "${CVS_DIR}/.*.c$" | sed "s:[^/]*\(.*\):\1:" | sort -u | |
|
111 while read line |
|
112 do |
|
113 DIR=`echo "${line}" | sed "s:${CVS_DIR}/\(.*\)/.*:\1:"` |
|
114 FILE=`echo "${line}" | sed "s:.*/\(.*\):\1:"` |
|
115 |
|
116 mkdir -p "${TCOV_DIR}/${DIR}" |
|
117 tcov -o "${TCOV_DIR}/${DIR}/$FILE" -x "${SUN_PROFDATA}" $line >/dev/null 2>&1 |
|
118 done |
|
119 } |
|
120 |
|
121 cvs_checkout |
|
122 run_build |
|
123 run_tests |
|
124 process_results |
|
125 |
|
126 cd "${SCRIPT_DIR}" |
|
127 ./report.sh "${BRANCH}" "${DATE}" "${ARCH}" |
|
128 |
|
129 exit 0 |
|
130 |