1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-01 06:05:24 +02:00

New build scripts.

This commit is contained in:
Doug Schaefer 2004-03-04 20:26:04 +00:00
parent 4c9d0ef2a3
commit 5d81e1cdf1
17 changed files with 749 additions and 1037 deletions

View file

@ -1,14 +0,0 @@
build
features
jars
logs
plugins
test
zips
build.log
build.number
index.html
main.xml
site.xml
dist
host

View file

@ -1 +1,13 @@
java -classpath $JAVA_HOME/lib/tools.jar:jars/ant.jar:jars/optional.jar:jars/xalan.jar:jars/xml-apis.jar:jars/xercesImpl.jar:jars/NetComponents.jar:jars/activation.jar:jars/mail.jar org.apache.tools.ant.Main $* 2>&1 | tee build.log
# Treat this is an example build script
# Please adjust paths as necessary for your build machine
export JAVA_HOME=/opt/java/j2sdk1.4.2_03
export PATH=$JAVA_HOME/bin:$PATH
cd `dirname $0`
rm -fr results
java -cp eclipse/startup.jar org.eclipse.core.launcher.Main -application org.eclipse.ant.core.antRunner $* \
-DbaseLocation=$PWD/eclipse \
-DbuildDirectory=$PWD/results

View file

@ -1,36 +1,184 @@
<?xml version="1.0"?>
<project name="CDT Build Bootstrap" default="main">
<project default="build">
<property name="build.branch" value="2.0"/>
<property name="build.tag" value="HEAD"/>
<target name="build" depends="zips,test"/>
<property name="build.server" value="update.eclipse.org"/>
<property name="build.remotedir" value="/home/www/tools/cdt/updates/builds/${build.branch}"/>
<!--property name="build.userid" value="userid on server"/-->
<!--property name="build.password" value="password on server"/-->
<target name="bootstrap">
<xslt in="manifest.xml" out="main.xml" style="main.xsl"/>
</target>
<target name="main" depends="bootstrap">
<ant antfile="main.xml"/>
</target>
<target name="build" depends="bootstrap">
<ant antfile="main.xml" target="build"/>
</target>
<target name="test" depends="bootstrap">
<ant antfile="main.xml" target="test"/>
<target name="fullbuild" depends="build,updateSite"/>
<target name="init">
<tstamp/>
<touch file="${user.home}/.cvspass" />
<property name="timestamp" value="${DSTAMP}${TSTAMP}" />
<property name="pde.build.scripts" value="../../plugins/org.eclipse.pde.build_3.0.0/scripts" />
<property name="eclipseZip" value="../../eclipse-SDK.zip"/>
<property name="testZip" value="../org.eclipse.test/org.eclipse.test_2.1.0.zip"/>
<property name="buildDirectory" value="results" />
<property name="bootclasspath" value="${java.home}/lib/rt.jar" />
<property name="rt" value="${java.home}/lib/rt.jar" />
<property name="buildType" value="I" />
<property name="buildId" value="${buildType}${timestamp}"/>
</target>
<target name="upload" depends="bootstrap">
<ant antfile="main.xml" target="upload"/>
</target>
<target name="zips" depends="init">
<unzip src="${eclipseZip}" dest="${basedir}"/>
<ant antfile="build.xml" dir="${pde.build.scripts}">
<property name="builder" value="${basedir}/platform" />
</ant>
<ant antfile="build.xml" dir="${pde.build.scripts}">
<property name="builder" value="${basedir}/builders" />
</ant>
</target>
<target name="mail" depends="bootstrap">
<ant antfile="main.xml" target="mail"/>
</target>
<target name="test" depends="init">
<delete dir="${buildDirectory}/tests"/>
</target>
<target name="updateSite" depends="init">
<property name="siteurl" value="http://update.eclipse.org/tools/cdt/updates/builds/2.0"/>
<property name="zipsdir" value="${buildDirectory}/${buildType}.${buildId}"/>
<property name="sitedir" value="${zipsdir}/build.site"/>
<property name="siteversion" value="2.0.0"/>
<mkdir dir="${sitedir}"/>
<unzip src="${zipsdir}/org.eclipse.cdt-${buildId}-aix.motif.ppc.zip" dest="${sitedir}"/>
<unzip src="${zipsdir}/org.eclipse.cdt-${buildId}-linux.gtk.x86.zip" dest="${sitedir}"/>
<unzip src="${zipsdir}/org.eclipse.cdt-${buildId}-linux.motif.x86.zip" dest="${sitedir}"/>
<unzip src="${zipsdir}/org.eclipse.cdt-${buildId}-qnx.photon.x86.zip" dest="${sitedir}"/>
<unzip src="${zipsdir}/org.eclipse.cdt-${buildId}-solaris.motif.sparc.zip" dest="${sitedir}"/>
<unzip src="${zipsdir}/org.eclipse.cdt-${buildId}-win32.win32.x86.zip" dest="${sitedir}"/>
<unzip src="${zipsdir}/org.eclipse.cdt.make-${buildId}.zip" dest="${sitedir}"/>
<unzip src="${zipsdir}/org.eclipse.cdt.managedbuilder-${buildId}.zip" dest="${sitedir}"/>
<antcall target="allElements">
<param name="target" value="updateVersions"/>
</antcall>
<antcall target="allElements">
<param name="target" value="updateJars"/>
</antcall>
<get src="${siteurl}/site.xml" dest="${sitedir}/site.xml"/>
<get src="${siteurl}/index.html" dest="${sitedir}/site.xml"/>
<xslt style="site.xsl" in="${siteurl}/site.xml" out="x">
<param name="version" expression="${siteversion}.${timestamp}"/>
</xslt>
<move file="x" tofile="${siteurl}/site.xml"/>
</target>
<target name="updateVersions">
<xslt style="plugin.xsl" in="${sitedir}/eclipse/${dir}/${id}_${siteversion}/${type}.xml" out="x">
<param name="version" expression="${siteversion}.${timestamp}"/>
</xslt>
<move file="x" tofile="${sitedir}/eclipse/${dir}/${id}_${siteversion}/${type}.xml"/>
</target>
<target name="updateJars">
<mkdir dir="${sitedir}/${dir}"/>
<jar basedir="${sitedir}/eclipse/${dir}/${id}_${siteversion}"
destfile="${sitedir}/${dir}/${id}_${siteversion}.${timestamp}.jar"/>
</target>
<target name="allElements">
<antcall target="${target}">
<param name="type" value="feature"/>
<param name="dir" value="features"/>
<param name="id" value="org.eclipse.cdt"/>
</antcall>
<antcall target="${target}">
<param name="type" value="feature"/>
<param name="dir" value="features"/>
<param name="id" value="org.eclipse.cdt.make"/>
</antcall>
<antcall target="${target}">
<param name="type" value="feature"/>
<param name="dir" value="features"/>
<param name="id" value="org.eclipse.cdt.managedbuilder"/>
</antcall>
<antcall target="${target}">
<param name="type" value="plugin"/>
<param name="dir" value="plugins"/>
<param name="id" value="org.eclipse.cdt"/>
</antcall>
<antcall target="${target}">
<param name="type" value="plugin"/>
<param name="dir" value="plugins"/>
<param name="id" value="org.eclipse.cdt.core"/>
</antcall>
<antcall target="${target}">
<param name="type" value="fragment"/>
<param name="dir" value="plugins"/>
<param name="id" value="org.eclipse.cdt.core.aix"/>
</antcall>
<antcall target="${target}">
<param name="type" value="fragment"/>
<param name="dir" value="plugins"/>
<param name="id" value="org.eclipse.cdt.core.linux"/>
</antcall>
<antcall target="${target}">
<param name="type" value="fragment"/>
<param name="dir" value="plugins"/>
<param name="id" value="org.eclipse.cdt.core.qnx"/>
</antcall>
<antcall target="${target}">
<param name="type" value="fragment"/>
<param name="dir" value="plugins"/>
<param name="id" value="org.eclipse.cdt.core.solaris"/>
</antcall>
<antcall target="${target}">
<param name="type" value="fragment"/>
<param name="dir" value="plugins"/>
<param name="id" value="org.eclipse.cdt.core.win32"/>
</antcall>
<antcall target="${target}">
<param name="type" value="plugin"/>
<param name="dir" value="plugins"/>
<param name="id" value="org.eclipse.cdt.debug.core"/>
</antcall>
<antcall target="${target}">
<param name="type" value="plugin"/>
<param name="dir" value="plugins"/>
<param name="id" value="org.eclipse.cdt.debug.mi.core"/>
</antcall>
<antcall target="${target}">
<param name="type" value="plugin"/>
<param name="dir" value="plugins"/>
<param name="id" value="org.eclipse.cdt.debug.mi.ui"/>
</antcall>
<antcall target="${target}">
<param name="type" value="plugin"/>
<param name="dir" value="plugins"/>
<param name="id" value="org.eclipse.cdt.debug.ui"/>
</antcall>
<antcall target="${target}">
<param name="type" value="plugin"/>
<param name="dir" value="plugins"/>
<param name="id" value="org.eclipse.cdt.doc.user"/>
</antcall>
<antcall target="${target}">
<param name="type" value="plugin"/>
<param name="dir" value="plugins"/>
<param name="id" value="org.eclipse.cdt.launch"/>
</antcall>
<antcall target="${target}">
<param name="type" value="plugin"/>
<param name="dir" value="plugins"/>
<param name="id" value="org.eclipse.cdt.make.core"/>
</antcall>
<antcall target="${target}">
<param name="type" value="plugin"/>
<param name="dir" value="plugins"/>
<param name="id" value="org.eclipse.cdt.make.ui"/>
</antcall>
<antcall target="${target}">
<param name="type" value="plugin"/>
<param name="dir" value="plugins"/>
<param name="id" value="org.eclipse.cdt.managedbuilder.core"/>
</antcall>
<antcall target="${target}">
<param name="type" value="plugin"/>
<param name="dir" value="plugins"/>
<param name="id" value="org.eclipse.cdt.managedbuilder.ui"/>
</antcall>
<antcall target="${target}">
<param name="type" value="plugin"/>
<param name="dir" value="plugins"/>
<param name="id" value="org.eclipse.cdt.ui"/>
</antcall>
</target>
</project>

