diff --git a/releng.wtpbuilder/distribution/wtp.tests/build.xml b/releng.wtpbuilder/distribution/wtp.tests/build.xml index 7fbc499dac540ca05dd5537853789c3704c7c52a..59f5e41f2f8c872d358dcb933a27993f7cdcdbc0 100644 --- a/releng.wtpbuilder/distribution/wtp.tests/build.xml +++ b/releng.wtpbuilder/distribution/wtp.tests/build.xml @@ -10,7 +10,10 @@ --> <property environment="env"/> - <!-- required to get proper value of dropinsFolder --> + <fail + message="testRoot must be set for this task" + unless="testRoot"/> + <!-- required to get proper value of dropinsFolder --> <property name="keyCfgFile" value="${env.PROJECT_BUILDERS}/${projectname}/${env.RELENG}/maps/build.cfg"/> @@ -19,9 +22,19 @@ message="keyCfgFile: ${keyCfgFile}"/> <property file="${keyCfgFile}"/> - <fail - message="testRoot must be set for this task" - unless="testRoot"/> + + <!-- if not otherwise set, assume 'all' tests --> + <property + name="testTarget" + value="all"/> + <!-- + typcially already set, but in case of standalone tests, may not + be + --> + <property + name="buildLabel" + value="${buildType}-${buildId}-${timestamp}"/> + <!-- Steps to do after the build is done. @@ -91,15 +104,9 @@ target="unzipTests"/> <antcall target="runTestEclipse"> - <param - name="testTarget" - value="all"/> </antcall> <antcall target="postRunTestEclipse"> - <param - name="testTarget" - value="all"/> </antcall> </target> <target @@ -149,12 +156,9 @@ time out may need to be set/adjust for api or performance tests? This testTimeLimit is the whole, overall limit on tests. There's a shorter one for individual suites. some common values, of - milliseconds to more recognizable units: - 14400000: 4 hours - 7200000: 2 hours - 3600000: 1 hour - 1800000: 30 minutes - 600000: 10 minutes + milliseconds to more recognizable units: 14400000: 4 hours + 7200000: 2 hours 3600000: 1 hour 1800000: 30 minutes 600000: 10 + minutes --> <property name="testTimeLimit" @@ -181,6 +185,10 @@ <property name="eclipse.home" value="${testRoot}"/> + <echo + message="testTarget: ${testTarget}"/> + <echo + message="plugin-path: ${plugin-path}"/> <echo message="Running junits"/> <!-- @@ -203,8 +211,6 @@ produces ant debug info to be output ... which is a TON of stuff --> - <echo - message="eclipse.launcher: ${eclipse.launcher}"/> <java taskname="unit-test-masterprocess" fork="true" @@ -247,9 +253,7 @@ value="-Dprojectname=${projectname}"/> <jvmarg value="-Djava.io.tmpdir=${env.RECOMMENDED_TMP_DIR}"/> - <arg - value="--launcher.suppressErrors"/> - <arg + <arg value="-nosplash"/> <arg value="-consolelog"/> @@ -262,46 +266,45 @@ <arg value="org.eclipse.ant.core.antRunner"/> <arg - value="-file"/> - <arg - value="${testRoot}/test.xml"/> + value="-verbose"/> <arg value="-logger"/> <arg value="org.apache.tools.ant.DefaultLogger"/> + <arg + value="-file"/> + <arg + value="${testRoot}/test.xml"/> + <arg + value="${testTarget}"/> + + <!-- make sure our forked env has a DISPLAY --> <env key="DISPLAY" value="${env.DISPLAY}"/> <redirector output="${testRoot}/results/fullOutput.txt" error="${testRoot}/results/fullErrorLog.txt"/> - <sysproperty - key="build.home" - value="${env.BUILD_HOME}"/> - <sysproperty - key="buildDirectory" - value="${buildDirectory}"/> - <sysproperty - key="buildLabel" - value="${buildLabel}"/> - <sysproperty - key="baseLocation" - value="${baseLocation}"/> - <sysproperty - key="testRoot" - value="${testRoot}"/> - <sysproperty - key="testDir" - value="${testRoot}"/> - <sysproperty - key="perf.buildId" - value="${buildType}${date}-${time}"/> - <sysproperty - key="eclipseBuilderDirectory" - value="${pde.builder.path}"/> - <sysproperty - key="buildLabel" - value="${buildLabel}"/> + <jvmarg + value="-Dbuild.home=${env.BUILD_HOME}"/> + <jvmarg + value="-DbuildDirectory=${buildDirectory}"/> + <jvmarg + value="-DbuildLabel=${buildLabel}"/> + <jvmarg + value="-DbaseLocation=${baseLocation}"/> + <jvmarg + value="-DtestRoot=${testRoot}"/> + <jvmarg + value="-DtestDir=${testRoot}"/> + <jvmarg + value="-Dperf.buildId=${buildType}${date}-${time}"/> + <jvmarg + value="-DeclipseBuilderDirectory=${pde.builder.path}"/> + <jvmarg + value="-DbuildLabel=${buildLabel}"/> + <jvmarg + value="-Dplugin-path=${plugin-path}"/> </java> <echo message="wtpmasterjunitresult ${wtpmasterjunitresult}"/> diff --git a/releng.wtpbuilder/distribution/wtp.tests/standaloneTest.xml b/releng.wtpbuilder/distribution/wtp.tests/standaloneTest.xml index 298eef69a236df55b0edc57f258ba00120f1c01e..7a487eb62c3bc7c3ad345f06b3fa83c5951e5600 100644 --- a/releng.wtpbuilder/distribution/wtp.tests/standaloneTest.xml +++ b/releng.wtpbuilder/distribution/wtp.tests/standaloneTest.xml @@ -11,15 +11,21 @@ <property name="keyCfgFile" value="${env.PROJECT_BUILDERS}/${projectname}/${env.RELENG}/maps/build.cfg"/> + <property + name="build.home" + value="${env.BUILD_HOME}"/> <echo level="info" message="keyCfgFile: ${keyCfgFile}"/> + <!-- required to get proper value of dropinsFolder --> <property file="${keyCfgFile}"/> <fail message="testRoot must be set for this task" - unless="testRoot"/> - + unless="env.PROJECT_TESTS"/> + <property + name="testRoot" + value="${env.PROJECT_TESTS}"/> <target name="main"> <property @@ -37,31 +43,19 @@ dir="${testRoot}"/> <antcall target="getReleng"/> + <fail + message="Required file does not exist: ${env.PROJECT_BUILDERS}/${projectname}/${env.RELENG}/maps/dependencies.properties"> + <condition> + <not> + <available + file="${env.PROJECT_BUILDERS}/${projectname}/${env.RELENG}/maps/dependencies.properties"/> + </not> + </condition> + </fail> <property - file="${testRoot}/${env.RELENG}/maps/dependencies.properties"/> + file="${env.PROJECT_BUILDERS}/${projectname}/${env.RELENG}/maps/dependencies.properties"/> <antcall target="getDependencies"/> - <condition - property="wtp-sdk" - value="wtp-sdk-${buildId}.zip" - else="wtp-sdk-${buildType}-${buildId}-${timestamp}.zip"> - <available - file="${local.cache.dir}/wtp-sdk-${buildId}.zip"/> - </condition> - <condition - property="wtp-wst-tests" - value="wtp-wst-Automated-Tests-${buildId}.zip" - else="wtp-wst-Automated-Tests-${buildType}-${buildId}-${timestamp}.zip"> - <available - file="${local.cache.dir}/wtp-wst-Automated-Tests-${buildId}.zip"/> - </condition> - <condition - property="wtp-jst-tests" - value="wtp-jst-Automated-Tests-${buildId}.zip" - else="wtp-jst-Automated-Tests-${buildType}-${buildId}-${timestamp}.zip"> - <available - file="${local.cache.dir}/wtp-jst-Automated-Tests-${buildId}.zip"/> - </condition> <antcall target="run"/> </target> @@ -70,10 +64,12 @@ <property name="releng.tag" value="v${buildType}${timestamp}"/> + <mkdir + dir="${env.PROJECT_BUILDERS}/${projectname}"/> <cvs cvsRoot=":pserver:anonymous@dev.eclipse.org:/cvsroot/webtools" package="${env.RELENG}" - dest="${testRoot}" + dest="${env.PROJECT_BUILDERS}/${projectname}" command="export" tag="${releng.tag}" quiet="${env.CVS_QUIET}" @@ -90,12 +86,10 @@ name="dependencyTargets" value="${build.home}/${env.RELENG_BUILDER}/scripts/dependency/build.xml"/> </ant> - <antcall - target="getAndInstallWTP"> - <param - name="file" - value="wtp-sdk-${buildId}.zip"/> - </antcall> + <!-- + <antcall target="getAndInstallWTP"> <param name="file" + value="wtp-sdk-${buildId}.zip"/> </antcall> + --> <antcall target="getAndInstallWTP"> <param @@ -106,26 +100,20 @@ target="getAndInstallWTP"> <param name="file" - value="wtp-wst-Automated-Tests-${buildId}.zip"/> - </antcall> - <antcall - target="getAndInstallWTP"> - <param - name="file" - value="wtp-wst-Automated-Tests-${buildType}-${buildId}-${timestamp}.zip"/> - </antcall> - <antcall - target="getAndInstallWTP"> - <param - name="file" - value="wtp-jst-Automated-Tests-${buildId}.zip"/> - </antcall> - <antcall - target="getAndInstallWTP"> - <param - name="file" - value="wtp-jst-Automated-Tests-${buildType}-${buildId}-${timestamp}.zip"/> + value="wtp-Automated-Tests-${buildType}-${buildId}-${timestamp}.zip"/> </antcall> + <!-- + <antcall target="getAndInstallWTP"> <param name="file" + value="wtp-wst-Automated-Tests-${buildId}.zip"/> </antcall> + <antcall target="getAndInstallWTP"> <param name="file" + value="wtp-wst-Automated-Tests-${buildType}-${buildId}-${timestamp}.zip"/> + </antcall> <antcall target="getAndInstallWTP"> <param + name="file" value="wtp-jst-Automated-Tests-${buildId}.zip"/> + </antcall> <antcall target="getAndInstallWTP"> <param + name="file" + value="wtp-jst-Automated-Tests-${buildType}-${buildId}-${timestamp}.zip"/> + </antcall> + --> </target> <target name="getAndInstallWTP"> @@ -144,14 +132,14 @@ name="getWTP"> <condition property="file.url.1" - value="http://download.eclipse.org/webtools/committers" + value="http://build.eclipse.org/webtools/committers/${projectname}/${timestamp}" else="http://download.eclipse.org/webtools/downloads"> <isset property="build.committers"/> </condition> <condition property="file.url" - value="${file.url.1}/drops/${build.stream}/${buildType}-${buildId}-${timestamp}" + value="${file.url.1}/${buildType}-${buildId}-${timestamp}" else="${file.url.1}/drops/${buildType}-${buildId}-${timestamp}"> <isset property="build.stream"/> @@ -175,7 +163,7 @@ if="file.exists"> <unzip src="${local.cache.dir}/${file}" - dest="${testRoot}" + dest="${testRoot}${dropinsFolder}" overwrite="true"/> </target> <target @@ -195,6 +183,7 @@ <property name="testRoot" value="${testRoot}"/> + <!-- if not otherwise set, assume all tests --> <property name="testTarget" value="all"/> @@ -204,66 +193,16 @@ todir="${testRoot}/results" overwrite="true"/> </target> - <target - name="upload" - if="login"> - <mkdir - dir="${build.home}/archives"/> - <zip - destfile="${build.home}/archives/${buildType}-${buildId}-${timestamp}.zip" - basedir="${build.home}/testRoot/results"/> - <condition - property="upload.path.1" - else="~/downloads/webtools/downloads" - value="~/downloads/webtools/committers"> - <isset - property="build.committers"/> - </condition> - <condition - property="upload.path" - else="${upload.path.1}/drops/${buildType}-${buildId}-${timestamp}/testResults/${config}" - value="${upload.path.1}/drops/${build.stream}/${buildType}-${buildId}-${timestamp}/testResults/${config}"> - <isset - property="build.stream"/> - </condition> - <exec - executable="ssh" - dir="${build.home}"> - <arg - line="${login}@download1.eclipse.org rm -rf ${upload.path}"/> - </exec> - <exec - executable="ssh" - dir="${build.home}"> - <arg - line="${login}@download1.eclipse.org mkdir ${upload.path}"/> - </exec> - <exec - executable="scp" - dir="${build.home}"> - <arg - line="-r ./testRoot/results ${login}@download1.eclipse.org:${upload.path}"/> - </exec> - </target> <target name="clean" if="clean"> <property file="${build.home}/${env.RELENG_BUILDER}/build.properties"/> - <property - name="local.cache.dir" - value="${env.LOCAL_PREREQS_CACHE}"/> <property name="testRoot" value="${build.home}/testRoot"/> <delete dir="${testRoot}" failonerror="false"/> - <delete - failonerror="false"> - <fileset - dir="${local.cache.dir}" - includes="wtp-*"/> - </delete> </target> </project> \ No newline at end of file diff --git a/releng.wtpbuilder/distribution/wtp.tests/templateFiles/index.php b/releng.wtpbuilder/distribution/wtp.tests/templateFiles/index.php index 8d236930b451ab42d7cf081eeaaac22ef5f94a6c..a42c883da36363bdb2c3138d07f268fd01265923 100644 --- a/releng.wtpbuilder/distribution/wtp.tests/templateFiles/index.php +++ b/releng.wtpbuilder/distribution/wtp.tests/templateFiles/index.php @@ -2,78 +2,83 @@ <head> <?php - $parts = explode("/", realpath("..")); - $label = $parts[count($parts) - 1]; +$parts = explode("/", realpath("..")); +$label = $parts[count($parts) - 1]; ?> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> -<link rel="stylesheet" href="http://dev.eclipse.org/default_style.css" type="text/css"> +<link rel="stylesheet" href="http://dev.eclipse.org/default_style.css" + type="text/css"> </head> <body> -<p><b><font face="Verdana" size="+3">Test Results</font></b> </p> -<table border=0 cellspacing=5 cellpadding=2 width="100%" > - <tr> - <td align=LEFT valign=TOP colspan="3" bgcolor="#0080C0"><b><font color="#FFFFFF" face="Arial,Helvetica">Unit - Test Results for <?php echo "$label"; ?> </font></b></td> - </tr> +<p><b><font face="Verdana" size="+3">Test Results</font></b></p> +<table border=0 cellspacing=5 cellpadding=2 width="100%"> + <tr> + <td align=LEFT valign=TOP colspan="3" bgcolor="#0080C0"><b><font + color="#FFFFFF" face="Arial,Helvetica">Unit Test Results for <?php echo "$label"; ?> + </font></b></td> + </tr> </table> -<p></p><table border="0"> +<p></p> +<table border="0"> </table> <table width="77%" border="1"> - <tr> - <td width="81%"><b>Tests Performed</b></td> - <td width="19%"><b>Errors & Failures</b></td> - </tr> + <tr> + <td width="81%"><b>Tests Performed</b></td> + <td width="19%"><b>Errors & Failures</b></td> + </tr> + + <? + $dir = dir("html"); + while ($anEntry = $dir->read()) + { + if ($anEntry != "." && $anEntry != "..") + { + $link = "html/".$anEntry; + $xml = "xml/".substr($anEntry, 0, strlen($anEntry)-4)."xml"; + $count = 0; + $fileHandle = fopen($xml, "r"); + while (!feof($fileHandle)) + { + $aLine = fgets($fileHandle, 4096); // Length parameter only optional after 4.2.0 + $count = $count + substr_count($aLine, '<error'); + } + fclose($fileHandle); + if ($count > 0) + { + echo "<tr><td><a href=\"$link\"><b><font color=\"red\">"; + echo "$anEntry"; + echo "</font></b></a></td>"; + echo "<td><b><font color=\"red\">$count</font></b></td></tr>"; + } + else + { + echo "<tr><td><a href=\"$link\">"; + echo "$anEntry"; + echo "</a></td>"; + echo "<td>$count</td></tr>"; + } + } + } + ?> - <? - $dir = dir("html"); - while ($anEntry = $dir->read()) - { - if ($anEntry != "." && $anEntry != "..") - { - $link = "html/".$anEntry; - $xml = "xml/".substr($anEntry, 0, strlen($anEntry)-4)."xml"; - $count = 0; - $fileHandle = fopen($xml, "r"); - while (!feof($fileHandle)) - { - $aLine = fgets($fileHandle, 4096); // Length parameter only optional after 4.2.0 - $count = $count + substr_count($aLine, '<error'); - } - fclose($fileHandle); - if ($count > 0) - { - echo "<tr><td><a href=\"$link\"><b><font color=\"red\">"; - echo "$anEntry"; - echo "</font></b></a></td>"; - echo "<td><b><font color=\"red\">$count</font></b></td></tr>"; - } - else - { - echo "<tr><td><a href=\"$link\">"; - echo "$anEntry"; - echo "</a></td>"; - echo "<td>$count</td></tr>"; - } - } - } - ?> - </table> <p></p> <br> -<table border=0 cellspacing=5 cellpadding=2 width="100%" > - <tr> - <td align=LEFT valign=TOP colspan="3" bgcolor="#0080C0"><b><font color="#FFFFFF" face="Arial,Helvetica"> - Console output logs - <?php echo "$label"; ?> - </font></b></td> - </tr> +<table border=0 cellspacing=5 cellpadding=2 width="100%"> + <tr> + <td align=LEFT valign=TOP colspan="3" bgcolor="#0080C0"><b><font + color="#FFFFFF" face="Arial,Helvetica"> Console output logs <?php echo "$label"; ?> + </font></b></td> + </tr> </table> <br> -These <a href="consolelogs/wtptestlog.txt">logs</a> contain the console output captured while -running the JUnit automated tests. <br> +These +<a href="consolelogs/wtptestlog.txt">logs</a> +contain the console output captured while running the JUnit automated +tests. +<br> <br> </body> diff --git a/releng.wtpbuilder/distribution/wtp.tests/testScripts/JUNIT.XSL b/releng.wtpbuilder/distribution/wtp.tests/testScripts/JUNIT.XSL index 30a407d89d999a6c0754e53b31443a0aa6998491..0810ae57fb40a5d10f5771d610056519999eb550 100644 --- a/releng.wtpbuilder/distribution/wtp.tests/testScripts/JUNIT.XSL +++ b/releng.wtpbuilder/distribution/wtp.tests/testScripts/JUNIT.XSL @@ -12,34 +12,36 @@ <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% + 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"> + 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 + select="./testsuite"> + <xsl:apply-templates + select="properties"/> </xsl:for-each> - </script> - <script language="JavaScript"><![CDATA[ + <script + language="JavaScript"><![CDATA[ function displayProperties (name) { var win = window.open('','JUnitSystemProperties','scrollbars=1,resizable=1'); var doc = win.document.open(); @@ -69,44 +71,55 @@ </script> </HEAD> <body> - <a name="top"></a> - <xsl:call-template name="pageHeader" /> + <a + name="top"></a> + <xsl:call-template + name="pageHeader"/> <!-- Summary part --> - <xsl:call-template name="summary" /> + <xsl:call-template + name="summary"/> <hr size="1" width="95%" - align="left" /> + align="left"/> <!-- Package List part --> - <xsl:call-template name="packagelist" /> + <xsl:call-template + name="packagelist"/> <hr size="1" width="95%" - align="left" /> + align="left"/> <!-- For each package create its part --> - <xsl:call-template name="packages" /> + <xsl:call-template + name="packages"/> <hr size="1" width="95%" - align="left" /> + align="left"/> <!-- For each class create the part --> - <xsl:call-template name="classes" /> - + <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"> + <!-- + ================================================================== + --> + <!-- + 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. @@ -116,212 +129,256 @@ cellpadding="5" cellspacing="2" width="95%"> - <xsl:call-template name="testsuite.test.header" /> + <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:sort + select="@package"/> <xsl:variable name="testsuites-in-package" - select="/testsuites/testsuite[./@package = current()/@package]" /> + select="/testsuites/testsuite[./@package = current()/@package]"/> <xsl:variable name="testCount" - select="sum($testsuites-in-package/@tests)" /> + select="sum($testsuites-in-package/@tests)"/> <xsl:variable name="errorCount" - select="sum($testsuites-in-package/@errors)" /> + select="sum($testsuites-in-package/@errors)"/> <xsl:variable name="failureCount" - select="sum($testsuites-in-package/@failures)" /> + select="sum($testsuites-in-package/@failures)"/> <xsl:variable name="timeCount" - select="sum($testsuites-in-package/@time)" /> + select="sum($testsuites-in-package/@time)"/> <!-- write a summary for the package --> - <tr valign="top"> + <tr + valign="top"> <!-- set a nice color depending if there is an error/failure --> - <xsl:attribute name="class"> + <xsl:attribute + name="class"> <xsl:choose> - <xsl:when test="$failureCount > 0">Failure</xsl:when> - <xsl:when test="$errorCount > 0">Error</xsl:when> + <xsl:when + test="$failureCount > 0">Failure</xsl:when> + <xsl:when + test="$errorCount > 0">Error</xsl:when> </xsl:choose> </xsl:attribute> <td> - <a href="#{@package}"> - <xsl:value-of select="@package" /> + <a + href="#{@package}"> + <xsl:value-of + select="@package"/> </a> </td> <td> - <xsl:value-of select="$testCount" /> + <xsl:value-of + select="$testCount"/> </td> <td> - <xsl:value-of select="$errorCount" /> + <xsl:value-of + select="$errorCount"/> </td> <td> - <xsl:value-of select="$failureCount" /> + <xsl:value-of + select="$failureCount"/> </td> <td> - <xsl:call-template name="display-time"> + <xsl:call-template + name="display-time"> <xsl:with-param name="value" - select="$timeCount" /> + 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"> + <!-- + ================================================================== + --> + <!-- + 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> + <xsl:sort + select="@package"/> + <a + name="{@package}"></a> <h3> Package - <xsl:value-of select="@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" /> + <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" /> + mode="print.test"/> </table> - <a href="#top">Back to top</a> - <p /> - <p /> + <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" /> + <xsl:template + name="classes"> + <xsl:for-each + select="testsuite"> + <xsl:sort + select="@name"/> <!-- create an anchor to this class name --> - <a name="{@name}"></a> + <a + name="{@name}"></a> <h3> TestCase - <xsl:value-of select="@name" /> + <xsl:value-of + select="@name"/> </h3> - <table class="details" border="0" cellpadding="5" cellspacing="2" width="95%"> - <xsl:call-template name="testcase.test.header" /> + <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 + 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" /> + <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" /> + mode="print.test"/> </table> - <div class="Properties"> + <div + class="Properties"> <a> - <xsl:attribute name="href">javascript:displayProperties('<xsl:value-of - select="@package" />.<xsl:value-of - select="@name" />');</xsl:attribute> - Properties >> - </a> + <xsl:attribute + name="href">javascript:displayProperties('<xsl:value-of + select="@package"/>.<xsl:value-of + select="@name"/>');</xsl:attribute> + Properties >> </a> </div> - <p /> - - <a href="#top">Back to top</a> + <p/> + <a + href="#top">Back to top</a> </xsl:for-each> </xsl:template> - - <xsl:template name="summary"> + <xsl:template + name="summary"> <h2>Summary</h2> <xsl:variable name="testCount" - select="sum(testsuite/@tests)" /> + select="sum(testsuite/@tests)"/> <xsl:variable name="errorCount" - select="sum(testsuite/@errors)" /> + select="sum(testsuite/@errors)"/> <xsl:variable name="failureCount" - select="sum(testsuite/@failures)" /> + select="sum(testsuite/@failures)"/> <xsl:variable name="timeCount" - select="sum(testsuite/@time)" /> + select="sum(testsuite/@time)"/> <xsl:variable name="successRate" - select="($testCount - $failureCount - $errorCount) div $testCount" /> + select="($testCount - $failureCount - $errorCount) div $testCount"/> <table class="details" border="0" cellpadding="5" cellspacing="2" width="95%"> - <tr valign="top"> + <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"> + <tr + valign="top"> + <xsl:attribute + name="class"> <xsl:choose> - <xsl:when test="$failureCount > 0">Failure</xsl:when> - <xsl:when test="$errorCount > 0">Error</xsl:when> + <xsl:when + test="$failureCount > 0">Failure</xsl:when> + <xsl:when + test="$errorCount > 0">Error</xsl:when> </xsl:choose> </xsl:attribute> <td> - <xsl:value-of select="$testCount" /> + <xsl:value-of + select="$testCount"/> </td> <td> - <xsl:value-of select="$failureCount" /> + <xsl:value-of + select="$failureCount"/> </td> <td> - <xsl:value-of select="$errorCount" /> + <xsl:value-of + select="$errorCount"/> </td> <td> - <xsl:call-template name="display-percent"> + <xsl:call-template + name="display-percent"> <xsl:with-param name="value" - select="$successRate" /> + select="$successRate"/> </xsl:call-template> </td> <td> - <xsl:call-template name="display-time"> + <xsl:call-template + name="display-time"> <xsl:with-param name="value" - select="$timeCount" /> + select="$timeCount"/> </xsl:call-template> </td> - </tr> </table> <table border="0" width="95%"> <tr> - <td style="text-align: justify;"> + <td + style="text-align: justify;"> Note: <i>failures</i> are anticipated and checked for with assertions @@ -332,79 +389,102 @@ </tr> </table> </xsl:template> - <!-- - Write properties into a JavaScript data structure. - This is based on the original idea by Erik Hatcher (erik@hatcher.net) + Write properties into a JavaScript data structure. This is based + on the original idea by Erik Hatcher (erik@hatcher.net) --> - <xsl:template match="properties"> + <xsl:template + match="properties"> cur = TestCases[' - <xsl:value-of select="../@package" /> + <xsl:value-of + select="../@package"/> . - <xsl:value-of select="../@name" /> + <xsl:value-of + select="../@name"/> '] = new Array(); - <xsl:for-each select="property"> - <xsl:sort select="@name" /> + <xsl:for-each + select="property"> + <xsl:sort + select="@name"/> cur[' - <xsl:value-of select="@name" /> + <xsl:value-of + select="@name"/> '] = ' - <xsl:call-template name="JS-escape"> + <xsl:call-template + name="JS-escape"> <xsl:with-param name="string" - select="@value" /> + select="@value"/> </xsl:call-template> '; </xsl:for-each> </xsl:template> <!-- Page HEADER --> - <xsl:template name="pageHeader"> + <xsl:template + name="pageHeader"> <h1>Unit Test Results</h1> - <table width="100%"> + <table + width="100%"> <tr> - <td align="left"></td> - <td align="right"> + <td + align="left"></td> + <td + align="right"> Designed for use with - <a href='http://www.junit.org'>JUnit</a> + <a + href='http://www.junit.org'>JUnit</a> and - <a href='http://jakarta.apache.org/ant'>Ant</a> + <a + href='http://jakarta.apache.org/ant'>Ant</a> . </td> </tr> </table> - <hr size="1" /> + <hr + size="1"/> </xsl:template> - <xsl:template match="testsuite" mode="header"> - <tr valign="top"> - <th width="80%">Name</th> + <tr + valign="top"> + <th + width="80%">Name</th> <th>Tests</th> <th>Errors</th> <th>Failures</th> - <th nowrap="nowrap">Time(s)</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> + <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> + <th + nowrap="nowrap">Time(s)</th> </tr> </xsl:template> <!-- method header --> - <xsl:template name="testcase.test.header"> - <tr valign="top"> + <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> + <th + width="80%">Type</th> + <th + nowrap="nowrap">Time(s)</th> </tr> </xsl:template> @@ -413,63 +493,80 @@ <xsl:template match="testsuite" mode="print.test"> - <tr valign="top"> + <tr + valign="top"> <!-- set a nice color depending if there is an error/failure --> - <xsl:attribute name="class"> + <xsl:attribute + name="class"> <xsl:choose> - <xsl:when test="@failures[.> 0]">Failure</xsl:when> - <xsl:when test="@errors[.> 0]">Error</xsl:when> + <xsl:when + test="@failures[.> 0]">Failure</xsl:when> + <xsl:when + test="@errors[.> 0]">Error</xsl:when> </xsl:choose> </xsl:attribute> <!-- print testsuite information --> <td> - <a href="#{@name}"> - <xsl:value-of select="@name" /> + <a + href="#{@name}"> + <xsl:value-of + select="@name"/> </a> </td> <td> - <xsl:value-of select="@tests" /> + <xsl:value-of + select="@tests"/> </td> <td> - <xsl:value-of select="@errors" /> + <xsl:value-of + select="@errors"/> </td> <td> - <xsl:value-of select="@failures" /> + <xsl:value-of + select="@failures"/> </td> <td> - <xsl:call-template name="display-time"> + <xsl:call-template + name="display-time"> <xsl:with-param name="value" - select="@time" /> + select="@time"/> </xsl:call-template> </td> </tr> </xsl:template> - <xsl:template match="testcase" mode="print.test"> - <tr valign="top"> - <xsl:attribute name="class"> + <tr + valign="top"> + <xsl:attribute + name="class"> <xsl:choose> - <xsl:when test="failure | error">Error</xsl:when> + <xsl:when + test="failure | error">Error</xsl:when> </xsl:choose> </xsl:attribute> <td> - <xsl:value-of select="@name" /> + <xsl:value-of + select="@name"/> </td> <xsl:choose> - <xsl:when test="failure"> + <xsl:when + test="failure"> <td>Failure</td> <td> - <xsl:apply-templates select="failure" /> + <xsl:apply-templates + select="failure"/> </td> </xsl:when> - <xsl:when test="error"> + <xsl:when + test="error"> <td>Error</td> <td> - <xsl:apply-templates select="error" /> + <xsl:apply-templates + select="error"/> </td> </xsl:when> <xsl:otherwise> @@ -478,103 +575,128 @@ </xsl:otherwise> </xsl:choose> <td> - <xsl:call-template name="display-time"> + <xsl:call-template + name="display-time"> <xsl:with-param name="value" - select="@time" /> + select="@time"/> </xsl:call-template> </td> </tr> </xsl:template> - - - <xsl:template match="failure"> - <xsl:call-template name="display-failures" /> + <xsl:template + match="failure"> + <xsl:call-template + name="display-failures"/> </xsl:template> - - <xsl:template match="error"> - <xsl:call-template name="display-failures" /> + <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:template + name="display-failures"> <xsl:choose> - <xsl:when test="not(@message)">N/A</xsl:when> + <xsl:when + test="not(@message)"> + N/A + </xsl:when> <xsl:otherwise> - <xsl:value-of select="@message" /> + <xsl:value-of + select="@message"/> </xsl:otherwise> </xsl:choose> <!-- display the stacktrace --> <code> - <p /> - <xsl:call-template name="br-replace"> + <p/> + <xsl:call-template + name="br-replace"> <xsl:with-param name="word" - select="." /> + select="."/> </xsl:call-template> </code> - <!-- the later is better but might be problematic for non-21" monitors... --> + <!-- + 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: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 + <!-- + something isn't right here, basically all single quotes + need to be replaced with backslash-single-quote <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:when test="contains($string,'\')"> - <xsl:value-of select="substring-before($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:when + test="contains($string,'\')"> + <xsl:value-of + select="substring-before($string,'\')"/> \\ - <xsl:call-template name="JS-escape"> + <xsl:call-template + name="JS-escape"> <xsl:with-param name="string" - select="substring-after($string,'\')" /> + select="substring-after($string,'\')"/> </xsl:call-template> </xsl:when> <xsl:otherwise> - <xsl:value-of select="$string" /> + <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:template + name="br-replace"> + <xsl:param + name="word"/> <xsl:choose> - <xsl:when test="contains($word,'
')"> - <xsl:value-of select="substring-before($word,'
')" /> - <br /> - <xsl:call-template name="br-replace"> + <xsl:when + test="contains($word,'
')"> + <xsl:value-of + select="substring-before($word,'
')"/> + <br/> + <xsl:call-template + name="br-replace"> <xsl:with-param name="word" - select="substring-after($word,'
')" /> + select="substring-after($word,'
')"/> </xsl:call-template> </xsl:when> <xsl:otherwise> - <xsl:value-of select="$word" /> + <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 + 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 + name="display-percent"> + <xsl:param + name="value"/> + <xsl:value-of + select="format-number($value,'0.00%')"/> </xsl:template> - -</xsl:stylesheet> - +</xsl:stylesheet> \ No newline at end of file diff --git a/releng.wtpbuilder/distribution/wtp.tests/testScripts/test.xml b/releng.wtpbuilder/distribution/wtp.tests/testScripts/test.xml index 8976b365686adac0a38bb249d333281bbc301c70..7ea2421a240a17346ada2320f267def9894a3432 100644 --- a/releng.wtpbuilder/distribution/wtp.tests/testScripts/test.xml +++ b/releng.wtpbuilder/distribution/wtp.tests/testScripts/test.xml @@ -1077,7 +1077,6 @@ message="Starting XSL Tests"/> <antcall target="xsl-tests"/> - </target> <target name="genHtml" diff --git a/releng.wtpbuilder/distribution/wtp.tests/testdependency.xml b/releng.wtpbuilder/distribution/wtp.tests/testdependency.xml index a35b5ee37cf06452742e4a1475d07f4335d4bece..491722590df40c5fc483534a4392049219c08c95 100644 --- a/releng.wtpbuilder/distribution/wtp.tests/testdependency.xml +++ b/releng.wtpbuilder/distribution/wtp.tests/testdependency.xml @@ -10,13 +10,22 @@ default="get"> <property environment="env"/> -<!-- required to get proper value of dropinsFolder --> + <!-- required to get proper value of dropinsFolder --> <property name="keyCfgFile" value="${env.PROJECT_BUILDERS}/${projectname}/${env.RELENG}/maps/build.cfg"/> <echo - level="debug" + level="info" message="keyCfgFile: ${keyCfgFile}"/> + <fail + message="Required property file does not exist: ${keyCfgFile}"> + <condition> + <not> + <available + file="${keyCfgFile}"/> + </not> + </condition> + </fail> <property file="${keyCfgFile}"/> <target diff --git a/releng.wtpbuilder/scripts/dependency/build.xml b/releng.wtpbuilder/scripts/dependency/build.xml index c1de18af278d9e50178f2786f0ab5ea91d375e27..d3844e28394dc50755cdd5f1d0da6369d5fda529 100644 --- a/releng.wtpbuilder/scripts/dependency/build.xml +++ b/releng.wtpbuilder/scripts/dependency/build.xml @@ -191,10 +191,24 @@ overwrite="true" /> </target> <target name="install-zip"> + <!-- + We use the exec method for unzip, so we won't fail if a + prereq can not be unzipped for some reason. See + https://bugs.eclipse.org/bugs/show_bug.cgi?id=283968 + --> + <mkdir dir="${install.destination}" /> + <exec + dir="." + executable="unzip"> + <arg + line="-o -qq ${local.cache.dir}/${dependency.file} -d ${install.destination}"/> + </exec> + <!-- <unzip dest="${install.destination}" src="${local.cache.dir}/${dependency.file}" overwrite="true" /> + --> </target> <target name="install-map"> <copy