Imported Upstream version 3.16.3
[platform/upstream/nss.git] / tests / qa_stage
1 #! /bin/sh 
2 ########################################################################
3 #
4 # /u/sonmi/bin/qa_stage - /u/svbld/bin/init/nss/qa_stage
5 #
6 # this script is supposed to convert the tinderbox and daily QA files
7 # for use on mozilla.org
8 #
9 # parameters
10 # ----------
11 #   nssversion  (supported: 30b, 31, tip)
12 #   builddate   (default - today)
13 #
14 ########################################################################
15
16 if [ -z "$BUILDNUMBER" ]
17 then
18     BUILDNUMBER=1
19 fi
20 if [ `uname` = "Linux" ] ; then
21     PATH=".:/u/sonmi/bin:/u/sonmi/bin/linux:/usr/bsd:/usr/ucb/:/bin:/usr/bin:/usr/ccs/bin:/usr/sbin:/usr/bin/X11:/usr/etc:/etc:/usr/demos:/usr/demos/bin:/usr/local/bin:/usr/local/X11/bin:/tools/ns/bin"
22     export PATH
23 fi
24
25 Echo()
26 {
27     if [ "$O_SILENT" = "OFF" ] ; then
28         echo $*
29     fi
30 }
31
32 ################################### qa_stage_init ##########################
33
34 ########################################################################
35 qa_stage_init()
36 {
37     umask 000
38
39     eval_opts $*
40
41     if [ -z "${QAYEAR}" ] ; then 
42         QAYEAR=`date +%Y`
43     elif [ "$QAYEAR" = ""  ] ; then
44         QAYEAR=`date +%Y`
45     fi
46
47     Echo "Init..."
48     DAYBUILD=${QAYEAR}${BUILDDATE}.${BUILDNUMBER}
49     NSS_D0=/share/builds/mccrel3/nss
50     NSS_VER_DIR=${NSS_D0}/nss${NSSVER}
51     NTDIST=${NSS_VER_DIR}/builds/${DAYBUILD}/blowfish_NT4.0_Win95/mozilla/dist
52     UXDIST=${NSS_VER_DIR}/builds/${DAYBUILD}/booboo_Solaris8/mozilla/dist
53     TESTSCRIPTDIR=${NSS_VER_DIR}/builds/${DAYBUILD}/booboo_Solaris8/mozilla/security/nss/tests
54     RESULTDIR=${NSS_VER_DIR}/builds/${DAYBUILD}/booboo_Solaris8/mozilla/tests_results/security
55     TBX_RESULTDIR=${NSS_D0}/nsstip/tinderbox/tests_results/security
56
57     MOZ_D0=/pub/security/nss
58     MOZ_RESULTDIR=${MOZ_D0}/daily_qa/${DAYBUILD}
59     MOZ_TBX_RESULTDIR=${MOZ_D0}/tinderbox
60     
61     export BUILDDATE NSSVER QAYEAR NTDIST UXDIST TESTSCRIPTDIR RESULTDIR 
62
63
64     IPLANET_TBX_URL="http://cindercone.red.iplanet.com${TBX_RESULTDIR}"
65     IPLANET_DQA_URL="http://cindercone.red.iplanet.com${RESULTDIR}"
66
67     MOZ_TBX_URL="ftp://ftp.mozilla.org${MOZ_TBX_RESULTDIR}"
68     MOZ_DQA_URL="ftp://ftp.mozilla.org${MOZ_RESULTDIR}"
69
70     export IPLANET_TBX_URL IPLANET_DQA_URL MOZ_TBX_URL MOZ_DQA_URL
71     STAGE_1=/u/sonmi/tmp/ftp_stage
72     
73     if [ ! -d  $STAGE_1 ] ; then
74         Echo "Staging area daily QA (DQA): $DQA_STAGE does not exist, exit"
75         exit 1
76     fi
77     cd $STAGE_1 || (Echo "Cant cd to $STAGE_1 , exit"; exit)
78     rm all.tar* 2>/dev/null
79     TBX_STAGE=$STAGE_1/tinderbox
80     DQA_STAGE=$STAGE_1/daily_qa/${DAYBUILD}
81     Echo "Staging area tbx: $TBX_STAGE"
82     Echo "Staging area daily QA (DQA): $DQA_STAGE"
83     Echo "Resultdir (sourcedir) for daily QA (RESULTDIR): $RESULTDIR"
84 }
85
86 ################################### qa_stage_dqa ##########################
87
88 ########################################################################
89 qa_stage_dqa()
90 {
91     Echo "DQA:..."
92     Echo "Resultdir (sourcedir) for daily QA (RESULTDIR): $RESULTDIR"
93 #set -x
94     if [ ! -d  $RESULTDIR ] ; then
95         Echo "Resultdir $RESULTDIR does not exist, can't push daily QA"
96         return
97     fi
98     cd $RESULTDIR || return
99     #for w in `find . -name "result*html"`
100     for w in `find . -name "result.html"`
101     do
102         if [ ! -d $DQA_STAGE/`dirname $w` ] ; then
103             mkdir -p $DQA_STAGE/`dirname $w`
104         fi
105         rm $DQA_STAGE/$w 2>/dev/null
106         cat $w | reformat_qa >$DQA_STAGE/$w
107     done
108     for w in `find . -name "output.log" -o  -name "results.html"`
109     do
110 #echo $w
111         if [ ! -d $DQA_STAGE/`dirname $w` ] ; then
112             mkdir -p $DQA_STAGE/`dirname $w`
113         fi
114         cp $w $DQA_STAGE/$w
115     done
116 }
117
118
119 ################################### qa_stage_tbx ##########################
120
121 ########################################################################
122 qa_stage_tbx()
123 {
124     Echo "tbx: "
125     if [ ! -d  $TBX_RESULTDIR ] ; then
126         Echo "TBX_RESULTDIR $TBX_RESULTDIR does not exist"
127         return
128     fi
129     cd $TBX_RESULTDIR || return
130     Echo "find from $TBX_FIND_FROM"
131     for w in `find $TBX_FIND_FROM  -name "result.html"`
132     do
133         if [ ! -d "$TBX_STAGE/`dirname $w`" ] ; then
134             mkdir -p $TBX_STAGE/`dirname $w`
135         fi
136         rm $TBX_STAGE/$w 2>/dev/null
137         cat $w | reformat_qa >$TBX_STAGE/$w
138     done
139     for w in `find $TBX_FIND_FROM -name "output.log" -o  -name "results.html"`
140     do
141         if [ ! -d $TBX_STAGE/`dirname $w` ] ; then
142             mkdir -p $TBX_STAGE/`dirname $w`
143         fi
144         cp $w $TBX_STAGE/$w
145     done
146 }
147
148 match_tbxdirs()
149 {
150     YY=`date +%Y`
151     DD=`date +%d`
152     MM=`date +%m`
153     HH=`date +%H`
154
155     TBX_FIND_FROM="*-$YY$MM$DD-$HH.*"
156     i=$1
157     while [ $i -gt 0 ] ; do
158         i=`expr $i - 1`
159         HH=`expr $HH - 1`
160         if [ $HH -lt 0 ] ; then
161             HH=23
162             DD=`expr $DD - 1`
163             if [ $DD  -eq 0 ] ; then
164                 MM=`expr $MM - 1`
165                 case $MM in
166                     0)
167                         YY=`expr $YY - 1`
168                         MM=12
169                         DD=31
170                         ;;
171                     [13578]|10|12)
172                         DD=31
173                         ;;
174                     2)
175                         DD=28
176                         ;;
177                     [469]|11)
178                         DD=30
179                         ;;
180                 esac
181             fi
182         fi
183         case $MM in
184             [123456789])
185                MM=0$MM
186                ;;
187         esac
188         case $DD in
189             [123456789])
190                DD=0$DD
191                ;;
192         esac
193         case $HH in
194             [0123456789])
195                HH=0$HH
196                ;;
197         esac
198         TBX_FIND_FROM="$TBX_FIND_FROM *-$YY$MM$DD-$HH.*"
199     done
200 }
201
202 ################################### eval_opts ##########################
203 # global shell function, evapuates options and parameters, sets flags
204 # variables and defaults
205 ########################################################################
206 eval_opts()
207 {
208   DO_TBX=OFF
209   DO_DQA=OFF
210   DO_CLEAN=OFF
211   O_SILENT=OFF
212   O_INCREMENTAL=OFF
213   O_MAIL=OFF
214   BUILDDATE=`date +%m%d`
215   NSSVER=tip
216
217   TBX_FIND_FROM="."
218
219   while [ -n "$1" ]
220   do
221     case $1 in
222         -d)
223             DO_DQA=ON
224             ;;
225         -m)
226             O_MAIL=ON
227             shift
228             MAILINGLIST=$1
229             if [ -z "$MAILINGLIST" ]
230             then
231                 echo "Error: -m requires a mailinglist to follow, for example sonmi@iplanet.com"
232                 exit
233             fi
234             ;;
235         -ti)
236             DO_TBX=ON
237             match_tbxdirs 2
238             O_INCREMENTAL=ON
239             ;;
240         -t)
241             DO_TBX=ON
242             ;;
243         -c)
244             DO_CLEAN=ON
245             ;;
246         -s)
247             O_SILENT=ON
248             ;;
249
250         tip|3[0-9]*)
251             NSSVER=$1
252             ;;
253         [01][0-9][0-3][0-9])
254             BUILDDATE=$1
255             ;;
256     esac
257     shift
258   done
259 }
260
261 qa_stage_init $*
262
263 if [ "$DO_CLEAN" = "ON" ] ; then
264     Echo "Cleaning old stuff"
265     if [ ! -d  $STAGE_1 ] ; then
266         Echo "Staging area daily QA (DQA): $DQA_STAGE does not exist, exit"
267         exit 1
268     fi
269     cd $STAGE_1 || (Echo "Cant cd to $STAGE_1 , exit"; exit)
270     if [ -n "$TBX_STAGE" -a -d "$TBX_STAGE" ] ; then
271         rm -rf $TBX_STAGE/*
272     else
273         Echo "nothing here to clean..."
274     fi
275 fi
276 if [ "$DO_DQA" = "ON" ] ; then
277     qa_stage_dqa 
278     if [ "$O_MAIL" = "ON" -a -f "$DQA_STAGE/result.html" ] ; then
279          cat $DQA_STAGE/result.html | /usr/sbin/sendmail $MAILINGLIST 
280     fi
281 fi
282 if [ "$DO_TBX" = "ON" ] ; then
283     qa_stage_tbx
284 fi
285 if [ ! -d  $STAGE_1 ] ; then
286     Echo "Staging area daily QA (DQA): $DQA_STAGE does not exist, exit"
287     exit 1
288 fi
289 cd $STAGE_1 || (Echo "Cant cd to $STAGE_1 , exit"; exit)
290 Echo "tar..."
291 if [ "$O_SILENT" = "ON" ] ; then
292     TARPARAM=cf
293 else
294     TARPARAM=cvf
295 fi
296
297
298 if [ "$DO_DQA" = "ON" -a "$DO_TBX" = "ON" ] ; then
299         Echo "tar $TARPARAM all.tar daily_qa        tinderbox"
300         tar $TARPARAM all.tar daily_qa        tinderbox
301 elif [ "$DO_DQA" = "ON" ] ; then
302         Echo "tar $TARPARAM all.tar daily_qa"
303         tar $TARPARAM all.tar daily_qa
304 else
305         Echo "tar $TARPARAM all.tar tinderbox"
306         tar $TARPARAM all.tar tinderbox
307 fi
308 gzip all.tar
309 # ssh-agent > /u/sonmi/.ssh/ssh-agent.info
310 # setenv like it says in that file
311 # ssh-add
312
313 SSH_AUTH_SOCK=`grep SSH_AUTH_SOCK /u/sonmi/.ssh/ssh-agent.info | sed -e 's/setenv SSH_AUTH_SOCK //' -e 's/;//'`
314 SSH_AGENT_PID=`grep SSH_AGENT_PID /u/sonmi/.ssh/ssh-agent.info | sed -e 's/setenv SSH_AGENT_PID //' -e 's/;//'`
315 export SSH_AUTH_SOCK SSH_AGENT_PID
316 if [ "$O_SILENT" = "OFF" ] ; then
317    set -x
318    scp all.tar.gz sonmi@stage.mozilla.org:/home/ftp/pub/security/nss
319    ssh -l sonmi stage.mozilla.org '/home/sonmi/bin/nssqa_stage '
320 else
321    scp all.tar.gz sonmi@stage.mozilla.org:/home/ftp/pub/security/nss >/dev/null 2>/dev/null 
322    ssh -l sonmi stage.mozilla.org '/home/sonmi/bin/nssqa_stage ' >/dev/null 2>/dev/null 
323 fi
324
325 #" rlogin huey "
326 #" sftp  sonmi@stage.mozilla.org"
327 #" cd /home/ftp/pub/security/nss"
328 #" lcd tmp/ftp_stage"
329 #" put all.tar.gz"
330 #" quit "
331 #" ssh -l sonmi stage.mozilla.org"
332 #" cd /home/ftp/pub/security/nss"
333 #" gunzip all.tar.gz"
334 #" tar xvf all.tar"
335 #" rm all.tar"
336