View file

@ -0,0 +1,81 @@
#####################
# Parameters describing how and where to execute the build.
# Typical users need only update the following properties:
# baseLocation - where things you are building against are installed
# bootclasspath - The base jars to compile against (typicaly rt.jar)
# configs - the list of {os, ws, arch} configurations to build.
#
# Of course any of the settings here can be overridden by spec'ing
# them on the command line (e.g., -DbaseLocation=d:/eclipse
############# CVS CONTROL ################
# The CVS tag to use when fetching the map files from the repository
mapVersionTag=HEAD
# The CVS tag to use when fetching elements to build. By default the
# builder will use whatever is in the maps. Use this value to override
# for example, when doing a nightly build out of HEAD
# fetchTag=HEAD
############## BUILD / GENERATION CONTROL ################
# The directory into which the build elements will be fetched and where
# the build will take place. buildDirectory and install should be the same
# value.
buildDirectory=build
# Type of build. Used in naming the build output. Typically this value is
# one of I, N, M, S, ...
buildType=I
# ID of the build. Used in naming the build output.
buildId=TestBuild
# Label for the build. Used in naming the build output
buildLabel=${buildType}.${buildId}
# Timestamp for the build. Used in naming the build output
timestamp=007
# Base location for anything the build needs to compile against. For example,
# when building GEF, the baseLocation should be the location of a previously
# installed Eclipse against which the GEF code will be compiled.
baseLocation=
#Os/Ws/Arch/nl of the eclipse specified by baseLocation
#baseos
#basews
#basearch
#basenl
# The location underwhich all of the build output will be collected. This will be
# the root path in the resultant zip file.
collPlace=eclipse
# The directory in which to execute zip of the ${collPlace} directory
collBase=.
# The list of {os, ws, arch} configurations to build. This
# value is a '&' separated list of ',' separate triples. For example,
# configs=win32,win32,x86 & linux,motif,x86
# By default the value is *,*,*
configs=*,*,*
#Arguments to send to the zip executable
zipargs=
############# JAVA COMPILER OPTIONS ##############
# The location of the Java jars to compile against. Typically the rt.jar for your JDK/JRE
#bootclasspath=d:/ibm1.3.1/jre/lib/rt.jar
# Whether or not to include debug info in the output jars
javacDebugInfo=false
# Whether or not to fail the build if there are compiler errors
javacfailonerror=true
# The version of the source code
#javaSource=1.3
# The version of the byte code targeted
#javacTarget=1.1

View file

@ -0,0 +1,138 @@
<project name="Build specific targets and properties" default="noDefault" >
<property name="basews" value="gtk" />
<property name="baseos" value="linux" />
<property name="basearch" value="x86" />
<property name="basenl" value="en_US" />
<!-- ===================================================================== -->
<!-- Run a given ${target} on all elements being built -->
<!-- Add on <ant> task for each top level element being built. -->
<!-- ===================================================================== -->
<target name="allElements">
<ant antfile="${genericTargets}" target="${target}" >
<property name="type" value="feature" />
<property name="id" value="org.eclipse.cdt.make" />
</ant>
<ant antfile="${genericTargets}" target="${target}" >
<property name="type" value="feature" />
<property name="id" value="org.eclipse.cdt.managedbuilder" />
</ant>
</target>
<!-- ===================================================================== -->
<!-- Targets to assemble the built elements for particular configurations -->
<!-- These generally call the generated assemble scripts (named in -->
<!-- ${assembleScriptName}) but may also add pre and post processing -->
<!-- Add one target for each root element and each configuration -->
<!-- ===================================================================== -->
<target name="assemble.org.eclipse.cdt.make">
<ant antfile="${assembleScriptName}" dir="${buildDirectory}"/>
</target>
<target name="assemble.org.eclipse.cdt.managedbuilder">
<ant antfile="${assembleScriptName}" dir="${buildDirectory}"/>
</target>
<!-- ===================================================================== -->
<!-- Check out map files from correct repository -->
<!-- Replace values for cvsRoot, package and mapVersionTag as desired. -->
<!-- ===================================================================== -->
<target name="getMapFiles">
<copy todir="${buildDirectory}/maps">
<fileset dir="${builder}/../maps"/>
</copy>
</target>
<!-- ===================================================================== -->
<!-- Steps to do before setup -->
<!-- ===================================================================== -->
<target name="preSetup">
</target>
<!-- ===================================================================== -->
<!-- Steps to do after setup but before starting the build proper -->
<!-- ===================================================================== -->
<target name="postSetup">
</target>
<!-- ===================================================================== -->
<!-- Steps to do before fetching the build elements -->
<!-- ===================================================================== -->
<target name="preFetch">
</target>
<!-- ===================================================================== -->
<!-- Steps to do after fetching the build elements -->
<!-- ===================================================================== -->
<target name="postFetch">
</target>
<!-- ===================================================================== -->
<!-- Steps to do before generating the build scripts. -->
<!-- ===================================================================== -->
<target name="preGenerate">
</target>
<!-- ===================================================================== -->
<!-- Steps to do after generating the build scripts. -->
<!-- ===================================================================== -->
<target name="postGenerate">
</target>
<!-- ===================================================================== -->
<!-- Steps to do before running the build.xmls for the elements being built. -->
<!-- ===================================================================== -->
<target name="preProcess">
<replace dir="${buildDirectory}/plugins" value="${timestamp}" token="@build@">
<include name="**/about.mappings" />
</replace>
</target>
<!-- ===================================================================== -->
<!-- Steps to do after running the build.xmls for the elements being built. -->
<!-- ===================================================================== -->
<target name="postProcess">
</target>
<!-- ===================================================================== -->
<!-- Steps to do before running assemble. -->
<!-- ===================================================================== -->
<target name="preAssemble">
</target>
<!-- ===================================================================== -->
<!-- Steps to do after running assemble. -->
<!-- ===================================================================== -->
<target name="postAssemble">
</target>
<!-- ===================================================================== -->
<!-- Steps to do after the build is done. -->
<!-- ===================================================================== -->
<target name="postBuild">
</target>
<!-- ===================================================================== -->
<!-- Steps to do to test the build results -->
<!-- ===================================================================== -->
<target name="test">
</target>
<!-- ===================================================================== -->
<!-- Steps to do to publish the build results -->
<!-- ===================================================================== -->
<target name="publish">
</target>
<!-- ===================================================================== -->
<!-- Default target -->
<!-- ===================================================================== -->
<target name="noDefault">
<echo message="You must specify a target when invoking this file" />
</target>
</project>

