Author: sebor
Date: Thu May 15 08:52:52 2008
New Revision: 656711
URL: http://svn.apache.org/viewvc?rev=656711&view=rev
Log:
2008-05-15 Martin Sebor <[EMAIL PROTECTED]>
* bin/genxviews: Copied from the head of 4.2.x.
* bin/xbuildgen: Same.
* bin/duration: Same.
* bin/xcomp.awk: Same.
* bin/buildntest: Same.
Modified:
stdcxx/branches/4.3.x/bin/buildntest (contents, props changed)
stdcxx/branches/4.3.x/bin/duration (contents, props changed)
stdcxx/branches/4.3.x/bin/genxviews (contents, props changed)
stdcxx/branches/4.3.x/bin/xbuildgen (contents, props changed)
stdcxx/branches/4.3.x/bin/xcomp.awk (contents, props changed)
Modified: stdcxx/branches/4.3.x/bin/buildntest
URL:
http://svn.apache.org/viewvc/stdcxx/branches/4.3.x/bin/buildntest?rev=656711&r1=656710&r2=656711&view=diff
==============================================================================
--- stdcxx/branches/4.3.x/bin/buildntest (original)
+++ stdcxx/branches/4.3.x/bin/buildntest Thu May 15 08:52:52 2008
@@ -353,12 +353,12 @@
echo "### running $0 $* [$#]"
# script's revision number
-myrev='$Revision$'
+myrev='$Revision: 656702 $'
myrev=${myrev#'$Revision: '} # strip leading text
myrev=${myrev%' $'} # strip trailing text
# URL to this version of the script in the repository
-myurl='$HeadURL$'
+myurl='$HeadURL:
https://svn.apache.org/repos/asf/stdcxx/branches/4.2.x/bin/buildntest $'
myurl=${myurl#'$HeadURL: '} # strip leading text
myurl=${myurl%' $'} # strip trailing text
myurl="$myurl?view=markup&rev=$myrev"
Propchange: stdcxx/branches/4.3.x/bin/buildntest
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Thu May 15 08:52:52 2008
@@ -1 +1 @@
-HeadURL Id Revision
+Id
Modified: stdcxx/branches/4.3.x/bin/duration
URL:
http://svn.apache.org/viewvc/stdcxx/branches/4.3.x/bin/duration?rev=656711&r1=656710&r2=656711&view=diff
==============================================================================
--- stdcxx/branches/4.3.x/bin/duration (original)
+++ stdcxx/branches/4.3.x/bin/duration Thu May 15 08:52:52 2008
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# $Id: duration 601591 2007-12-06 01:09:56Z sebor $
+# $Id$
#
########################################################################
#
Propchange: stdcxx/branches/4.3.x/bin/duration
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Thu May 15 08:52:52 2008
@@ -1 +1 @@
-Revision
+Id
Modified: stdcxx/branches/4.3.x/bin/genxviews
URL:
http://svn.apache.org/viewvc/stdcxx/branches/4.3.x/bin/genxviews?rev=656711&r1=656710&r2=656711&view=diff
==============================================================================
--- stdcxx/branches/4.3.x/bin/genxviews (original)
+++ stdcxx/branches/4.3.x/bin/genxviews Thu May 15 08:52:52 2008
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# $Id: genxviews 601595 2007-12-06 01:33:50Z sebor $
+# $Id$
#
########################################################################
#
@@ -30,6 +30,16 @@
fi
fi
+readonly www_stdcxx_dir="/www/stdcxx.apache.org/builds"
+
+XBUILDGEN=`which xbuildgen 2>/dev/null`
+
+if [ "$XBUILDGEN" = "" ]; then
+ XBUILDGEN=`dirname $0`/xbuildgen
+fi
+
+# default directory where to look for build logs to process
+logdir=.
# show the command line to invoke xbuildgen without actually
# invoking the script
@@ -38,9 +48,8 @@
# write verbose progress output to stdout?
verbose=0
-
# process command line options
-while getopts "dvD:o:V:" opt_name; do
+while getopts "dvD:L:o:V:" opt_name; do
case $opt_name in
# options with no arguments
@@ -54,10 +63,14 @@
# options with arguments
- D) # output directory
+ D) # argument names the directory where to create output files
outdir=$OPTARG
;;
+ L) # argument names the directory containing build logs
+ logdir=$OPTARG
+ ;;
+
o) # argument is the name of output file (stdout by default)
outfile=$OPTARG
;;
@@ -72,38 +85,35 @@
# set the Subversion and output directories based on version
-if [ "$version" == "" ]; then
+if [ "$version" = "" ]; then
# Subversion (sub)directory under stdcxx/
svndir="trunk"
# set output directory unless already set on the command line
- if [ "$outdir" = "" ]; then
- outdir="$HOME/public_html/stdcxx/results/builds"
+ if [ "$outdir" = "" -a -w $www_stdcxx_dir ]; then
+ outdir="/www/stdcxx.apache.org/builds/$svndir"
fi
else
# Subversion (sub)directory under stdcxx/
svndir="branches/$version"
# set output directory unless already set on the command line
- if [ "$outdir" = "" ]; then
- outdir="$HOME/public_html/stdcxx-$version/results/builds"
+ if [ "$outdir" = "" -a -w $www_stdcxx_dir ]; then
+ outdir="/www/stdcxx.apache.org/builds/$version"
fi
verarg="-V$version"
fi
-# program to invoke to process detailed results
-CROSS=$HOME/stdcxx/bin/xbuildgen
-
# extract the script's revision number
-myrev='$Revision$'
+myrev='$Revision: 656706 $'
myrev=${myrev#'$Revision: '} # strip leading text
myrev=${myrev%' $'} # strip trailing text
# form the URL to this version of the script in the repository
-myurl='$HeadURL: http://svn.apache.org/repos/asf/stdcxx/$svndir/bin/genxviews
$'
+myurl='$HeadURL: http://svn.apache.org/repos/asf/stdcxx/trunk/bin/genxviews $'
myurl=${myurl#'$HeadURL: '} # strip leading text
myurl=${myurl##*asf/} # strip svn prefix
myurl=${myurl%' $'} # strip trailing text
@@ -116,9 +126,24 @@
myurl="$myurl?view=markup&rev=$myrev"
+######################################################################
+# validate arguments
+
+if [ ! -x $XBUILDGEN ]; then
+ echo "$myname $error: cannot find xbuildgen" >&1
+ exit 2
+fi
+
+
+if [ ! -d "$logdir" -o ! -r "$logdir" ]; then
+ echo "$myname error: \"$logdir\" does not exist or isn't readable" >&2
+ exit 2
+fi
+
if [ $verbose -ne 0 ]; then
echo "$myname: using output directory: \"$outdir\""
+ echo "$myname: reading logs from: \"$logdir\""
fi
######################################################################
@@ -144,10 +169,7 @@
# start the clock measuring the amount of wall clock time to process
# all logs and generate the page
-start_time=`LC_ALL=C date`
-
-
-cd $outdir/..
+readonly start_time=`LC_ALL=C date`
readonly scripturl="<a href=\"$myurl\"><code>$myname</code></a>"
@@ -201,7 +223,8 @@
xfile="$5"
if [ $verbose -ne 0 ]; then
- echo "$myname: processing logs for $osname-$arch-$compiler: $alllogs"
+ echo "$myname: processing logs for $compiler on $osname, $arch"
+ echo "$myname: searching for files matching \"$alllogs\""
fi
cat<<EOF | output
@@ -220,7 +243,7 @@
# a, A: AIX shared archive (32-bit and 64-bit, respectively)
# d, D: shared library (.sl, .so, or .dll)
- # s, S: archive library (.a or .lib(
+ # s, S: archive library (.a or .lib)
suffixes="a A d D s S"
unset buildlogs
@@ -229,8 +252,8 @@
for b in $btypes; do
for s in $suffixes; do
- log=`echo $alllogs | tr ' ' '\n' | grep "[-]$b$s-" \
- | sort | tail -n 1`
+ log=` echo $logdir/$alllogs | tr ' ' '\n' \
+ | grep "[-]$b$s-" | sort | tail -n 1`
if [ "$log" != "" ]; then
buildlogs="$buildlogs $log"
@@ -239,6 +262,10 @@
done
done
+ if [ $verbose -ne 0 ]; then
+ echo "$myname: found $count logs: $buildlogs"
+ fi
+
# create a title for the page
title="$compiler results on $osname/$arch"
@@ -250,13 +277,13 @@
output " <td><i>$xfile</i></td>"
else
if [ $verbose -ne 0 ]; then
- echo "$myname: $CROSS $verarg -s -o$outdir/$xfile -T\"$title\"
$buildlogs"
+ echo "$myname: $XBUILDGEN $verarg -s -o$outdir/$xfile -T\"$title\"
$buildlogs"
fi
output " <td><a href=\"$xfile\">$xfile</a></td>"
if [ $dryrun -eq 0 ]; then
- $CROSS $verarg -s -o$outdir/$xfile -T"$title" $buildlogs
+ $XBUILDGEN $verarg -s -o$outdir/$xfile -T"$title" $buildlogs
fi
fi
@@ -355,7 +382,7 @@
# IRIX #################################################################
process_results "IRIX 6.5" "MIPS" "SGI MIPSpro 7.41" \
"irix-6.5-mips-mipspro-7.41-*-*-log.gz.txt" \
- irix-6.5-mips-mipspro-7.41.htm
+ irix-6.5-mips-mipspro-7.41.html
# Red Hat Linux ########################################################
# Red Hat Enterprise Linux 5.0
@@ -363,6 +390,10 @@
"linux_redhat_el-5.0-em64t-eccp-3.9-*-*-log.gz.txt" \
linux_redhat_el-5.0-em64t-eccp-3.9.html
+process_results "Red Hat Enterprise Linux 5.0" "EM64T" "gcc 4.3.0" \
+ "linux_redhat_el-5.0-em64t-gcc-4.3.0-*-*-log.gz.txt" \
+ linux_redhat_el-5.0-em64t-gcc-4.3.0.html
+
process_results "Red Hat Enterprise Linux 5.0" "EM64T" "gcc 4.1.1" \
"linux_redhat_el-5.0-em64t-gcc-4.1.1-*-*-log.gz.txt" \
linux_redhat_el-5.0-em64t-gcc-4.1.1.html
@@ -376,6 +407,10 @@
linux_redhat_el-5.0-em64t-icc-9.1.html
# Red Hat Enterprise Linux 4 Update 4
+process_results "Red Hat Enterprise Linux 4 Update 4" "AMD64" "gcc 4.3.0" \
+ "linux_redhat_el-4.4-amd64-gcc-4.3.0-*-*-log.gz.txt" \
+ linux_redhat_el-4.4-amd64-gcc-4.3.0.html
+
process_results "Red Hat Enterprise Linux 4 Update 4" "AMD64" "gcc 3.4.6" \
"linux_redhat_el-4.4-amd64-gcc-3.4.6-*-*-log.gz.txt" \
linux_redhat_el-4.4-amd64-gcc-3.4.6.html
@@ -411,6 +446,10 @@
"solaris-10-sparc-eccp-3.9-*-*-log.gz.txt" \
solaris-10-sparc-eccp-3.9.html
+process_results "Solaris 10" "SPARC" "gcc 4.3.0" \
+ "solaris-10-sparc-gcc-4.3.0-*-*-log.gz.txt" \
+ solaris-10-sparc-gcc-4.3.0.html
+
process_results "Solaris 10" "SPARC" "gcc 4.1.1" \
"solaris-10-sparc-gcc-4.1.1-*-*-log.gz.txt" \
solaris-10-sparc-gcc-4.1.1.html
@@ -461,6 +500,10 @@
"linux_suse-10.0-em64t-eccp-3.9-*-*-log.gz.txt" \
linux_suse-10.0-em64t-eccp-3.9.html
+process_results "SuSE Enterprise Server 10.0" "EM64T" "gcc 4.3.0" \
+ "linux_suse-10.0-em64t-gcc-4.3.0-*-*-log.gz.txt" \
+ linux_suse-10.0-em64t-gcc-4.3.0.html
+
process_results "SuSE Enterprise Server 10.0" "EM64T" "gcc 4.1.0" \
"linux_suse-10.0-em64t-gcc-4.1.0-*-*-log.gz.txt" \
linux_suse-10.0-em64t-gcc-4.1.0.html
@@ -475,7 +518,7 @@
# SuSE Enterprise Server 9.1
process_results "SuSE Enterprise Server 9.1" "AMD64" "gcc 3.3.3" \
- "linux_suse-9.1-amd64-gcc-3.3.3-43.28-*-*-log.gz.txt" \
+ "linux_suse-9.1-amd64-gcc-3.3.3-*-*-log.gz.txt" \
linux_suse-9.1-amd64-gcc-3.3.3.html
process_results "SuSE Enterprise Server 9.1" "AMD64" "Intel C++ 10.0" \
@@ -571,7 +614,7 @@
readonly now=`date`
processing_time=`$HOME/stdcxx/bin/duration "$start_time" "$now"`
-cat<<EOF
+cat<<EOF | output
</table>
<hr>
<i>Generated in $processing_time.</i>
Propchange: stdcxx/branches/4.3.x/bin/genxviews
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Thu May 15 08:52:52 2008
@@ -1 +1 @@
-Revision
+Id
Modified: stdcxx/branches/4.3.x/bin/xbuildgen
URL:
http://svn.apache.org/viewvc/stdcxx/branches/4.3.x/bin/xbuildgen?rev=656711&r1=656710&r2=656711&view=diff
==============================================================================
--- stdcxx/branches/4.3.x/bin/xbuildgen (original)
+++ stdcxx/branches/4.3.x/bin/xbuildgen Thu May 15 08:52:52 2008
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# $Id: xbuildgen 601917 2007-12-06 23:46:48Z sebor $
+# $Id$
#
########################################################################
#
@@ -113,7 +113,7 @@
title="Multi-platform Test Result View"
# script's revision number
-myrev='$Revision$'
+myrev='$Revision: 656706 $'
myrev=${myrev#'$Revision: '}
myrev=${myrev%' $'}
@@ -878,13 +878,6 @@
######################################################################
-# the location of the logs
-if [ -z $version ]; then
- logdir="http://people.apache.org/~sebor/stdcxx/results"
-else
- logdir="http://people.apache.org/~sebor/stdcxx-$version/results"
-fi
-
# the name of a temporary file containing the build timings
timings_file=$TMPDIR/.stdcxx-timings.$$
@@ -905,6 +898,7 @@
# space-separated list of names of text logs processed in loop below
textlogs=""
+logdir=""
for l in $gzlogs; do
logcount=$((logcount + 1))
@@ -917,6 +911,12 @@
# set temporary variables (valid only within the loop)
txtlog=$TMPDIR/`basename $l .gz.txt`.txt.$$
+ if [ "$logdir" = "" ]; then
+ logdir=`dirname $l`
+ elif [ $logdir != `dirname $l` ]; then
+ echo "$myname: not implemented: logs in multiple directories" >&2
+ fi
+
# append the name of the log to the list
textlogs="$textlogs $txtlog"
@@ -936,74 +936,14 @@
######################################################################
-# process a list of builds, one build per row
-process_builds()
-{
- component_type=$1 # example, locale, or test
- component_list=$2 # list of component names
-
- cat <<EOF | output
- <h2>Results of ${component_type}s</h2>
- <table>
- <tr>
- <th><a name="${component_type}s"></a>log</th>
- $table_header
- </tr>
-EOF
-
- for l in $textlogs; do
-
- fname=`basename $l .$$`
- cat <<EOF | output
- <tr>
- <td class="name">
- <a href="$logdir/$fname">$fname</a>
- </td>
-EOF
-
- for c in $component_list; do
-
- line=`grep "^$c *[^-]" $l`
- if [ $? -eq 0 -a "$line" != "" ]; then
- echo $line \
- | awk -f $xcomp component=$component_type \
- name=$c verbose=$verbose expect="$expect" \
- | output
- else
- output " <td class=\"missing\">N/A</td>"
- fi
- done
-
- output " </tr>"
- done
- output " </table>"
-}
-
-
-if [ $components_in_rows -ne 0 ]; then
-
- # check to see
- if [ -r $xfailfile ]; then
- xfails=$xfailfile
- else
- xfails=""
- fi
-
- awk -f $xcomp bodyonly=1 $xfails $textlogs | output
+# check to see
+if [ -r $xfailfile ]; then
+ xfails=$xfailfile
else
- if [ "$examples_list" != "" ]; then
- process_builds "example" "$examples_list"
- fi
-
- if [ "$test_list" != "" ]; then
- process_builds "test" "$test_list"
- fi
-
- if [ "$locale_list" != "" ]; then
- process_builds "locale" "$locale_list"
- fi
+ xfails=""
fi
+awk -f $xcomp bodyonly=1 logdir=$logdir $xfails $textlogs | output
######################################################################
# output the rest of the HTML file
Propchange: stdcxx/branches/4.3.x/bin/xbuildgen
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Thu May 15 08:52:52 2008
@@ -1 +1 @@
-Revision
+Id
Modified: stdcxx/branches/4.3.x/bin/xcomp.awk
URL:
http://svn.apache.org/viewvc/stdcxx/branches/4.3.x/bin/xcomp.awk?rev=656711&r1=656710&r2=656711&view=diff
==============================================================================
--- stdcxx/branches/4.3.x/bin/xcomp.awk (original)
+++ stdcxx/branches/4.3.x/bin/xcomp.awk Thu May 15 08:52:52 2008
@@ -23,7 +23,7 @@
########################################################################
#
# SYNOPSIS
-# myname [bodyonly=0|1] logs...
+# myname [bodyonly=0|1 logdir=<logdir>] logs...
#
# VARIABLES:
# bodyonly when non-zero, suppresses the <html> tags
@@ -1233,6 +1233,12 @@
return
}
+ # create the table header roughly in the following format:
+ #
+ # | ### | component | 1 | 2 | 3 | 4 | 5 | 6 | ... | 16 |
+ # | | name | 8d | 8D | 8s | 8S | 11d | 11D | ... | 15S |
+ # | | | date | date | ... | date|
+
thead = " <thead>\n"
thead = thead " <tr class=\"header\">\n"
thead = thead " <td rowspan=3 title=\"" \
@@ -1242,6 +1248,9 @@
thead = thead sectname " name</td>\n"
if (2 == section) {
+ # for tests only, insert a column at offset 2 with the maximum
+ # number of assertions found in the test on the given row across
+ # all build logs
thead = thead " <td rowspan=3 "
thead = thead "title=\"maximum total assertions\">"
thead = thead "max<br>asserts</td>\n"
@@ -1253,9 +1262,9 @@
colnos = ""
- # the date of the last log
- lastdate = ""
- datespan = 0
+ lastdate = "" # date (M/d) of the last log
+ lastfull = "" # full date and time of the last log
+ datespan = 0 # number of same consecutive dates
# iterate over the array of section counts for each log file
# and compose the column headers for each log
@@ -1288,11 +1297,15 @@
}
if (0 == datespan) {
+ # first iteration
lastdate = date
+ lastfull = fulldate
datespan = 1
}
- else if (date == lastdate)
+ else if (date == lastdate) {
+ # increment the span of the last seen date
++datespan
+ }
else {
row2 = row2 " <td"
@@ -1300,11 +1313,12 @@
# for a single log, otherwise the timestamps are most
# likely different for each log
if (1 < datespan)
- row2 = row2 " colspan=" datespan ">" date "</td>\n"
+ row2 = row2 " colspan=" datespan ">" lastdate "</td>\n"
else
- row2 = row2 " title=\"" fulldate "\">" date "</td>\n"
+ row2 = row2 " title=\"" lastfull "\">" lastdate "</td>\n"
lastdate = date
+ lastfull = fulldate
datespan = 1
}
}
@@ -1316,9 +1330,9 @@
# for a single log, otherwise the timestamps are most likely
# different for each log
if (1 < datespan)
- row2 = row2 " colspan=" datespan ">" date "</td>\n"
+ row2 = row2 " colspan=" datespan ">" lastdate "</td>\n"
else
- row2 = row2 " title=\"" fulldate "\">" date "</td>\n"
+ row2 = row2 " title=\"" lastfull "\">" lastdate "</td>\n"
row0 = row0 colnos "\n </tr>\n"
row1 = row1 " </tr>\n"
@@ -1763,7 +1777,7 @@
# replace the trailing .txt suffix with .gz.txt
sub("\\.txt$", ".gz.txt", fref)
- return "../" fref
+ return "logs/" fref
}
Propchange: stdcxx/branches/4.3.x/bin/xcomp.awk
------------------------------------------------------------------------------
svn:eol-style = native