|
1 #! /bin/sh |
|
2 ######################################################################## |
|
3 # |
|
4 # /u/sonmi/bin/qa_stat - /u/svbld/bin/init/nss/qa_stat |
|
5 # |
|
6 # this script is supposed to automatically run QA for NSS on all required |
|
7 # Unix platforms |
|
8 # |
|
9 # parameters |
|
10 # ---------- |
|
11 # nssversion (supported: 30b, 31, tip) |
|
12 # builddate (default - today) |
|
13 # |
|
14 # options |
|
15 # ------- |
|
16 # -y answer all questions with y - use at your own risk...ignores warnings |
|
17 # -s silent (only usefull with -y) |
|
18 # -h, -? - you guessed right - displays this text |
|
19 # -d debug |
|
20 # -f <filename> - write the (error)output to filename |
|
21 # -m <mailinglist> - send filename to mailinglist (csl) only useful |
|
22 # with -f |
|
23 # -cron equivalient to -y -s -d -f $RESULTDIR/$HOST.qa_stat |
|
24 # |
|
25 ######################################################################## |
|
26 |
|
27 O_OPTIONS=ON |
|
28 |
|
29 TBX_EXIT=49 # in case we are running on a tinderbox build, any |
|
30 # early exit needs to return an error |
|
31 if [ -z "$O_TBX" -o "$O_TBX" = "OFF" ] ; then |
|
32 if [ -z "$O_LOCAL" -o "$O_LOCAL" = "OFF" ] ; then |
|
33 . `dirname $0`/header |
|
34 fi |
|
35 fi |
|
36 Debug "Sourced header O_TBX=$O_TBX O_LOCAL=$O_LOCAL" |
|
37 TBX_EXIT=48 |
|
38 EARLY_EXIT=TRUE |
|
39 |
|
40 URL="cindercone.red.iplanet.com" |
|
41 |
|
42 DOCDIR=/u/sonmi/doc |
|
43 |
|
44 HTML_ERRORCOLOR=\"#FF0000\" |
|
45 HTML_ERRORMSG=Failed |
|
46 |
|
47 HTML_MISSINGCOLOR=\"#FFFFCC\" |
|
48 HTML_MISSINGMSG=Missing |
|
49 |
|
50 HTML_INCOMPLETECOLOR=$HTML_MISSINGCOLOR |
|
51 HTML_INCOMPLETEMSG=Incomplete |
|
52 |
|
53 HTML_PASSEDCOLOR=\"#66FF99\" |
|
54 HTML_PASSEDMSG=Passed |
|
55 |
|
56 # this file is used to deal with hanging rsh - a new shell is started |
|
57 # for each rsh, and a function is called after it is finished - they |
|
58 # communicate with this file |
|
59 |
|
60 RSH_FILE=$TMP/rsh.$$ |
|
61 echo >$RSH_FILE |
|
62 TMPFILES="$TMPFILES $WARNINGLIST $RSH_FILE " |
|
63 RSH_WAIT_TIME=80 #maximum time allowed for the 2 rsh to finish... |
|
64 #TOTAL_TESTS=106 |
|
65 TOTAL_TESTS=252 #tip |
|
66 #TOTAL_TESTS=244 #3.4 |
|
67 #TOTAL_TESTS=123 #3.3.2 |
|
68 BCT_TOTAL_TESTS=122 #3.2.2 |
|
69 #TOTAL_TESTS=133 #tip |
|
70 |
|
71 Debug "NTDIST $NTDIST" |
|
72 Debug "UXDIST $UXDIST" |
|
73 Debug "TESTSCRIPTDIR $TESTSCRIPTDIR" |
|
74 Debug "RESULTDIR $RESULTDIR" |
|
75 |
|
76 ############################### watch_rsh ############################## |
|
77 # local shell function, deals with a hanging rsh (kills it...) |
|
78 # this function is started as a backgroundprocess before the rsh is started, |
|
79 # and writes info to the RSH_FILE, after the rsh is finished it writes finish |
|
80 # info to the same file (this time called as a function, forground). |
|
81 # the backgroundprocess stays around for RSH_WAIT_TIME, if then the finish |
|
82 # information is not there attempts to kill the rsh |
|
83 # |
|
84 # watch_rsh start qa_computername & |
|
85 # watch_rsh stop qa_computername |
|
86 # |
|
87 ######################################################################## |
|
88 watch_rsh() |
|
89 { |
|
90 case $1 in |
|
91 start) |
|
92 echo "$2 started" >>$RSH_FILE |
|
93 sleep $RSH_WAIT_TIME |
|
94 O_ALWAYS_YES=ON # may modify global flags because this is a |
|
95 # forked off bg process - kill_by_name otherwise |
|
96 # will ask the user if it really should be killed |
|
97 grep "$2 finished" $RSH_FILE >/dev/null || kill_by_name "rsh $2" |
|
98 exit |
|
99 ;; |
|
100 stop) |
|
101 echo "$2 finished" >>$RSH_FILE |
|
102 ;; |
|
103 esac |
|
104 } |
|
105 |
|
106 ############################### find_qa_systems ######################## |
|
107 # local shell function, tries to determine the QA operating system |
|
108 # works remotely, and for Windows machines |
|
109 ######################################################################## |
|
110 find_qa_systems() |
|
111 { |
|
112 for QA_SYS in `ls $RESULTDIR | grep '\.1$' | sed -e "s/\..*//" | sort -u` |
|
113 do |
|
114 NO_RSH="FALSE" |
|
115 QA_OS="" |
|
116 QA_RHVER="" |
|
117 IS_64="" |
|
118 IS_WIN="" |
|
119 |
|
120 grep OS-LINE ${RESULTDIR}/${QA_SYS}.nssqa >/dev/null && NO_RSH=TRUE |
|
121 |
|
122 if [ "$NO_RSH" = "TRUE" ] |
|
123 then |
|
124 |
|
125 QA_OS=`grep OS-LINE ${RESULTDIR}/${QA_SYS}.nssqa | sort -u | sed \ |
|
126 -e "s/.*-OS-LINE: /${QA_SYS}/"` |
|
127 QA_OS_STRING=`echo $QA_OS | sed -e "s/^[_ ]//" -e "s/ /_/g"` |
|
128 echo $QA_OS_STRING >>$PLATFORMLIST |
|
129 if [ "$O_SILENT" != ON ] ; then |
|
130 echo $QA_OS |
|
131 fi |
|
132 |
|
133 #grep OS-LINE ${RESULTDIR}/${QA_SYS}.nssqa | sort -u | sed \ |
|
134 #-e "s/.*-OS-LINE: /${QA_SYS}_/" >>$PLATFORMLIST |
|
135 #if [ "$O_SILENT" != ON ] ; then |
|
136 #grep OS-LINE ${RESULTDIR}/${QA_SYS}.nssqa | sort -u | sed \ |
|
137 #-e "s/.*-OS-LINE:/${QA_SYS}/" |
|
138 #fi |
|
139 else |
|
140 REM_SYSNAME=$QA_SYS |
|
141 watch_rsh start $REM_SYSNAME & |
|
142 qa_stat_get_sysinfo $QA_SYS |
|
143 watch_rsh stop $REM_SYSNAME |
|
144 echo $QA_OS_STRING >>$PLATFORMLIST |
|
145 # use later for missing list |
|
146 fi |
|
147 done |
|
148 |
|
149 } |
|
150 |
|
151 ################################### qa_stat_init ########################## |
|
152 # local shell function, sets the name of the resultfile to: |
|
153 # <filename> if option -f <filename> |
|
154 # $RESULTDIR/result if write permission |
|
155 # (mozilla/tests_results/security/result) |
|
156 # $HOME/resultNSS${NSSVER}-${BUILDDATE} if no write permission in $RESULTDIR |
|
157 ######################################################################## |
|
158 qa_stat_init() |
|
159 { |
|
160 if [ $O_FILE = ON -a $O_CRON = OFF ] # if -f was specified write there |
|
161 then |
|
162 RFILE=$FILENAME |
|
163 else |
|
164 RFILE=${RESULTDIR}/result.$$ |
|
165 if [ ! -w $RESULTDIR ] |
|
166 then |
|
167 RFILE=$HOME/resultNSS${NSSVER}-${BUILDDATE}.$$ |
|
168 Debug "Using alternate resultfile $RFILE" |
|
169 #elif [ $O_CRON = ON ] |
|
170 #then |
|
171 ##find ${RESULTDIR} -exec chmod a+rw {} \; #FIXME - umask |
|
172 ##doesn't seem to work - this is a tmp workaround |
|
173 fi |
|
174 |
|
175 if [ ! -x $RESULTDIR -o ! -r $RESULTDIR -o ! -w $RESULTDIR ] |
|
176 then |
|
177 glob_usage "$RESULTDIR does not have the right permissions `ls -l $RESULTDIR`" |
|
178 fi |
|
179 if [ -d $RESULTDIR ] |
|
180 then |
|
181 cd $RESULTDIR |
|
182 else |
|
183 glob_usage "$RESULTDIR does not exist" |
|
184 fi |
|
185 fi |
|
186 |
|
187 ERRORLIST=${RFILE}.E |
|
188 PLATFORMLIST=${RFILE}.P |
|
189 PERFLIST=${RFILE}.PE |
|
190 TMP_HTML_FILE=${RFILE}.html |
|
191 HTML_FILE=${RESULTDIR}/result.html |
|
192 WARNINGLIST=${RFILE}.W |
|
193 BCMISSINGLIST=${RFILE}.BCM |
|
194 BCERRORLIST=${RFILE}.BCE |
|
195 TMPFILE=${RFILE}.T |
|
196 ML_FILE=${RFILE}.ML |
|
197 |
|
198 TMPFILES="$TMPFILES $TMPFILE" |
|
199 TMPFILES="$TMPFILES $ERRORLIST $PLATFORMLIST $PERFLIST $WARNINGLIST \ |
|
200 $BCMISSINGLIST $BCERRORLIST $ML_FILE" #FIXME uncomment |
|
201 |
|
202 FILENAME=$RFILE #we might want to mail it...later switch to html file |
|
203 O_FILE="ON" |
|
204 |
|
205 rm $ERRORLIST $PLATFORMLIST $PERFLIST $WARNINGLIST \ |
|
206 $BCMISSINGLIST $BCERRORLIST $TMP_HTML_FILE 2>/dev/null |
|
207 touch $ERRORLIST $PLATFORMLIST $PERFLIST $WARNINGLIST \ |
|
208 $BCMISSINGLIST $BCERRORLIST $TMP_HTML_FILE 2>/dev/null |
|
209 |
|
210 if [ $O_WIN = "ON" -a "$O_TBX" = "ON" ] ; then |
|
211 HTML_PATH="http://${URL}${UX_D0}/nss${NSSVER}/tinderbox/tests_results/security/`basename $RESULTDIR`" |
|
212 else |
|
213 HTML_PATH="http://${URL}${RESULTDIR}" |
|
214 fi |
|
215 HREF_TMP_HTML_FILE="${HTML_PATH}/`basename $HTML_FILE`" |
|
216 |
|
217 write_qa_header_html >$TMP_HTML_FILE |
|
218 } |
|
219 |
|
220 ################################# html_footer ######################### |
|
221 # local shell function, writes end of the html body |
|
222 ####################################################################### |
|
223 write_qa_header_html() |
|
224 { |
|
225 echo 'Subject: QA Report ' $NSSVER $BUILDDATE ' |
|
226 From: sonmi@iplanet.com |
|
227 Reply-To: sonmi@iplanet.com |
|
228 Content-Type: text/html; charset=us-ascii |
|
229 <!doctype html public "-//w3c//dtd html 4.0 transitional//en"> |
|
230 <html> |
|
231 <head> |
|
232 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> |
|
233 <meta name="GENERATOR" content="Mozilla/4.7 [en] (X11; U; SunOS 5.8 sun4u) [N |
|
234 etscape]"> |
|
235 </head> |
|
236 <body> |
|
237 <br> |
|
238 |
|
239 <br> |
|
240 <h2> |
|
241 <a href="http://tinderbox.mozilla.org/showbuilds.cgi?tree=NSS">Tinderbox</a |
|
242 ><br> |
|
243 <a href="http://cindercone.red.iplanet.com/share/builds/mccrel3/nss/nsstip/tinderbox/tests_results/security/">Tinderbox QA result</a><br> |
|
244 <a href="ftp://ftp.mozilla.org/pub/security/nss/daily_qa">Mozilla Daily NSS QA result</a></h2> |
|
245 |
|
246 |
|
247 |
|
248 <br> |
|
249 <center> |
|
250 <h1> |
|
251 <a NAME="Top"></a><b><font size=+2>QA Results</font></b></h1></center> |
|
252 |
|
253 |
|
254 <table BORDER WIDTH="100%" NOSAVE > |
|
255 <tr> |
|
256 <td> <b><font size=+1>Build-OS and version</font></b></td> |
|
257 <td><b><font size=+1>QA-OS</font></b></td> |
|
258 <td><b><font size=+1>Systemname</font></b></td> |
|
259 <td><b><font size=+1>P/F</font></b></td> |
|
260 <td><b><font size=+1>result</font></b></td> |
|
261 <td><b><font size=+1>output</font></b></td> |
|
262 <td><b><font size=+1>errors</font></b></td> |
|
263 <td><b><font size=+1>QA time / #</font></b></td> |
|
264 </tr> |
|
265 ' |
|
266 } |
|
267 |
|
268 ################################# html_footer ######################### |
|
269 # local shell function, writes end of the html body |
|
270 ####################################################################### |
|
271 html_footer() |
|
272 { |
|
273 echo '</body>' |
|
274 echo '</html>' |
|
275 } |
|
276 |
|
277 ################################# setQAsysvars ######################### |
|
278 # local shell function, sets system specific variables |
|
279 ######################################################################## |
|
280 setQAsysvars() |
|
281 { |
|
282 if [ "$MACHINE" != "0" ] |
|
283 then |
|
284 MACHINE=`echo $MACHINE | sed -e 's/^bct.//g'` |
|
285 TESTDATE=`ls -ld $MACHINE | awk '{ print $6, $7, $8 }'` |
|
286 TESTNUMBER=`echo $MACHINE | sed -e 's/.*\.//'` |
|
287 SYSNAME=`echo $MACHINE | sed -e 's/\..*//'` |
|
288 Debug "SYSNAME= $SYSNAME" |
|
289 |
|
290 if [ "$O_TBX" = "ON" -o "$O_LOCAL" = "ON" ] ; then |
|
291 QA_SYS_OS=$QA_OS |
|
292 else |
|
293 QA_SYS_OS=`grep $SYSNAME $PLATFORMLIST | |
|
294 sed -e 's/ |
|
295 //' | \ |
|
296 sort | uniq | sed -e "s/$SYSNAME//" \ |
|
297 -e "s/^_//" | sort | uniq` |
|
298 fi |
|
299 Debug "QA_SYS_OS= $QA_SYS_OS" |
|
300 fi |
|
301 BUILD_SYS=`echo $BUILDPLATFORM | sed -e 's/\.OBJ//' -e 's/_DBG/ Debug/' \ |
|
302 -e 's/_OPT/ Optimized/' -e 's/_64/ 64bit/' -e 's/_glibc_PTH//' \ |
|
303 -e 's/_/ /'` |
|
304 Debug "BUILD_SYS=$BUILD_SYS" |
|
305 if [ -f "${RESULTDIR}/${MACHINE}/results.html" ] ; then |
|
306 RESULT="${HTML_PATH}/${MACHINE}/results.html" |
|
307 else |
|
308 RESULT="0" |
|
309 fi |
|
310 if [ -f "${RESULTDIR}/bct/${MACHINE}/results.html" ] ; then |
|
311 BCB_RESULT="${HTML_PATH}/bct/${MACHINE}/results.html" |
|
312 else |
|
313 BCB_RESULT="0" |
|
314 fi |
|
315 |
|
316 if [ -f "${RESULTDIR}/${MACHINE}/output.log" ] ; then |
|
317 LOG="${HTML_PATH}/${MACHINE}/output.log" |
|
318 else |
|
319 LOG="0" |
|
320 fi |
|
321 if [ -f "${RESULTDIR}/bct/${MACHINE}/output.log" ] ; then |
|
322 BCB_LOG="${HTML_PATH}/bct/${MACHINE}/output.log" |
|
323 else |
|
324 BCB_LOG="0" |
|
325 fi |
|
326 } |
|
327 |
|
328 ################################# html_line() ######################### |
|
329 # local shell function, writes a line in the html table |
|
330 ######################################################################## |
|
331 html_line() |
|
332 { |
|
333 echo '<tr NOSAVE>' |
|
334 echo '<td NOSAVE>'$BUILD_SYS'</td>' |
|
335 echo '' |
|
336 if [ "$QA_SYS_OS" != "0" ] ; then |
|
337 echo '<td NOSAVE>'$QA_SYS_OS'</td>' |
|
338 else |
|
339 echo '<td></td>' |
|
340 fi |
|
341 echo '' |
|
342 if [ "$SYSNAME" != "0" ] ; then |
|
343 echo '<td>'$SYSNAME'</td>' |
|
344 else |
|
345 echo '<td></td>' |
|
346 fi |
|
347 #echo '<td>'$SYSNAME $TESTNUMBER $TESTDATE'</td>' |
|
348 echo '' |
|
349 # hopefully we never run more different tests on a tinderbox build... |
|
350 # on win some shells can not handle exit codes greater then 52 (64???) |
|
351 # so for very early exits the codes are set 50-45, for failures later |
|
352 # in the process the higher the number, the more failures |
|
353 if [ "$O_TBX" = "ON" -a "$TBX_EXIT" -gt 45 ] ; then |
|
354 TBX_EXIT=0 |
|
355 fi |
|
356 if [ "$1" = "failed" ] |
|
357 then |
|
358 TBX_EXIT=`expr $TBX_EXIT + 1` |
|
359 echo '<td BGCOLOR='$HTML_ERRORCOLOR' NOSAVE><b>'$HTML_ERRORMSG'</b></td>' |
|
360 elif [ "$1" = "passed" ] |
|
361 then |
|
362 echo '<td BGCOLOR='$HTML_PASSEDCOLOR' NOSAVE>'$HTML_PASSEDMSG'</td>' |
|
363 elif [ "$1" = "incomplete" ] |
|
364 then |
|
365 TBX_EXIT=`expr $TBX_EXIT + 1` |
|
366 echo '<td BGCOLOR='$HTML_INCOMPLETECOLOR' NOSAVE>'$HTML_INCOMPLETEMSG'</td>' |
|
367 else |
|
368 TBX_EXIT=`expr $TBX_EXIT + 1` |
|
369 echo '<td BGCOLOR='$HTML_MISSINGCOLOR' NOSAVE>'$HTML_MISSINGMSG'</td>' |
|
370 fi |
|
371 if [ "$CURRENT_TABLE" != "BC" ] ; then |
|
372 if [ "$RESULT" = "0" ] ; then |
|
373 echo '<td BGCOLOR='$HTML_MISSINGCOLOR' NOSAVE>'$HTML_MISSINGMSG'</td>' |
|
374 else |
|
375 echo '<td> <a href="'$RESULT'">result</a> </td>' |
|
376 fi |
|
377 if [ "$LOG" = "0" ] ; then |
|
378 echo '<td BGCOLOR='$HTML_MISSINGCOLOR' NOSAVE>'$HTML_MISSINGMSG'</td>' |
|
379 else |
|
380 echo '<td> <a href="'$LOG'">log</a> </td>' |
|
381 fi |
|
382 if [ "$1" = "failed" ] ; then |
|
383 echo '<td> <a href="'${HREF_TMP_HTML_FILE}'#errorlist">error</a> </td>' |
|
384 else |
|
385 echo '<td></td>' |
|
386 fi |
|
387 else |
|
388 #<td><b><font size=+1>errors</font></b></td> |
|
389 #<td><b><font size=+1>P/F</font></b></td> |
|
390 #<td><b><font size=+1>P/F</font></b></td> |
|
391 |
|
392 #echo '<td><b><font size=+1>All Current</font></b></td>' |
|
393 #echo '<td><b><font size=+1>old dlls</font></b></td>' |
|
394 #echo '<td><b><font size=+1>old executables</font></b></td>' |
|
395 #if [ "$RESULT" != "0" -a "$LOG" != "0" ] ; then |
|
396 #echo '<td><a href="'$RESULT'">result</a>, <a href="'$LOG'">log</td>' |
|
397 #elif [ "$RESULT" = "0" -a "$LOG" != "0" ] ; then |
|
398 #echo '<td BGCOLOR='$HTML_MISSINGCOLOR' NOSAVE><a href="'$LOG'">log</a></td>' |
|
399 #elif [ "$RESULT" != "0" -a "$LOG" = "0" ] ; then |
|
400 #echo '<td BGCOLOR='$HTML_MISSINGCOLOR' NOSAVE><a href="'$RESULT'">result</a></td>' |
|
401 #else |
|
402 #echo '<td BGCOLOR='$HTML_MISSINGCOLOR' NOSAVE>'$HTML_MISSINGMSG'</td>' |
|
403 #fi |
|
404 #if [ "$BCB_RESULT" != "0" -a "$BCB_LOG" != "0" ] ; then |
|
405 #echo '<td><a href="'$BCB_RESULT'">result</a>, <a href="'$BCB_LOG'"> log</td>' |
|
406 #elif [ "$BCB_RESULT" = "0" -a "$BCB_LOG" != "0" ] ; then |
|
407 #echo '<td BGCOLOR='$HTML_MISSINGCOLOR' NOSAVE><a href="'$BCB_LOG'">log</a></td>' |
|
408 #elif [ "$BCB_RESULT" != "0" -a "$BCB_LOG" = "0" ] ; then |
|
409 #echo '<td BGCOLOR='$HTML_MISSINGCOLOR' NOSAVE><a href="'$BCB_RESULT'">result</a></td>' |
|
410 #else |
|
411 #echo '<td BGCOLOR='$HTML_MISSINGCOLOR' NOSAVE>'$HTML_MISSINGMSG'</td>' |
|
412 #fi |
|
413 if [ "$BCB_RESULT" = "0" ] ; then |
|
414 echo '<td BGCOLOR='$HTML_MISSINGCOLOR' NOSAVE>'$HTML_MISSINGMSG'</td>' |
|
415 else |
|
416 echo '<td> <a href="'$BCB_RESULT'">result</a> </td>' |
|
417 fi |
|
418 if [ "$BCB_LOG" = "0" ] ; then |
|
419 echo '<td BGCOLOR='$HTML_MISSINGCOLOR' NOSAVE>'$HTML_MISSINGMSG'</td>' |
|
420 else |
|
421 echo '<td> <a href="'$BCB_LOG'">log</a> </td>' |
|
422 fi |
|
423 fi |
|
424 echo '<td>'$TESTDATE $TESTNUMBER'</td>' |
|
425 echo '</tr>' |
|
426 } |
|
427 |
|
428 ################################# qa_errorlist ######################### |
|
429 # local shell function, finds problems in the previously run QA |
|
430 # linux:the gnu grep, on Linux can output 10 lines above and 3 lines below |
|
431 # the errormessage |
|
432 ######################################################################## |
|
433 qa_errorlist() |
|
434 { |
|
435 grep "bgcolor=red" ${MACHINES_TO_CHECK}*/results.html | |
|
436 sed -e 's/.results.html:<TR><TD>/ /' -e 's/<[^>]*>/ /g' |
|
437 grep 'cache hits; .* cache misses, .* cache not reusable' \ |
|
438 ${MACHINES_TO_CHECK}*/output.log | |
|
439 grep strsclnt | |
|
440 grep -v '0 cache hits; 0 cache misses, 0 cache not reusable' | |
|
441 grep -v ' cache hits; 1 cache misses, 0 cache not reusable' |
|
442 for logfile in ${MACHINES_TO_CHECK}*/output.log; do |
|
443 grep -vi "write to SSL socket" $logfile | |
|
444 grep -vi "HDX PR_Read returned error" | |
|
445 grep -vi "no error" | |
|
446 grep -vi "12285" | |
|
447 grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP error |
|
448 #grep -vi "5938" | needed for -v option |
|
449 #grep -vi "HDX PR_Read hit EOF" | |
|
450 grep -vi "write to SSL socket" $logfile | |
|
451 grep -vi "peer cannot verify" | |
|
452 grep -vi "error" | |
|
453 grep -vi "fatal" | |
|
454 grep -vi "TCP Connection aborted" | |
|
455 grep -vi "TCP connection reset" | |
|
456 grep $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP -i failed |
|
457 done |
|
458 grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP "segmentation violation" \ |
|
459 ${MACHINES_TO_CHECK}*/output.log |
|
460 grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP "memory fault" \ |
|
461 ${MACHINES_TO_CHECK}*/output.log |
|
462 grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP "bus error" \ |
|
463 ${MACHINES_TO_CHECK}*/output.log |
|
464 grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP "core dumped" \ |
|
465 ${MACHINES_TO_CHECK}*/output.log |
|
466 grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP fatal \ |
|
467 ${MACHINES_TO_CHECK}*/output.log |
|
468 grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP -i\ |
|
469 "PKCS12 decode not verified" ${MACHINES_TO_CHECK}*/output.log |
|
470 |
|
471 if [ -n "${MACHINES_TO_CHECK}" ] ; then |
|
472 find ${MACHINES_TO_CHECK}* -name core -print 2>/dev/null | |
|
473 grep -v bct |
|
474 else |
|
475 find . -name core -print 2>/dev/null | |
|
476 grep -v bct |
|
477 fi |
|
478 } |
|
479 |
|
480 tbx_missing_platforms () |
|
481 { |
|
482 QA_MISSING="QA report missing" |
|
483 MACHINE="0" |
|
484 |
|
485 if [ "$QA_OS_STRING" = "WINNT4.0" ] ; then |
|
486 QA_OS_STRING="Windows-NT-4.0" |
|
487 fi |
|
488 for BUILDPLATFORM in `grep $QA_OS_STRING $TESTSCRIPTDIR/platformlist.tbx` |
|
489 do |
|
490 if [ "$BUILDPLATFORM" != "$QA_OS_STRING" ] ; then |
|
491 Debug "BUILDPLATFORM = $BUILDPLATFORM QA_OS_STRING = $QA_OS_STRING" |
|
492 grep $BUILDPLATFORM ${MACHINES_TO_CHECK}*/results.html \ |
|
493 >/dev/null || { |
|
494 setQAsysvars |
|
495 html_line missing >>$TMP_HTML_FILE |
|
496 } |
|
497 fi |
|
498 done |
|
499 } |
|
500 |
|
501 ############################ platform _list ########################### |
|
502 # local shell function, generate pass/fail information for each Platform |
|
503 ######################################################################## |
|
504 platformlist() |
|
505 { |
|
506 grep Platform ${MACHINES_TO_CHECK}*/results.html | |
|
507 sed -e 's/.results.html:<H4>Platform: /---/' \ |
|
508 -e 's/<BR>//' >$TMPFILE |
|
509 # this is done a little complicated to avoid starting a subshell in |
|
510 # a while read that gets the input from a pipeline, and variables set |
|
511 #in or underneath this function get unset after done... |
|
512 for MB in `cat $TMPFILE` ; do |
|
513 MACHINE=`echo $MB | sed -e "s/---.*//"` |
|
514 BUILDPLATFORM=`echo $MB | sed -e "s/.*---//"` |
|
515 grep "${MACHINE}[^0-9]" $ERRORLIST >/dev/null |
|
516 ret=$? |
|
517 setQAsysvars |
|
518 if [ $ret -eq 0 ] |
|
519 then |
|
520 echo "Failed $MACHINE $BUILDPLATFORM" >>$RFILE |
|
521 html_line failed >>$TMP_HTML_FILE |
|
522 else |
|
523 echo "Passed $MACHINE $BUILDPLATFORM" >>$RFILE |
|
524 html_line passed >>$TMP_HTML_FILE |
|
525 fi |
|
526 done |
|
527 } |
|
528 |
|
529 ############################ missing_platforms ########################### |
|
530 # local shell function, finds out if we ran on all required platforms |
|
531 ######################################################################## |
|
532 missing_platforms() |
|
533 { |
|
534 QA_MISSING="QA report missing" |
|
535 MACHINE="0" |
|
536 SYSNAME="0" |
|
537 QA_SYS_OS="0" |
|
538 |
|
539 for BUILDPLATFORM in `cat $TESTSCRIPTDIR/platformlist` |
|
540 do |
|
541 grep $BUILDPLATFORM $PLATFORMLIST > /dev/null || { |
|
542 setQAsysvars |
|
543 html_line missing >>$TMP_HTML_FILE |
|
544 } |
|
545 done |
|
546 } |
|
547 |
|
548 ############################ incomplete_results ########################### |
|
549 # local shell function, finds out if all qa runs were complete |
|
550 ######################################################################## |
|
551 incomplete_results () |
|
552 { |
|
553 |
|
554 for w in `ls ${MACHINES_TO_CHECK}*/results.html` |
|
555 do |
|
556 grep bgcolor=red $w || { |
|
557 PASSED_LINES="" |
|
558 PASSED_LINES=`grep bgcolor=lightGreen $w | wc -l` |
|
559 if [ -n "$PASSED_LINES" -a "$PASSED_LINES" -lt "$TOTAL_TESTS" ] ; then |
|
560 BUILDPLATFORM=`grep Platform $w | sed -e 's/<H4>Platform:/ /' -e 's/<BR>//'` |
|
561 MACHINE=`echo $w | sed -e "s/.results.html//"` |
|
562 #MACHINE=`echo $w | sed -e "s/\.[0-9]*.results.html//"` |
|
563 setQAsysvars |
|
564 html_line incomplete >>$TMP_HTML_FILE |
|
565 elif [ "$PASSED_LINES" -gt "$TOTAL_TESTS" ] ; then |
|
566 echo "WARNING - more tests than expected on $w ($PASSED_LINES)" >>$WARNINGLIST |
|
567 fi |
|
568 } |
|
569 done |
|
570 } |
|
571 |
|
572 qa_stat_table() |
|
573 { |
|
574 echo ' ' |
|
575 echo '<br> ' |
|
576 echo '<center>' |
|
577 echo '<h1>' |
|
578 echo '<a NAME="'$1'"></a>'$1'</h1></center>' |
|
579 echo ' ' |
|
580 echo '<table BORDER WIDTH="100%" NOSAVE >' |
|
581 echo '<tr NOSAVE>' |
|
582 } |
|
583 |
|
584 ############################### psaperf ######################## |
|
585 # local shell function, copies results of the daily performance test |
|
586 # into a table in the QA report |
|
587 ######################################################################## |
|
588 rsaperf() |
|
589 { |
|
590 grep RSAPERF */output.log | grep -v "_DBG" > $PERFLIST |
|
591 |
|
592 qa_stat_table "Performance list" |
|
593 |
|
594 echo '<td NOSAVE><b><font size=+1>Build-OS and version</font></b></td>' |
|
595 echo '<td><b><font size=+1>Systemname</font></b></td>' |
|
596 echo '<td><b><font size=+1># of iterations</font></b></td>' |
|
597 echo '<td><b><font size=+1>average for one op</font></b></td>' |
|
598 echo '<td><b><font size=+1>Total</font></b></td>' |
|
599 echo '<td><b><font size=+1>QA time / #</font></b></td>' |
|
600 echo '</tr>' |
|
601 cat $PERFLIST | |
|
602 while read MACHINE BUILDPLATFORM no_iter t1 t2 total total_unit t3 \ |
|
603 t4 t5 average average_unit |
|
604 do |
|
605 #caution subshell, variables local to this loop |
|
606 BUILD_SYS=`echo $BUILDPLATFORM | sed -e 's/\.OBJ//' \ |
|
607 -e 's/_DBG/ Debug/' \ |
|
608 -e 's/_OPT/ Optimized/' -e 's/_64/ 64bit/' -e 's/_glibc_PTH//' \ |
|
609 -e 's/_/ /'` |
|
610 TESTNUMBER=`echo $MACHINE | sed -e 's/[^\.]*\.//' -e 's/\/.*//'` |
|
611 MACHINE=`echo $MACHINE | sed -e 's/\..*//'` |
|
612 TESTDATE=`ls -ld ${MACHINE}.${TESTNUMBER} | awk '{ print $6, $7, $8 }'` |
|
613 echo '<tr>' |
|
614 echo '<td>'$BUILD_SYS'</td>' |
|
615 echo '' |
|
616 echo '<td>'$MACHINE'</td>' |
|
617 echo '' |
|
618 echo '<td>'$no_iter'</td>' |
|
619 echo '' |
|
620 echo '<td>'$average' '$average_unit'</td>' |
|
621 echo '' |
|
622 echo '<td>'$total' '$total_unit'</td>' |
|
623 echo '' |
|
624 echo '<td>'$TESTDATE $TESTNUMBER'</td>' |
|
625 echo '' |
|
626 echo '</tr>' |
|
627 done |
|
628 echo '</table>' |
|
629 } |
|
630 |
|
631 ############################### qa_stat_cleanup ######################## |
|
632 # local shell function, finishes html file, sets variables for global Exit |
|
633 ######################################################################## |
|
634 qa_stat_cleanup() |
|
635 { |
|
636 |
|
637 html_footer >>$TMP_HTML_FILE |
|
638 |
|
639 O_DEBUG=OFF |
|
640 |
|
641 EARLY_EXIT=FALSE |
|
642 cp $TMP_HTML_FILE $HTML_FILE |
|
643 FILENAME=$HTML_FILE #we might want to mail it... |
|
644 Exit |
|
645 } |
|
646 |
|
647 |
|
648 ############################### bc_test ######################## |
|
649 # local shell function, evaluates the results of the backward u |
|
650 # compatibility tests |
|
651 ######################################################################## |
|
652 bc_header() |
|
653 { |
|
654 CURRENT_TABLE="BC" #so html_line can determine which fields to write |
|
655 |
|
656 qa_stat_table "Backward Compatibility Test" |
|
657 echo '<td NOSAVE><b><font size=+1>Build-OS and version</font></b></td>' |
|
658 echo '<td><b><font size=+1>QA-OS</font></b></td>' |
|
659 echo '<td><b><font size=+1>Systemname</font></b></td>' |
|
660 echo '<td><b><font size=+1>P/F</font></b></td>' |
|
661 #echo '<td><b><font size=+1>All Current</font></b></td>' |
|
662 #echo '<td><b><font size=+1>backward comp. test</font></b></td>' |
|
663 echo '<td><b><font size=+1>result</font></b></td>' |
|
664 echo '<td><b><font size=+1>output</font></b></td>' |
|
665 echo '<td><b><font size=+1>QA time / #</font></b></td>' |
|
666 echo '</tr>' |
|
667 |
|
668 } |
|
669 |
|
670 old_bc_test() |
|
671 { |
|
672 CURRENT_TABLE="BC" #so html_line can determine which fields to write |
|
673 |
|
674 qa_stat_table "Backward Compatibility Test" |
|
675 echo '<td NOSAVE><b><font size=+1>Build-OS and version</font></b></td>' |
|
676 echo '<td><b><font size=+1>QA-OS</font></b></td>' |
|
677 echo '<td><b><font size=+1>Systemname</font></b></td>' |
|
678 echo '<td><b><font size=+1>P/F</font></b></td>' |
|
679 #echo '<td><b><font size=+1>All Current</font></b></td>' |
|
680 #echo '<td><b><font size=+1>backward comp. test</font></b></td>' |
|
681 echo '<td><b><font size=+1>result</font></b></td>' |
|
682 echo '<td><b><font size=+1>output</font></b></td>' |
|
683 echo '<td><b><font size=+1>QA time / #</font></b></td>' |
|
684 echo '</tr>' |
|
685 |
|
686 for w in `ls */results.html` |
|
687 do |
|
688 TMP_RESULT="`dirname $w`/results.tmp" |
|
689 TMP_BC_RESULT="`dirname bct/$w`/results.tmp" |
|
690 rm $TMP_RESULT $TMP_BC_RESULT 2>/dev/null |
|
691 cat $w | sed -e 's/<[^>]*>//g' -e 's/ /_/g' \ |
|
692 -e 's/signtool_-[vw]/signtool_-vw/' | |
|
693 grep '_[PF]a[si][sl]ed' >$TMP_RESULT |
|
694 cat bct/$w | sed -e 's/<[^>]*>//g' -e 's/ /_/g' \ |
|
695 -e 's/signtool_-[vw]/signtool_-vw/' | |
|
696 grep '_[PF]a[si][sl]ed' >$TMP_BC_RESULT |
|
697 diff $TMP_RESULT $TMP_BC_RESULT 2>>$BCMISSINGLIST | |
|
698 grep -v "Create_objsign_cert_.signtool_-G.*Passed" | |
|
699 grep -v "porting_Alice.s_email_cert" | |
|
700 grep -v "^[0-9,cad]*$" | grep -v "^---$" | grep -v "^---.$" | |
|
701 grep -v "Can.t_run_pk12util_tests_for_NSS_3.2" >/dev/null && ( |
|
702 echo "$w differs" >> $BCMISSINGLIST |
|
703 echo "=========================================" |
|
704 echo "diff $w bct/$w" |
|
705 echo "=========================================" |
|
706 diff $TMP_RESULT $TMP_BC_RESULT 2>&1 | |
|
707 grep -v "Create_objsign_cert_.signtool_-G.*Passed" | |
|
708 grep -v "porting_Alice.s_email_cert" | |
|
709 grep -v "Can.t_run_pk12util_tests_for_NSS_3.2" |
|
710 ) 2>&1 >>$BCERRORLIST |
|
711 |
|
712 #diff -b $w bct/$w 2>>$BCMISSINGLIST | |
|
713 #grep -v "Create objsign cert .signtool -G.*Passed" | |
|
714 #grep -v "Listing signed files in jar .signtool -v.*Passed" | |
|
715 #grep -v "Listing signed files in jar .signtool -w.*Passed" | |
|
716 #grep -v "backward compatibility" | |
|
717 #grep -v "Can.t run pk12util tests for NSS 3.2" | |
|
718 #grep -v "porting Alice.s email cert " | |
|
719 #grep -v "^---$" | grep -v "^[<> ] $" | |
|
720 #grep -v "^---.$" | grep -v "^[<> ] .$" | |
|
721 #grep -v '< </BODY></HTML>' | |
|
722 #grep -v "^[0-9,cad]*$" 2>>$BCMISSINGLIST >/dev/null && ( |
|
723 #echo "$w differs" >> $BCMISSINGLIST |
|
724 #echo "=========================================" |
|
725 #echo "diff $w bct/$w" |
|
726 #echo "=========================================" |
|
727 #diff -b $w bct/$w 2>&1 | |
|
728 #grep -v "Listing signed files in jar .signtool -v.*Passed" | |
|
729 #grep -v "Listing signed files in jar .signtool -w.*Passed" | |
|
730 #grep -v "backward compatibility" | |
|
731 #grep -v "Can.t run pk12util tests for NSS 3.2" | |
|
732 #grep -v "porting Alice.s email cert " | |
|
733 #grep -v "^---$" | grep -v "^[<> ] $" | |
|
734 #grep -v "^---.$" | grep -v "^[<> ] .$" | |
|
735 #grep -v '< </BODY></HTML>' | |
|
736 #grep -v "^[0-9,cad]*$" \ |
|
737 #) 2>&1 >>$BCERRORLIST |
|
738 rm $TMP_RESULT $TMP_BC_RESULT 2>/dev/null |
|
739 done |
|
740 rm $ERRORLIST |
|
741 cat $BCMISSINGLIST | sed -e "s/^diff: bc_...s.//" \ |
|
742 -e "s/.results.html.*/\/results.html/" | |
|
743 sort -u > $ERRORLIST |
|
744 |
|
745 platformlist |
|
746 echo '</table>' >>$TMP_HTML_FILE |
|
747 |
|
748 head -200 $BCERRORLIST | sed -e 's/<[^>]*>//g' -e "s/^/<br>/" |
|
749 } |
|
750 |
|
751 bc_test() |
|
752 { |
|
753 CURRENT_TABLE="BC" #so html_line can determine which fields to write |
|
754 |
|
755 qa_stat_table "Backward Compatibility Test" |
|
756 echo '<td NOSAVE><b><font size=+1>Build-OS and version</font></b></td>' |
|
757 echo '<td><b><font size=+1>QA-OS</font></b></td>' |
|
758 echo '<td><b><font size=+1>Systemname</font></b></td>' |
|
759 echo '<td><b><font size=+1>P/F</font></b></td>' |
|
760 #echo '<td><b><font size=+1>All Current</font></b></td>' |
|
761 #echo '<td><b><font size=+1>backward comp. test</font></b></td>' |
|
762 echo '<td><b><font size=+1>result</font></b></td>' |
|
763 echo '<td><b><font size=+1>output</font></b></td>' |
|
764 echo '<td><b><font size=+1>QA time / #</font></b></td>' |
|
765 echo '</tr>' |
|
766 |
|
767 set -x |
|
768 for w in `ls */results.html` |
|
769 do |
|
770 BCT_DIR=`dirname "bct/$w"` |
|
771 BCT_RESULT="bct/$w" |
|
772 BCT_LOG="$BCT_DIR/output.log" |
|
773 grep "bgcolor=red" $BCT_RESULT | |
|
774 sed -e 's/.results.html:<TR><TD>/ /' -e 's/<[^>]*>/ /g' |
|
775 grep 'cache hits; .* cache misses, .* cache not reusable' \ |
|
776 $BCT_LOG | |
|
777 grep -v selfserv | |
|
778 grep -v '0 cache hits; 1 cache misses, 0 cache not reusable' | |
|
779 grep -v '0 cache hits; 0 cache misses, 0 cache not reusable' | |
|
780 grep -v ' cache hits; 1 cache misses, 0 cache not reusable' |
|
781 grep -vi "write to SSL socket" $BCT_LOG | |
|
782 grep -vi "HDX PR_Read returned error" | |
|
783 grep -vi "no error" | |
|
784 grep -vi "12285" | |
|
785 grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP error |
|
786 grep -vi "write to SSL socket" $BCT_LOG | |
|
787 grep -vi "peer cannot verify" | |
|
788 grep -vi "TCP Connection aborted" | |
|
789 grep -vi "error" | |
|
790 grep -vi "fatal" | |
|
791 grep -vi "TCP connection reset" | |
|
792 grep $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP -i failed $BCT_LOG |
|
793 grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP "segmentation violation" $BCT_LOG |
|
794 grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP "memory fault" $BCT_LOG |
|
795 grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP "bus error" $BCT_LOG |
|
796 grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP "core dumped" $BCT_LOG |
|
797 grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP fatal $BCT_LOG |
|
798 grep -i $BEFORE_CONTEXT_GREP $AFTER_CONTEXT_GREP -i "PKCS12 decode not verified" $BCT_LOG |
|
799 find ${BTC_DIR} -name core -print |
|
800 |
|
801 done 2>&1 >>$BCERRORLIST |
|
802 rm $ERRORLIST |
|
803 cat $BCMISSINGLIST | sed -e "s/^diff: bc_...s.//" \ |
|
804 -e "s/.results.html.*/\/results.html/" | |
|
805 sort -u > $ERRORLIST |
|
806 |
|
807 platformlist |
|
808 echo '</table>' >>$TMP_HTML_FILE |
|
809 |
|
810 head -200 $BCERRORLIST | sed -e 's/<[^>]*>//g' -e "s/^/<br>/" |
|
811 } |
|
812 |
|
813 |
|
814 ############################### bc_test ######################## |
|
815 # local shell function, evaluates the results of the backward u |
|
816 # compatibility tests |
|
817 # move the whole function to old to tests a new solution |
|
818 ######################################################################## |
|
819 bc_test_old() |
|
820 { |
|
821 CURRENT_TABLE="BC" #so html_line can determine which fields to write |
|
822 |
|
823 qa_stat_table "Backward Compatibility Test" |
|
824 echo '<td NOSAVE><b><font size=+1>Build-OS and version</font></b></td>' |
|
825 echo '<td><b><font size=+1>QA-OS</font></b></td>' |
|
826 echo '<td><b><font size=+1>Systemname</font></b></td>' |
|
827 echo '<td><b><font size=+1>P/F</font></b></td>' |
|
828 #echo '<td><b><font size=+1>All Current</font></b></td>' |
|
829 #echo '<td><b><font size=+1>backward comp. test</font></b></td>' |
|
830 echo '<td><b><font size=+1>result</font></b></td>' |
|
831 echo '<td><b><font size=+1>output</font></b></td>' |
|
832 echo '<td><b><font size=+1>QA time / #</font></b></td>' |
|
833 echo '</tr>' |
|
834 |
|
835 for w in `ls */results.html` |
|
836 do |
|
837 diff -b $w bct/$w 2>>$BCMISSINGLIST | |
|
838 grep -v "Create objsign cert .signtool -G.*Passed" | |
|
839 grep -v "Listing signed files in jar .signtool -v.*Passed" | |
|
840 grep -v "Listing signed files in jar .signtool -w.*Passed" | |
|
841 grep -v "backward compatibility" | |
|
842 grep -v "Can.t run pk12util tests for NSS 3.2" | |
|
843 grep -v "porting Alice.s email cert " | |
|
844 grep -v "^---$" | grep -v "^[<> ] $" | |
|
845 grep -v "^---.$" | grep -v "^[<> ] .$" | |
|
846 grep -v '< </BODY></HTML>' | |
|
847 grep -v "^[0-9,cad]*$" 2>>$BCMISSINGLIST >/dev/null && ( |
|
848 echo "$w differs" >> $BCMISSINGLIST |
|
849 echo "=========================================" |
|
850 echo "diff $w bct/$w" |
|
851 echo "=========================================" |
|
852 diff -b $w bct/$w 2>&1 | |
|
853 grep -v "Listing signed files in jar .signtool -v.*Passed" | |
|
854 grep -v "Listing signed files in jar .signtool -w.*Passed" | |
|
855 grep -v "backward compatibility" | |
|
856 grep -v "Can.t run pk12util tests for NSS 3.2" | |
|
857 grep -v "porting Alice.s email cert " | |
|
858 grep -v "^---$" | grep -v "^[<> ] $" | |
|
859 grep -v "^---.$" | grep -v "^[<> ] .$" | |
|
860 grep -v '< </BODY></HTML>' | |
|
861 grep -v "^[0-9,cad]*$" \ |
|
862 ) 2>&1 >>$BCERRORLIST |
|
863 done |
|
864 rm $ERRORLIST |
|
865 cat $BCMISSINGLIST | sed -e "s/^diff: bc_...s.//" \ |
|
866 -e "s/.results.html.*/\/results.html/" | |
|
867 sort -u > $ERRORLIST |
|
868 |
|
869 platformlist |
|
870 echo '</table>' >>$TMP_HTML_FILE |
|
871 |
|
872 head -200 $BCERRORLIST | sed -e 's/<[^>]*>//g' -e "s/^/<br>/" |
|
873 |
|
874 } |
|
875 |
|
876 ############################### tbx_main ######################## |
|
877 # local shell function, tinderbox variation of the qa status script |
|
878 ######################################################################## |
|
879 tbx_main() |
|
880 { |
|
881 TBX_EXIT=47 |
|
882 qa_stat_get_sysinfo # find out the OS we are running and all required tests |
|
883 # on this OS |
|
884 |
|
885 MACHINES_TO_CHECK=$HOST #`uname -n` only search the local tests for errors |
|
886 qa_errorlist > $ERRORLIST # |
|
887 platformlist |
|
888 #tbx_missing_platforms #temp. taken out until we find a better way to |
|
889 #determine if all necessary QA ran - right now we run different |
|
890 #tinderboxes on one machine |
|
891 incomplete_results |
|
892 echo '</table>' >>$TMP_HTML_FILE |
|
893 echo '<a NAME="errorlist"></a>' >> $TMP_HTML_FILE |
|
894 cat $ERRORLIST | sed -e "s/^/<br>/" >>$TMP_HTML_FILE |
|
895 |
|
896 } |
|
897 |
|
898 ############################### qa_stat_main ######################## |
|
899 # local shell function, main flow of the qa status script |
|
900 ######################################################################## |
|
901 qa_stat_main() |
|
902 { |
|
903 find_qa_systems 2>/dev/null |
|
904 MACHINES_TO_CHECK="" # check all founf qa runs |
|
905 qa_errorlist > $ERRORLIST |
|
906 platformlist |
|
907 missing_platforms |
|
908 incomplete_results |
|
909 echo '</table>' >>$TMP_HTML_FILE |
|
910 echo '<a NAME="errorlist"></a>' >> $TMP_HTML_FILE |
|
911 cat $ERRORLIST | sed -e "s/^/<br>/" >>$TMP_HTML_FILE |
|
912 cat $WARNINGLIST 2>/dev/null | sed -e "s/^/<br>/" >>$TMP_HTML_FILE 2>/dev/null |
|
913 rsaperf >>$TMP_HTML_FILE |
|
914 bc_header >>$TMP_HTML_FILE |
|
915 MACHINES_TO_CHECK="bct/" |
|
916 TOTAL_TESTS=$BCT_TOTAL_TESTS |
|
917 BEFORE_CONTEXT_GREP="" #WORKAROUND - errors in one outputlog within the first |
|
918 AFTER_CONTEXT_GREP="" # or last lines will show up in the next/previos file |
|
919 qa_errorlist > $ERRORLIST |
|
920 platformlist |
|
921 missing_platforms |
|
922 incomplete_results |
|
923 echo '</table>' >>$TMP_HTML_FILE |
|
924 echo '<a NAME="errorlist"></a>' >> $TMP_HTML_FILE |
|
925 cat $ERRORLIST | sed -e "s/^/<br>/" >>$TMP_HTML_FILE |
|
926 cat $WARNINGLIST 2>/dev/null | sed -e "s/^/<br>/" >>$TMP_HTML_FILE 2>/dev/null |
|
927 #bc_test >>$TMP_HTML_FILE |
|
928 } |
|
929 |
|
930 CURRENT_TABLE="Standard" |
|
931 qa_stat_init |
|
932 |
|
933 if [ "$O_TBX" = "ON" -o "$O_LOCAL" = "ON" ] ; then |
|
934 tbx_main |
|
935 else |
|
936 qa_stat_main |
|
937 fi |
|
938 |
|
939 qa_stat_cleanup |