View file

@ -1,19 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<project name="CDT Build Generate Scripts" default="all">
<target name="all">
<xsl:for-each select="projects/feature">
<eclipse.buildScript install="build">
<xsl:attribute name="elements">
<xsl:text>feature@</xsl:text>
<xsl:value-of select="@name"/>
</xsl:attribute>
</eclipse.buildScript>
</xsl:for-each>
</target>
</project>
</xsl:template>
</xsl:transform>

View file

@ -1,67 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="yes"/>
<xsl:template match="/">
<html>
<head>
<title>CDT 2.0 Build Page</title>
</head>
<body>
<h2>CDT 2.0 Build Page</h2>
<p>
The nightly builds are currently run twice a week
Monday and Thursday at 3:00 a.m. EDT/EST.
To get download and install the builds, add the following
as a site bookmark in Eclipse's Update Manager perspective:
</p>
<p>
http://update.eclipse.org/tools/cdt/updates/builds/2.0
</p>
<p>
There is one category for each build. Expanding the
category will reveal the installable features.
Currently the following features are available:
<ul>
<li>
the main CDT feature for the currently running platform
</li>
<li>
the CDT Source feature which supplies the source to allow
debugging of the CDT plugins.
</li>
</ul>
</p>
<h3>Builds</h3>
<p>
The reports from the automated build verification test suites
are linked below.
</p>
<ul>
<xsl:apply-templates select="site/category-def"/>
</ul>
</body>
</html>
</xsl:template>
<xsl:template match="category-def">
<li>
<xsl:value-of select="@label"/>
<ul>
<li>
<a>
<xsl:attribute name="href">
<xsl:text>logs/</xsl:text>
<xsl:value-of select="substring-after(@name,'CDT Build ')"/>
<xsl:text>/org.eclipse.cdt.core.tests.xml</xsl:text>
</xsl:attribute>
org.eclipse.cdt.core.tests
</a>
</li>
</ul>
</li>
</xsl:template>
</xsl:transform>

View file

@ -1,455 +0,0 @@
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" indent="yes"/>
<xsl:decimal-format decimal-separator="." grouping-separator="," />
<xsl:template match="testsuites">
<HTML>
<HEAD>
<style type="text/css">
body {
font:normal 68% verdana,arial,helvetica;
color:#000000;
}
table tr td, table tr th {
font-size: 68%;
}
table.details tr th{
font-weight: bold;
text-align:left;
background:#a6caf0;
}
table.details tr td{
background:#eeeee0;
}
p {
line-height:1.5em;
margin-top:0.5em; margin-bottom:1.0em;
}
h1 {
margin: 0px 0px 5px; font: 165% verdana,arial,helvetica
}
h2 {
margin-top: 1em; margin-bottom: 0.5em; font: bold 125% verdana,arial,helvetica
}
h3 {
margin-bottom: 0.5em; font: bold 115% verdana,arial,helvetica
}
h4 {
margin-bottom: 0.5em; font: bold 100% verdana,arial,helvetica
}
h5 {
margin-bottom: 0.5em; font: bold 100% verdana,arial,helvetica
}
h6 {
margin-bottom: 0.5em; font: bold 100% verdana,arial,helvetica
}
.Error {
font-weight:bold; color:red;
}
.Failure {
font-weight:bold; color:purple;
}
.Properties {
text-align:right;
}
</style>
<script language="JavaScript">
var TestCases = new Array();
var cur;
<xsl:for-each select="./testsuite">
<xsl:apply-templates select="properties"/>
</xsl:for-each>
</script>
<script language="JavaScript"><![CDATA[
function displayProperties (name) {
var win = window.open('','JUnitSystemProperties','scrollbars=1,resizable=1');
var doc = win.document.open();
doc.write("<html><head><title>Properties of " + name + "</title>");
doc.write("<style>")
doc.write("body {font:normal 68% verdana,arial,helvetica; color:#000000; }");
doc.write("table tr td, table tr th { font-size: 68%; }");
doc.write("table.properties { border-collapse:collapse; border-left:solid 1 #cccccc; border-top:solid 1 #cccccc; padding:5px; }");
doc.write("table.properties th { text-align:left; border-right:solid 1 #cccccc; border-bottom:solid 1 #cccccc; background-color:#eeeeee; }");
doc.write("table.properties td { font:normal; text-align:left; border-right:solid 1 #cccccc; border-bottom:solid 1 #cccccc; background-color:#fffffff; }");
doc.write("h3 { margin-bottom: 0.5em; font: bold 115% verdana,arial,helvetica }");
doc.write("</style>");
doc.write("</head><body>");
doc.write("<h3>Properties of " + name + "</h3>");
doc.write("<div align=\"right\"><a href=\"javascript:window.close();\">Close</a></div>");
doc.write("<table class='properties'>");
doc.write("<tr><th>Name</th><th>Value</th></tr>");
for (prop in TestCases[name]) {
doc.write("<tr><th>" + prop + "</th><td>" + TestCases[name][prop] + "</td></tr>");
}
doc.write("</table>");
doc.write("</body></html>");
doc.close();
win.focus();
}
]]>
</script>
</HEAD>
<body>
<a name="#top"></a>
<xsl:call-template name="pageHeader"/>
<!-- Summary part -->
<xsl:call-template name="summary"/>
<hr size="1" width="95%" align="left"/>
<!-- Package List part -->
<xsl:call-template name="packagelist"/>
<hr size="1" width="95%" align="left"/>
<!-- For each package create its part -->
<xsl:call-template name="packages"/>
<hr size="1" width="95%" align="left"/>
<!-- For each class create the part -->
<xsl:call-template name="classes"/>
</body>
</HTML>
</xsl:template>
<!-- ================================================================== -->
<!-- Write a list of all packages with an hyperlink to the anchor of -->
<!-- of the package name. -->
<!-- ================================================================== -->
<xsl:template name="packagelist">
<h2>Packages</h2>
Note: package statistics are not computed recursively, they only sum up all of its testsuites numbers.
<table class="details" border="0" cellpadding="5" cellspacing="2" width="95%">
<xsl:call-template name="testsuite.test.header"/>
<!-- list all packages recursively -->
<xsl:for-each select="./testsuite[not(./@package = preceding-sibling::testsuite/@package)]">
<xsl:sort select="@package"/>
<xsl:variable name="testsuites-in-package" select="/testsuites/testsuite[./@package = current()/@package]"/>
<xsl:variable name="testCount" select="sum($testsuites-in-package/@tests)"/>
<xsl:variable name="errorCount" select="sum($testsuites-in-package/@errors)"/>
<xsl:variable name="failureCount" select="sum($testsuites-in-package/@failures)"/>
<xsl:variable name="timeCount" select="sum($testsuites-in-package/@time)"/>
<!-- write a summary for the package -->
<tr valign="top">
<!-- set a nice color depending if there is an error/failure -->
<xsl:attribute name="class">
<xsl:choose>
<xsl:when test="$failureCount &gt; 0">Failure</xsl:when>
<xsl:when test="$errorCount &gt; 0">Error</xsl:when>
</xsl:choose>
</xsl:attribute>
<td><a href="#{@package}"><xsl:value-of select="@package"/></a></td>
<td><xsl:value-of select="$testCount"/></td>
<td><xsl:value-of select="$errorCount"/></td>
<td><xsl:value-of select="$failureCount"/></td>
<td>
<xsl:call-template name="display-time">
<xsl:with-param name="value" select="$timeCount"/>
</xsl:call-template>
</td>
</tr>
</xsl:for-each>
</table>
</xsl:template>
<!-- ================================================================== -->
<!-- Write a package level report -->
<!-- It creates a table with values from the document: -->
<!-- Name | Tests | Errors | Failures | Time -->
<!-- ================================================================== -->
<xsl:template name="packages">
<!-- create an anchor to this package name -->
<xsl:for-each select="/testsuites/testsuite[not(./@package = preceding-sibling::testsuite/@package)]">
<xsl:sort select="@package"/>
<a name="#{@package}"></a>
<h3>Package <xsl:value-of select="@package"/></h3>
<table class="details" border="0" cellpadding="5" cellspacing="2" width="95%">
<xsl:call-template name="testsuite.test.header"/>
<!-- match the testsuites of this package -->
<xsl:apply-templates select="/testsuites/testsuite[./@package = current()/@package]" mode="print.test"/>
</table>
<a href="#top">Back to top</a>
<p/>
<p/>
</xsl:for-each>
</xsl:template>
<xsl:template name="classes">
<xsl:for-each select="testsuite">
<xsl:sort select="@name"/>
<!-- create an anchor to this class name -->
<a name="#{@name}"></a>
<h3>TestCase <xsl:value-of select="@name"/></h3>
<table class="details" border="0" cellpadding="5" cellspacing="2" width="95%">
<xsl:call-template name="testcase.test.header"/>
<!--
test can even not be started at all (failure to load the class)
so report the error directly
-->
<xsl:if test="./error">
<tr class="Error">
<td colspan="4"><xsl:apply-templates select="./error"/></td>
</tr>
</xsl:if>
<xsl:apply-templates select="./testcase" mode="print.test"/>
</table>
<div class="Properties">
<a>
<xsl:attribute name="href">javascript:displayProperties('<xsl:value-of select="@package"/>.<xsl:value-of select="@name"/>');</xsl:attribute>
Properties &gt;&gt;
</a>
</div>
<p/>
<a href="#top">Back to top</a>
</xsl:for-each>
</xsl:template>
<xsl:template name="summary">
<h2>Summary</h2>
<xsl:variable name="testCount" select="sum(testsuite/@tests)"/>
<xsl:variable name="errorCount" select="sum(testsuite/@errors)"/>
<xsl:variable name="failureCount" select="sum(testsuite/@failures)"/>
<xsl:variable name="timeCount" select="sum(testsuite/@time)"/>
<xsl:variable name="successRate" select="($testCount - $failureCount - $errorCount) div $testCount"/>
<table class="details" border="0" cellpadding="5" cellspacing="2" width="95%">
<tr valign="top">
<th>Tests</th>
<th>Failures</th>
<th>Errors</th>
<th>Success rate</th>
<th>Time</th>
</tr>
<tr valign="top">
<xsl:attribute name="class">
<xsl:choose>
<xsl:when test="$failureCount &gt; 0">Failure</xsl:when>
<xsl:when test="$errorCount &gt; 0">Error</xsl:when>
</xsl:choose>
</xsl:attribute>
<td><xsl:value-of select="$testCount"/></td>
<td><xsl:value-of select="$failureCount"/></td>
<td><xsl:value-of select="$errorCount"/></td>
<td>
<xsl:call-template name="display-percent">
<xsl:with-param name="value" select="$successRate"/>
</xsl:call-template>
</td>
<td>
<xsl:call-template name="display-time">
<xsl:with-param name="value" select="$timeCount"/>
</xsl:call-template>
</td>
</tr>
</table>
<table border="0" width="95%">
<tr>
<td style="text-align: justify;">
Note: <i>failures</i> are anticipated and checked for with assertions while <i>errors</i> are unanticipated.
</td>
</tr>
</table>
</xsl:template>
<!--
Write properties into a JavaScript data structure.
This is based on the original idea by Erik Hatcher (erik@hatcher.net)
-->
<xsl:template match="properties">
cur = TestCases['<xsl:value-of select="../@package"/>.<xsl:value-of select="../@name"/>'] = new Array();
<xsl:for-each select="property">
<xsl:sort select="@name"/>
cur['<xsl:value-of select="@name"/>'] = '<xsl:call-template name="JS-escape"><xsl:with-param name="string" select="@value"/></xsl:call-template>';
</xsl:for-each>
</xsl:template>
<!-- Page HEADER -->
<xsl:template name="pageHeader">
<h1>Unit Test Results</h1>
<table width="100%">
<tr>
<td align="left"></td>
<td align="right">Designed for use with <a href='http://www.junit.org'>JUnit</a> and <a href='http://jakarta.apache.org/ant'>Ant</a>.</td>
</tr>
</table>
<hr size="1"/>
</xsl:template>
<xsl:template match="testsuite" mode="header">
<tr valign="top">
<th width="80%">Name</th>
<th>Tests</th>
<th>Errors</th>
<th>Failures</th>
<th nowrap="nowrap">Time(s)</th>
</tr>
</xsl:template>
<!-- class header -->
<xsl:template name="testsuite.test.header">
<tr valign="top">
<th width="80%">Name</th>
<th>Tests</th>
<th>Errors</th>
<th>Failures</th>
<th nowrap="nowrap">Time(s)</th>
</tr>
</xsl:template>
<!-- method header -->
<xsl:template name="testcase.test.header">
<tr valign="top">
<th>Name</th>
<th>Status</th>
<th width="80%">Type</th>
<th nowrap="nowrap">Time(s)</th>
</tr>
</xsl:template>
<!-- class information -->
<xsl:template match="testsuite" mode="print.test">
<tr valign="top">
<!-- set a nice color depending if there is an error/failure -->
<xsl:attribute name="class">
<xsl:choose>
<xsl:when test="@failures[.&gt; 0]">Failure</xsl:when>
<xsl:when test="@errors[.&gt; 0]">Error</xsl:when>
</xsl:choose>
</xsl:attribute>
<!-- print testsuite information -->
<td><a href="#{@name}"><xsl:value-of select="@name"/></a></td>
<td><xsl:value-of select="@tests"/></td>
<td><xsl:value-of select="@errors"/></td>
<td><xsl:value-of select="@failures"/></td>
<td>
<xsl:call-template name="display-time">
<xsl:with-param name="value" select="@time"/>
</xsl:call-template>
</td>
</tr>
</xsl:template>
<xsl:template match="testcase" mode="print.test">
<tr valign="top">
<xsl:attribute name="class">
<xsl:choose>
<xsl:when test="failure | error">Error</xsl:when>
</xsl:choose>
</xsl:attribute>
<td><xsl:value-of select="@name"/></td>
<xsl:choose>
<xsl:when test="failure">
<td>Failure</td>
<td><xsl:apply-templates select="failure"/></td>
</xsl:when>
<xsl:when test="error">
<td>Error</td>
<td><xsl:apply-templates select="error"/></td>
</xsl:when>
<xsl:otherwise>
<td>Success</td>
<td></td>
</xsl:otherwise>
</xsl:choose>
<td>
<xsl:call-template name="display-time">
<xsl:with-param name="value" select="@time"/>
</xsl:call-template>
</td>
</tr>
</xsl:template>
<xsl:template match="failure">
<xsl:call-template name="display-failures"/>
</xsl:template>
<xsl:template match="error">
<xsl:call-template name="display-failures"/>
</xsl:template>
<!-- Style for the error and failure in the tescase template -->
<xsl:template name="display-failures">
<xsl:choose>
<xsl:when test="not(@message)">N/A</xsl:when>
<xsl:otherwise>
<xsl:value-of select="@message"/>
</xsl:otherwise>
</xsl:choose>
<!-- display the stacktrace -->
<code>
<p/>
<xsl:call-template name="br-replace">
<xsl:with-param name="word" select="."/>
</xsl:call-template>
</code>
<!-- the later is better but might be problematic for non-21" monitors... -->
<!--pre><xsl:value-of select="."/></pre-->
</xsl:template>
<xsl:template name="JS-escape">
<xsl:param name="string"/>
<xsl:choose><!-- something isn't right here, basically all single quotes need to be replaced with backslash-single-quote
<xsl:when test="contains($string,'&apos;')">
<xsl:value-of select="substring-before($string,'&apos;')"/>
\&apos;
<xsl:call-template name="JS-escape">
<xsl:with-param name="string" select="substring-after($string,'&apos;')"/>
</xsl:call-template>
</xsl:when> -->
<xsl:when test="contains($string,'\')">
<xsl:value-of select="substring-before($string,'\')"/>\\<xsl:call-template name="JS-escape">
<xsl:with-param name="string" select="substring-after($string,'\')"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$string"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!--
template that will convert a carriage return into a br tag
@param word the text from which to convert CR to BR tag
-->
<xsl:template name="br-replace">
<xsl:param name="word"/>
<xsl:choose>
<xsl:when test="contains($word,'&#xA;')">
<xsl:value-of select="substring-before($word,'&#xA;')"/>
<br/>
<xsl:call-template name="br-replace">
<xsl:with-param name="word" select="substring-after($word,'&#xA;')"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$word"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="display-time">
<xsl:param name="value"/>
<xsl:value-of select="format-number($value,'0.000')"/>
</xsl:template>
<xsl:template name="display-percent">
<xsl:param name="value"/>
<xsl:value-of select="format-number($value,'0.00%')"/>
</xsl:template>
</xsl:stylesheet>

View file

@ -1,289 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes"/>
<xsl:template match="/">
<project name="CDT Build Main" default="all">
<target name="build">
<!-- Set up build environment -->
<ftp server="${{build.server}}"
userid="${{build.userid}}" password="${{build.password}}"
remotedir="${{build.remotedir}}" action="get" passive="no">
<fileset dir=".">
<include name="site.xml"/>
<include name="build.number"/>
</fileset>
</ftp>
<propertyfile file="build.number">
<entry key="build.number" type="int" default="0" operation="+" pattern="0000"/>
</propertyfile>
<property file="build.number"/>
<echo message="Build number: ${{build.version}}.${{build.number}}"/>
<delete dir="build"/>
<unzip src="zips/eclipse-SDK.zip" dest="."/>
<move todir="build">
<fileset dir="eclipse"/>
</move>
<!-- Download source from CVS -->
<xsl:for-each select="projects/plugin">
<cvs cvsroot=":pserver:anonymous@dev.eclipse.org:/home/tools" dest="build/plugins" quiet="true" tag="${{build.tag}}">
<xsl:attribute name="package">
<xsl:value-of select="@name"/>
</xsl:attribute>
</cvs>
</xsl:for-each>
<xsl:for-each select="projects/feature">
<cvs cvsroot=":pserver:anonymous@dev.eclipse.org:/home/tools" dest="build/features" quiet="true" tag="${{build.tag}}">
<xsl:attribute name="package">
<xsl:value-of select="@name"/>
<xsl:text>-feature</xsl:text>
</xsl:attribute>
</cvs>
<move>
<xsl:attribute name="todir">
<xsl:text>build/features/</xsl:text>
<xsl:value-of select="@name"/>
</xsl:attribute>
<fileset defaultexcludes="no">
<xsl:attribute name="dir">
<xsl:text>build/features/</xsl:text>
<xsl:value-of select="@name"/>
<xsl:text>-feature</xsl:text>
</xsl:attribute>
</fileset>
</move>
</xsl:for-each>
<!-- Fix up the versions to match build number -->
<xsl:for-each select="projects/plugin|projects/feature">
<xslt out="x" style="plugin.xsl">
<xsl:attribute name="in">
<xsl:text>build/</xsl:text>
<xsl:value-of select="name()"/>
<xsl:text>s/</xsl:text>
<xsl:value-of select="@name"/>
<xsl:text>/</xsl:text>
<xsl:value-of select="@type"/>
<xsl:text>.xml</xsl:text>
</xsl:attribute>
<param name="version" expression="${{build.version}}.${{build.number}}"/>
</xslt>
<move file="x">
<xsl:attribute name="tofile">
<xsl:text>build/</xsl:text>
<xsl:value-of select="name()"/>
<xsl:text>s/</xsl:text>
<xsl:value-of select="@name"/>
<xsl:text>/</xsl:text>
<xsl:value-of select="@type"/>
<xsl:text>.xml</xsl:text>
</xsl:attribute>
</move>
</xsl:for-each>
<!-- Prepare the source plugin -->
<property name="source.plugin" value="org.eclipse.cdt.source"/>
<replace
file="build/plugins/${{source.plugin}}/build.properties"
token="plugin.properties"
value="plugin.properties,src/"/>
<!-- Generate build.xml files for projects using the host eclipse -->
<xslt in="manifest.xml" out="build/genscripts.xml" style="genscripts.xsl"/>
<exec executable="${{basedir}}/host/eclipse">
<arg line="-nosplash -data build/workspace"/>
<arg line="-application org.eclipse.ant.core.antRunner"/>
<arg line="-buildfile build/genscripts.xml"/>
</exec>
<!-- Run the build.xml scripts -->
<xsl:for-each select="projects/plugin">
<!-- Build the source jars -->
<ant target="build.sources">
<xsl:attribute name="dir">
<xsl:text>build/plugins/</xsl:text>
<xsl:value-of select="@name"/>
</xsl:attribute>
<property name="javacFailOnError" value="true"/>
<property name="ws" value="gtk"/>
<property name="os" value="linux"/>
</ant>
<ant target="gather.sources">
<xsl:attribute name="dir">
<xsl:text>build/plugins/</xsl:text>
<xsl:value-of select="@name"/>
</xsl:attribute>
<property name="javacFailOnError" value="true"/>
<property name="ws" value="gtk"/>
<property name="os" value="linux"/>
<property name="destination.temp.folder" value="../${{source.plugin}}/src"/>
</ant>
</xsl:for-each>
<xsl:for-each select="projects/feature">
<!-- The default to build the update jars -->
<ant>
<xsl:attribute name="dir">
<xsl:text>build/features/</xsl:text>
<xsl:value-of select="@name"/>
</xsl:attribute>
<property name="javacFailOnError" value="true"/>
<property name="ws" value="gtk"/>
<property name="os" value="linux"/>
</ant>
<!-- The old style zips -->
<ant target="zip.distribution">
<xsl:attribute name="dir">
<xsl:text>build/features/</xsl:text>
<xsl:value-of select="@name"/>
</xsl:attribute>
<property name="javacFailOnError" value="true"/>
<property name="ws" value="gtk"/>
<property name="os" value="linux"/>
</ant>
</xsl:for-each>
<!-- Move jars and zips to the update site format -->
<delete dir="plugins"/>
<copy todir="plugins" flatten="true">
<fileset dir="build/plugins">
<xsl:for-each select="projects/plugin">
<include>
<xsl:attribute name="name">
<xsl:value-of select="@name"/>
<xsl:text>/</xsl:text>
<xsl:value-of select="@name"/>
<xsl:text>_${build.version}.${build.number}.jar</xsl:text>
</xsl:attribute>
</include>
</xsl:for-each>
</fileset>
</copy>
<delete dir="features"/>
<copy todir="features" flatten="true">
<fileset dir="build/features">
<xsl:for-each select="projects/feature">
<include>
<xsl:attribute name="name">
<xsl:value-of select="@name"/>
<xsl:text>/</xsl:text>
<xsl:value-of select="@name"/>
<xsl:text>_${build.version}.${build.number}.jar</xsl:text>
</xsl:attribute>
</include>
</xsl:for-each>
</fileset>
</copy>
<delete dir="dist"/>
<copy todir="dist" flatten="true">
<fileset dir="build/features">
<xsl:for-each select="projects/feature">
<include>
<xsl:attribute name="name">
<xsl:value-of select="@name"/>
<xsl:text>/</xsl:text>
<xsl:value-of select="@name"/>
<xsl:text>_${build.version}.${build.number}.bin.dist.zip</xsl:text>
</xsl:attribute>
</include>
</xsl:for-each>
</fileset>
</copy>
</target>
<target name="test">
<property file="build.number"/>
<!-- Set up the test environment -->
<delete dir="test"/>
<unzip src="zips/eclipse-SDK.zip" dest="."/>
<move todir="test">
<fileset dir="eclipse"/>
</move>
<xsl:for-each select="projects/plugin|projects/feature">
<unjar>
<xsl:attribute name="src">
<xsl:value-of select="name()"/>
<xsl:text>s/</xsl:text>
<xsl:value-of select="@name"/>
<xsl:text>_${build.version}.${build.number}.jar</xsl:text>
</xsl:attribute>
<xsl:attribute name="dest">
<xsl:text>test/</xsl:text>
<xsl:value-of select="name()"/>
<xsl:text>s/</xsl:text>
<xsl:value-of select="@name"/>
<xsl:text>_${build.version}.${build.number}</xsl:text>
</xsl:attribute>
</unjar>
</xsl:for-each>
<!-- Run the tests -->
<chmod file="test/eclipse" perm="+x"/>
<mkdir dir="logs/${{build.version}}.${{build.number}}"/>
<exec executable="${{basedir}}/test/eclipse" dir="test">
<arg line="-nosplash"/>
<arg line="-application org.eclipse.cdt.core.tests.runTests"/>
<arg line="-testout ../logs/${{build.version}}.${{build.number}}/org.eclipse.cdt.core.tests.xml"/>
<arg line="-testreport ../../testReport.xsl"/>
</exec>
<!-- Add our version to site.xml -->
<tstamp>
<format property="build.date" pattern="EEE MMM d HH:mm:ss z yyyy"/>
</tstamp>
<xslt in="site.xml" out="s" style="site.xsl">
<param name="version" expression="${{build.version}}.${{build.number}}"/>
<param name="date" expression="${{build.date}}"/>
</xslt>
<move file="s" tofile="site.xml"/>
<!-- Generate the site home page -->
<xslt in="site.xml" out="index.html" style="index.xsl">
<param name="branch" expression="${{build.branch}}"/>
</xslt>
</target>
<target name="upload">
<property file="build.number"/>
<!-- Upload the update site -->
<ftp server="${{build.server}}"
userid="${{build.userid}}" password="${{build.password}}"
remotedir="${{build.remotedir}}" action="put" passive="no">
<fileset dir=".">
<include name="plugins/*.jar"/>
<include name="features/*.jar"/>
<include name="dist/*.zip"/>
<include name="logs/**/*.xml"/>
<include name="build.number"/>
<include name="index.html"/>
<include name="site.xml"/>
<include name="testReport.xsl"/>
</fileset>
</ftp>
</target>
<target name="mail">
<property file="build.number"/>
<mail from="dschaefe@ca.ibm.com"
tolist="cdt-test-dev@eclipse.org"
subject="CDT Build ${{build.version}}.${{build.number}} completed">
<message src="message.txt"/>
</mail>
</target>
<target name="all" depends="build,test,upload,mail"/>
<!-- test removed since it doesn't work right now -->
</project>
</xsl:template>
</xsl:transform>

View file

@ -1,43 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<projects>
<plugin name="org.eclipse.cdt" type="plugin"/>
<plugin name="org.eclipse.cdt.aix" type="plugin"/>
<plugin name="org.eclipse.cdt.core" type="plugin"/>
<plugin name="org.eclipse.cdt.core.aix" type="fragment"/>
<plugin name="org.eclipse.cdt.core.linux" type="fragment"/>
<plugin name="org.eclipse.cdt.core.qnx" type="fragment"/>
<plugin name="org.eclipse.cdt.core.solaris" type="fragment"/>
<plugin name="org.eclipse.cdt.core.win32" type="fragment"/>
<plugin name="org.eclipse.cdt.core.tests" type="plugin"/>
<plugin name="org.eclipse.cdt.debug.core" type="plugin"/>
<plugin name="org.eclipse.cdt.debug.mi.core" type="plugin"/>
<plugin name="org.eclipse.cdt.debug.mi.ui" type="plugin"/>
<plugin name="org.eclipse.cdt.debug.ui" type="plugin"/>
<plugin name="org.eclipse.cdt.debug.ui.tests" type="plugin"/>
<plugin name="org.eclipse.cdt.doc.user" type="plugin"/>
<plugin name="org.eclipse.cdt.launch" type="plugin"/>
<plugin name="org.eclipse.cdt.linux.gtk" type="plugin"/>
<plugin name="org.eclipse.cdt.linux.motif" type="plugin"/>
<plugin name="org.eclipse.cdt.make.core" type="plugin"/>
<plugin name="org.eclipse.cdt.make.ui" type="plugin"/>
<plugin name="org.eclipse.cdt.managedbuilder.core" type="plugin"/>
<plugin name="org.eclipse.cdt.managedbuilder.ui" type="plugin"/>
<plugin name="org.eclipse.cdt.qnx.photon" type="plugin"/>
<plugin name="org.eclipse.cdt.solaris.motif" type="plugin"/>
<plugin name="org.eclipse.cdt.source" type="plugin"/>
<plugin name="org.eclipse.cdt.testing" type="plugin"/>
<plugin name="org.eclipse.cdt.ui" type="plugin"/>
<plugin name="org.eclipse.cdt.ui.tests" type="plugin"/>
<plugin name="org.eclipse.cdt.win32" type="plugin"/>
<feature name="org.eclipse.cdt" suffix="-feature" type="feature" visible="false"/>
<feature name="org.eclipse.cdt.aix" suffix="-feature" type="feature"/>
<feature name="org.eclipse.cdt.linux.gtk" suffix="-feature" type="feature"/>
<feature name="org.eclipse.cdt.linux.motif" suffix="-feature" type="feature"/>
<feature name="org.eclipse.cdt.make" suffix="-feature" type="feature"/>
<feature name="org.eclipse.cdt.managedbuilder" suffix="-feature" type="feature"/>
<feature name="org.eclipse.cdt.qnx.photon" suffix="-feature" type="feature"/>
<feature name="org.eclipse.cdt.solaris.motif" suffix="-feature" type="feature"/>
<feature name="org.eclipse.cdt.source" suffix="-feature" type="feature"/>
<feature name="org.eclipse.cdt.testing" suffix="-feature" type="feature"/>
<feature name="org.eclipse.cdt.win32" suffix="-feature" type="feature"/>
</projects>

View file

@ -0,0 +1,38 @@
! Cross platform
plugin@org.eclipse.cdt.core=HEAD,:pserver:anonymous@dev.eclipse.org:/home/tools,
plugin@org.eclipse.cdt.ui=HEAD,:pserver:anonymous@dev.eclipse.org:/home/tools,
plugin@org.eclipse.cdt.debug.core=HEAD,:pserver:anonymous@dev.eclipse.org:/home/tools,
plugin@org.eclipse.cdt.debug.ui=HEAD,:pserver:anonymous@dev.eclipse.org:/home/tools,
plugin@org.eclipse.cdt.debug.mi.core=HEAD,:pserver:anonymous@dev.eclipse.org:/home/tools,
plugin@org.eclipse.cdt.debug.mi.ui=HEAD,:pserver:anonymous@dev.eclipse.org:/home/tools,
plugin@org.eclipse.cdt.launch=HEAD,:pserver:anonymous@dev.eclipse.org:/home/tools,
plugin@org.eclipse.cdt.doc.user=HEAD,:pserver:anonymous@dev.eclipse.org:/home/tools,
plugin@org.eclipse.cdt=HEAD,:pserver:anonymous@dev.eclipse.org:/home/tools,
feature@org.eclipse.cdt=HEAD,:pserver:anonymous@dev.eclipse.org:/home/tools,,org.eclipse.cdt-feature
! Platform specific
fragment@org.eclipse.cdt.core.aix=HEAD,:pserver:anonymous@dev.eclipse.org:/home/tools,
fragment@org.eclipse.cdt.core.linux=HEAD,:pserver:anonymous@dev.eclipse.org:/home/tools,
fragment@org.eclipse.cdt.core.qnx=HEAD,:pserver:anonymous@dev.eclipse.org:/home/tools,
fragment@org.eclipse.cdt.core.solaris=HEAD,:pserver:anonymous@dev.eclipse.org:/home/tools,
fragment@org.eclipse.cdt.core.win32=HEAD,:pserver:anonymous@dev.eclipse.org:/home/tools,
! Builders
plugin@org.eclipse.cdt.make.core=HEAD,:pserver:anonymous@dev.eclipse.org:/home/tools,
plugin@org.eclipse.cdt.make.ui=HEAD,:pserver:anonymous@dev.eclipse.org:/home/tools,
feature@org.eclipse.cdt.make=HEAD,:pserver:anonymous@dev.eclipse.org:/home/tools,,org.eclipse.cdt.make-feature
plugin@org.eclipse.cdt.managedbuilder.core=HEAD,:pserver:anonymous@dev.eclipse.org:/home/tools,
plugin@org.eclipse.cdt.managedbuilder.ui=HEAD,:pserver:anonymous@dev.eclipse.org:/home/tools,
feature@org.eclipse.cdt.managedbuilder=HEAD,:pserver:anonymous@dev.eclipse.org:/home/tools,,org.eclipse.cdt.managedbuilder-feature
! Source Feature

View file

@ -1,6 +0,0 @@
The build is available at
http://update.eclipse.org/tools/cdt/updates/builds/2.0
Cheers,
dschaefer2, the buildmaster...

View file

@ -0,0 +1,87 @@
#####################
# Parameters describing how and where to execute the build.
# Typical users need only update the following properties:
# baseLocation - where things you are building against are installed
# bootclasspath - The base jars to compile against (typicaly rt.jar)
# configs - the list of {os, ws, arch} configurations to build.
#
# Of course any of the settings here can be overridden by spec'ing
# them on the command line (e.g., -DbaseLocation=d:/eclipse
############# CVS CONTROL ################
# The CVS tag to use when fetching the map files from the repository
mapVersionTag=HEAD
# The CVS tag to use when fetching elements to build. By default the
# builder will use whatever is in the maps. Use this value to override
# for example, when doing a nightly build out of HEAD
# fetchTag=HEAD
############## BUILD / GENERATION CONTROL ################
# The directory into which the build elements will be fetched and where
# the build will take place. buildDirectory and install should be the same
# value.
buildDirectory=build
# Type of build. Used in naming the build output. Typically this value is
# one of I, N, M, S, ...
buildType=I
# ID of the build. Used in naming the build output.
buildId=TestBuild
# Label for the build. Used in naming the build output
buildLabel=${buildType}.${buildId}
# Timestamp for the build. Used in naming the build output
timestamp=007
# Base location for anything the build needs to compile against. For example,
# when building GEF, the baseLocation should be the location of a previously
# installed Eclipse against which the GEF code will be compiled.
baseLocation=
#Os/Ws/Arch/nl of the eclipse specified by baseLocation
#baseos
#basews
#basearch
#basenl
# The location underwhich all of the build output will be collected. This will be
# the root path in the resultant zip file.
collPlace=eclipse
# The directory in which to execute zip of the ${collPlace} directory
collBase=.
# The list of {os, ws, arch} configurations to build. This
# value is a '&' separated list of ',' separate triples. For example,
# configs=win32,win32,x86 & linux,motif,x86
# By default the value is *,*,*
configs=\
aix,motif,ppc \
& linux,gtk,x86 \
& linux,motif,x86 \
& qnx,photon,x86 \
& solaris,motif,sparc \
& win32,win32,x86
#Arguments to send to the zip executable
zipargs=
############# JAVA COMPILER OPTIONS ##############
# The location of the Java jars to compile against. Typically the rt.jar for your JDK/JRE
#bootclasspath=d:/ibm1.3.1/jre/lib/rt.jar
# Whether or not to include debug info in the output jars
javacDebugInfo=false
# Whether or not to fail the build if there are compiler errors
javacfailonerror=true
# The version of the source code
#javaSource=1.3
# The version of the byte code targeted
#javacTarget=1.1

View file

@ -0,0 +1,150 @@
<project name="Build specific targets and properties" default="noDefault" >
<property name="basews" value="gtk" />
<property name="baseos" value="linux" />
<property name="basearch" value="x86" />
<property name="basenl" value="en_US" />
<!-- ===================================================================== -->
<!-- Run a given ${target} on all elements being built -->
<!-- Add on <ant> task for each top level element being built. -->
<!-- ===================================================================== -->
<target name="allElements">
<ant antfile="${genericTargets}" target="${target}" >
<property name="type" value="feature" />
<property name="id" value="org.eclipse.cdt" />
</ant>
</target>
<!-- ===================================================================== -->
<!-- Targets to assemble the built elements for particular configurations -->
<!-- These generally call the generated assemble scripts (named in -->
<!-- ${assembleScriptName}) but may also add pre and post processing -->
<!-- Add one target for each root element and each configuration -->
<!-- ===================================================================== -->
<target name="assemble.org.eclipse.cdt.aix.motif.ppc">
<ant antfile="${assembleScriptName}" dir="${buildDirectory}"/>
</target>
<target name="assemble.org.eclipse.cdt.linux.gtk.x86">
<ant antfile="${assembleScriptName}" dir="${buildDirectory}"/>
</target>
<target name="assemble.org.eclipse.cdt.linux.motif.x86">
<ant antfile="${assembleScriptName}" dir="${buildDirectory}"/>
</target>
<target name="assemble.org.eclipse.cdt.qnx.photon.x86">
<ant antfile="${assembleScriptName}" dir="${buildDirectory}"/>
</target>
<target name="assemble.org.eclipse.cdt.solaris.motif.sparc">
<ant antfile="${assembleScriptName}" dir="${buildDirectory}"/>
</target>
<target name="assemble.org.eclipse.cdt.win32.win32.x86">
<ant antfile="${assembleScriptName}" dir="${buildDirectory}"/>
</target>
<!-- ===================================================================== -->
<!-- Check out map files from correct repository -->
<!-- Replace values for cvsRoot, package and mapVersionTag as desired. -->
<!-- ===================================================================== -->
<target name="getMapFiles">
<copy todir="${buildDirectory}/maps">
<fileset dir="${builder}/../maps"/>
</copy>
</target>
<!-- ===================================================================== -->
<!-- Steps to do before setup -->
<!-- ===================================================================== -->
<target name="preSetup">
</target>
<!-- ===================================================================== -->
<!-- Steps to do after setup but before starting the build proper -->
<!-- ===================================================================== -->
<target name="postSetup">
</target>
<!-- ===================================================================== -->
<!-- Steps to do before fetching the build elements -->
<!-- ===================================================================== -->
<target name="preFetch">
</target>
<!-- ===================================================================== -->
<!-- Steps to do after fetching the build elements -->
<!-- ===================================================================== -->
<target name="postFetch">
</target>
<!-- ===================================================================== -->
<!-- Steps to do before generating the build scripts. -->
<!-- ===================================================================== -->
<target name="preGenerate">
</target>
<!-- ===================================================================== -->
<!-- Steps to do after generating the build scripts. -->
<!-- ===================================================================== -->
<target name="postGenerate">
</target>
<!-- ===================================================================== -->
<!-- Steps to do before running the build.xmls for the elements being built. -->
<!-- ===================================================================== -->
<target name="preProcess">
<replace dir="${buildDirectory}/plugins" value="${timestamp}" token="@build@">
<include name="**/about.mappings" />
</replace>
</target>
<!-- ===================================================================== -->
<!-- Steps to do after running the build.xmls for the elements being built. -->
<!-- ===================================================================== -->
<target name="postProcess">
</target>
<!-- ===================================================================== -->
<!-- Steps to do before running assemble. -->
<!-- ===================================================================== -->
<target name="preAssemble">
</target>
<!-- ===================================================================== -->
<!-- Steps to do after running assemble. -->
<!-- ===================================================================== -->
<target name="postAssemble">
</target>
<!-- ===================================================================== -->
<!-- Steps to do after the build is done. -->
<!-- ===================================================================== -->
<target name="postBuild">
</target>
<!-- ===================================================================== -->
<!-- Steps to do to test the build results -->
<!-- ===================================================================== -->
<target name="test">
</target>
<!-- ===================================================================== -->
<!-- Steps to do to publish the build results -->
<!-- ===================================================================== -->
<target name="publish">
</target>
<!-- ===================================================================== -->
<!-- Default target -->
<!-- ===================================================================== -->
<target name="noDefault">
<echo message="You must specify a target when invoking this file" />
</target>
</project>

View file

@ -56,7 +56,7 @@
<xsl:template mode="feature" match="url/update">
<xsl:copy>
<xsl:attribute name="url">
<xsl:text>http://update.eclipse.org/tools/cdt/updates/builds/1.2</xsl:text>
<xsl:text>http://update.eclipse.org/tools/cdt/updates/builds/2.0</xsl:text>
</xsl:attribute>
<xsl:copy-of select="*|@*[not(name()='url')]"/>
</xsl:copy>

View file

@ -1,56 +1,69 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes"/>
<xsl:param name="version"/>
<xsl:param name="date"/>
<xsl:template match="/site">
<site>
<xsl:copy-of select="*|@*"/>
<category-def>
<xsl:attribute name="name">
<xsl:text>CDT Build </xsl:text>
<xsl:value-of select="$version"/>
</xsl:attribute>
<xsl:attribute name="label">
<xsl:text>CDT Build </xsl:text>
<xsl:value-of select="$version"/>
<xsl:text> - </xsl:text>
<xsl:value-of select="$date"/>
</xsl:attribute>
</category-def>
<xsl:apply-templates mode="features" select="document('manifest.xml')"/>
</site>
</xsl:template>
<xsl:template mode="features" match="/projects/feature[not(@visible='false')]">
<feature>
<xsl:attribute name="url">
<xsl:text>features/</xsl:text>
<xsl:value-of select="@name"/>
<xsl:text>_</xsl:text>
<xsl:value-of select="$version"/>
<xsl:text>.jar</xsl:text>
</xsl:attribute>
<xsl:attribute name="id">
<xsl:value-of select="@name"/>
</xsl:attribute>
<xsl:attribute name="version">
<xsl:value-of select="$version"/>
</xsl:attribute>
<category>
<xsl:attribute name="name">
<xsl:text>CDT Build </xsl:text>
<xsl:value-of select="$version"/>
</xsl:attribute>
</category>
</feature>
</xsl:template>
<xsl:template mode="features" match="/projects">
<xsl:apply-templates mode="features" select="*"/>
</xsl:template>
<xsl:template match="/site">
<site>
<xsl:copy-of select="*"/>
<category-def>
<xsl:attribute name="name">
<xsl:text>cdt_</xsl:text>
<xsl:value-of select="$version"/>
</xsl:attribute>
<xsl:attribute name="label">
<xsl:text>CDT Build </xsl:text>
<xsl:value-of select="$version"/>
</xsl:attribute>
</category-def>
<feature id="org.eclipse.cdt">
<xsl:attribute name="url">
<xsl:text>features/org.eclipse.cdt_</xsl:text>
<xsl:value-of select="$version"/>
<xsl:text>.jar</xsl:text>
</xsl:attribute>
<xsl:attribute name="version">
<xsl:value-of select="$version"/>
</xsl:attribute>
<category>
<xsl:attribute name="name">
<xsl:text>cdt_</xsl:text>
<xsl:value-of select="$version"/>
</xsl:attribute>
</category>
</feature>
<feature id="org.eclipse.cdt.make">
<xsl:attribute name="url">
<xsl:text>features/org.eclipse.cdt.make_</xsl:text>
<xsl:value-of select="$version"/>
<xsl:text>.jar</xsl:text>
</xsl:attribute>
<xsl:attribute name="version">
<xsl:value-of select="$version"/>
</xsl:attribute>
<category>
<xsl:attribute name="name">
<xsl:text>cdt_</xsl:text>
<xsl:value-of select="$version"/>
</xsl:attribute>
</category>
</feature>
<feature id="org.eclipse.cdt.managedbuilder">
<xsl:attribute name="url">
<xsl:text>features/org.eclipse.cdt.managedbuilder_</xsl:text>
<xsl:value-of select="$version"/>
<xsl:text>.jar</xsl:text>
</xsl:attribute>
<xsl:attribute name="version">
<xsl:value-of select="$version"/>
</xsl:attribute>
<category>
<xsl:attribute name="name">
<xsl:text>cdt_</xsl:text>
<xsl:value-of select="$version"/>
</xsl:attribute>
</category>
</feature>
</site>
</xsl:template>
</xsl:transform>

View file

@ -1,62 +0,0 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/testRun">
<html>
<head><title>Test Results for <xsl:value-of select="@name"/></title></head>
<body>
<h2>Summary Table for <xsl:value-of select="@name"/></h2>
<xsl:variable name="pass" select="count(//test[@result='pass'])"/>
<xsl:variable name="failed" select="count(//test[@result='failed'])"/>
<xsl:variable name="error" select="count(//test[@result='error'])"/>
<xsl:variable name="total" select="count(//test)"/>
<xsl:variable name="time" select="sum(//test/@time)"/>
<xsl:variable name="mins" select="floor($time div 60)"/>
<xsl:variable name="secs" select="floor($time - $mins * 60)"/>
<xsl:variable name="fsecs" select="$time - $mins * 60 - $secs"/>
<table border="2" cellspacing="0" cellpadding="2">
<tr>
<th>Total</th>
<th>Pass</th>
<th>Fail</th>
<th>Error</th>
<th>Pass Rate</th>
<th>Time</th>
</tr>
<tr>
<td><xsl:value-of select="$total"/></td>
<td><xsl:value-of select="$pass"/></td>
<td><xsl:value-of select="$failed"/></td>
<td><xsl:value-of select="$error"/></td>
<td><xsl:value-of select="format-number($pass div $total, '#.0%')"/></td>
<td><xsl:value-of select="$mins"/>:<xsl:value-of select="format-number($secs, '00')"/><xsl:value-of select="format-number($fsecs, '.0')"/></td>
</tr>
</table>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
<xsl:template match="testSuite">
<h2>Test Suite: <xsl:value-of select="@name"/></h2>
<table border="2" cellspacing="0" cellpadding="2" width="100%">
<tr><th>Result</th><th>Time (s)</th><th>Test</th></tr>
<xsl:apply-templates/>
</table>
</xsl:template>
<xsl:template match="test">
<tr>
<td><xsl:value-of select="@result"/></td>
<td><xsl:value-of select="format-number(@time, '0.000')"/></td>
<td>
<xsl:value-of select="../@name"/><br></br>::<xsl:value-of select="@name"/>
<xsl:if test="@result != 'pass'">
<br></br><font color="red">**<xsl:value-of select="text()"/></font>
</xsl:if>
</td>
</tr>
</xsl:template>
</xsl:transform>