diff options
author | Evgeny Mandrikov <138671+Godin@users.noreply.github.com> | 2019-10-08 07:11:33 +0200 |
---|---|---|
committer | Marc R. Hoffmann <hoffmann@mountainminds.com> | 2019-10-08 07:11:33 +0200 |
commit | 9049fd0f078fed95e21eb131b30055a2b290a676 (patch) | |
tree | 05d241f7b1f766fbc7580ba0f5d67c0e0a1452ef | |
parent | 484dfa9d1d834a40c6156d882ca3b8844da678ba (diff) | |
download | jacoco-9049fd0f078fed95e21eb131b30055a2b290a676.tar.gz |
Normalize line endings in HTML, CSS and XSL source files (#957)
-rw-r--r-- | .gitattributes | 3 | ||||
-rw-r--r-- | org.jacoco.doc/javadoc/overview.html | 76 | ||||
-rw-r--r-- | org.jacoco.doc/javadoc/stylesheet.css | 142 | ||||
-rw-r--r-- | org.jacoco.doc/xsl/junit-noframes.xsl | 764 |
4 files changed, 494 insertions, 491 deletions
diff --git a/.gitattributes b/.gitattributes index f7bd7083..f36b1d92 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1 +1,4 @@ *.java text eol=lf +*.html text eol=lf +*.css text eol=lf +*.xsl text eol=lf diff --git a/org.jacoco.doc/javadoc/overview.html b/org.jacoco.doc/javadoc/overview.html index 3d3245b4..1f3c288f 100644 --- a/org.jacoco.doc/javadoc/overview.html +++ b/org.jacoco.doc/javadoc/overview.html @@ -1,39 +1,39 @@ -<html>
-<body>
-
-<p>
- This is the public JaCoCo API that can be used for integration. JaCoCo is
- packed as several bundles. While the bundles formally fulfill the OSGi
- specification, there is no dependency on OSGi. They can also be used as
- regular JARs in your classpath.
-</p>
-
-<h1>Bundle org.jacoco.core</h1>
-
-<p>
- The core bundle implements the code coverage technology itself. It provides
- APIs and implementation for
-</p>
-
-<ul>
- <li>class file instrumentation,</li>
- <li>collecting execution data at runtime and</li>
- <li>analyzing coverage data.</li>
-</ul>
-
-<h1>Bundle org.jacoco.agent</h1>
-
-<p>
- Provides the runtime Java agent (JAR file) as a resource.
-</p>
-
-
-<h1>Bundle org.jacoco.report</h1>
-
-<p>
- APIs and implementation to create coverage reports in several formats.
-</p>
-
-
-</body>
+<html> +<body> + +<p> + This is the public JaCoCo API that can be used for integration. JaCoCo is + packed as several bundles. While the bundles formally fulfill the OSGi + specification, there is no dependency on OSGi. They can also be used as + regular JARs in your classpath. +</p> + +<h1>Bundle org.jacoco.core</h1> + +<p> + The core bundle implements the code coverage technology itself. It provides + APIs and implementation for +</p> + +<ul> + <li>class file instrumentation,</li> + <li>collecting execution data at runtime and</li> + <li>analyzing coverage data.</li> +</ul> + +<h1>Bundle org.jacoco.agent</h1> + +<p> + Provides the runtime Java agent (JAR file) as a resource. +</p> + + +<h1>Bundle org.jacoco.report</h1> + +<p> + APIs and implementation to create coverage reports in several formats. +</p> + + +</body> </html>
\ No newline at end of file diff --git a/org.jacoco.doc/javadoc/stylesheet.css b/org.jacoco.doc/javadoc/stylesheet.css index a45a6f59..7f4ce600 100644 --- a/org.jacoco.doc/javadoc/stylesheet.css +++ b/org.jacoco.doc/javadoc/stylesheet.css @@ -1,72 +1,72 @@ -body {
- font-family:sans-serif;
- font-size:10pt;
- background-color:#FFFFFF;
-}
-
-h1 {
- font-weight:bold;
- font-size:18pt;
-}
-
-.TableHeadingColor {
- background:#E0E0E0
-}
-
-.TableSubHeadingColor {
- background: #EEEEEE
-}
-
-.TableRowColor {
- background: #FFFFFF
-}
-
-.FrameTitleFont {
- font-weight:bold;
- font-size:10pt;
-}
-
-.FrameHeadingFont {
- font-weight:bold;
- font-size:14pt;
-}
-
-.FrameItemFont {
-}
-
-.NavBarCell1 { background-color:#EEEEFF;} /* Light mauve */
-.NavBarCell1Rev { background-color:#00008B;} /* Dark Blue */
-.NavBarFont1 { font-family: Arial, Helvetica, sans-serif; color:#000000;}
-.NavBarFont1Rev { font-family: Arial, Helvetica, sans-serif; color:#FFFFFF;}
-
-.NavBarCell2 { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;}
-.NavBarCell3 { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;}
-
-a[href^='http://'], a[href^='https://'] {
- display:inline-block;
- padding-left:15px;
- background:transparent url(../resources/extern.gif) center left no-repeat;
-}
-
-hr {
- border:none;
- border-top:#d6d3ce 1px solid;
- height:1px;
-}
-
-.footer {
- padding-top:2px;
- font-size:8pt;
- color:#a0a0a0;
-}
-
-.right {
- width:30%;
- float:right;
- text-align:right;
-}
-
-.footer a {
- color:#a0a0a0;
- background-image:none;
+body { + font-family:sans-serif; + font-size:10pt; + background-color:#FFFFFF; +} + +h1 { + font-weight:bold; + font-size:18pt; +} + +.TableHeadingColor { + background:#E0E0E0 +} + +.TableSubHeadingColor { + background: #EEEEEE +} + +.TableRowColor { + background: #FFFFFF +} + +.FrameTitleFont { + font-weight:bold; + font-size:10pt; +} + +.FrameHeadingFont { + font-weight:bold; + font-size:14pt; +} + +.FrameItemFont { +} + +.NavBarCell1 { background-color:#EEEEFF;} /* Light mauve */ +.NavBarCell1Rev { background-color:#00008B;} /* Dark Blue */ +.NavBarFont1 { font-family: Arial, Helvetica, sans-serif; color:#000000;} +.NavBarFont1Rev { font-family: Arial, Helvetica, sans-serif; color:#FFFFFF;} + +.NavBarCell2 { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;} +.NavBarCell3 { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;} + +a[href^='http://'], a[href^='https://'] { + display:inline-block; + padding-left:15px; + background:transparent url(../resources/extern.gif) center left no-repeat; +} + +hr { + border:none; + border-top:#d6d3ce 1px solid; + height:1px; +} + +.footer { + padding-top:2px; + font-size:8pt; + color:#a0a0a0; +} + +.right { + width:30%; + float:right; + text-align:right; +} + +.footer a { + color:#a0a0a0; + background-image:none; }
\ No newline at end of file diff --git a/org.jacoco.doc/xsl/junit-noframes.xsl b/org.jacoco.doc/xsl/junit-noframes.xsl index 24ee1301..af936bee 100644 --- a/org.jacoco.doc/xsl/junit-noframes.xsl +++ b/org.jacoco.doc/xsl/junit-noframes.xsl @@ -1,382 +1,382 @@ -<?xml version="1.0"?>
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
- xmlns="http://www.w3.org/1999/xhtml"
- xmlns:stringutils="xalan://org.apache.tools.ant.util.StringUtils"
- exclude-result-prefixes="stringutils">
-<xsl:output method="xml" indent="yes" encoding="UTF-8"
- doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
- doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"/>
-<xsl:decimal-format decimal-separator="." grouping-separator="," />
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<xsl:param name="qualified.bundle.version"/>
-<xsl:param name="jacoco.home.url"/>
-<xsl:param name="copyright.years"/>
-
-<!--
-
- JaCoCo test report stylesheet.
-
--->
-<xsl:template match="testsuites">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- <link rel="stylesheet" href="../doc/resources/doc.css" charset="UTF-8" type="text/css" />
- <link rel="shortcut icon" href="../doc/resources/report.gif" type="image/gif" />
- <title>JaCoCo - JUnit Test Results</title>
-
- <style type="text/css">
- .Error {
- font-weight:bold; color:red;
- }
- .Failure {
- font-weight:bold; color:purple;
- }
- </style>
- </head>
- <body>
- <div id="content">
- <a name="top"></a>
- <xsl:call-template name="pageHeader"/>
-
- <!-- Summary part -->
- <xsl:call-template name="summary"/>
-
- <!-- Package List part -->
- <xsl:call-template name="packagelist"/>
-
- <!-- For each package create its part -->
- <xsl:call-template name="packages"/>
-
- <!-- For each class create the part -->
- <xsl:call-template name="classes"/>
-
- </div>
- <div class="footer">
- <span class="right"><a href="{$jacoco.home.url}">JaCoCo</a> <xsl:value-of select="$qualified.bundle.version"/></span>
- <a href="../doc/license.html">Copyright</a> © <xsl:value-of select="$copyright.years"/> Mountainminds GmbH & Co. KG and Contributors
- </div>
- </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>
- <table class="coverage">
- <xsl:call-template name="testsuite.test.header"/>
- <tbody>
- <!-- 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 > 0">Failure</xsl:when>
- <xsl:when test="$errorCount > 0">Error</xsl:when>
- </xsl:choose>
- </xsl:attribute>
- <td style="width:24em"><a href="#{@package}" class="el_testsuite"><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>
- <td><xsl:value-of select="$testsuites-in-package/@timestamp"/></td>
- </tr>
- </xsl:for-each>
- </tbody>
- </table>
- <p class="hint">
- Note: package statistics are not computed recursively, they only sum up all of its testsuites numbers.
- </p>
-</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="coverage">
- <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>
- <p>
- <a href="#top">Back to top</a>
- </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="coverage">
- <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>
- <p>
- <a href="#top">Back to top</a>
- </p>
- </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="coverage">
- <thead>
- <tr valign="top">
- <td>Tests</td>
- <td>Failures</td>
- <td>Errors</td>
- <td>Success rate</td>
- <td>Time</td>
- </tr>
- </thead>
- <tbody>
- <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: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>
- </tbody>
- </table>
- <p class="hint">
- Note: <i>failures</i> are anticipated and checked for with assertions while <i>errors</i> are unanticipated.
- </p>
-</xsl:template>
-
-<!-- Page HEADER -->
-<xsl:template name="pageHeader">
- <div class="breadcrumb">
- <a href="../index.html" class="el_report">JaCoCo</a> >
- <span class="el_testsuite">JUnit Test Results</span>
- </div>
- <h1>JUnit Test Results</h1>
-</xsl:template>
-
-<xsl:template match="testsuite" mode="header">
- <thead>
- <tr valign="top">
- <td>Name</td>
- <td>Tests</td>
- <td>Errors</td>
- <td>Failures</td>
- <td nowrap="nowrap">Time(s)</td>
- </tr>
- </thead>
-</xsl:template>
-
-<!-- class header -->
-<xsl:template name="testsuite.test.header">
- <thead>
- <tr>
- <td>Name</td>
- <td>Tests</td>
- <td>Errors</td>
- <td>Failures</td>
- <td>Time(s)</td>
- <td>Time Stamp</td>
- </tr>
- </thead>
-</xsl:template>
-
-<!-- method header -->
-<xsl:template name="testcase.test.header">
- <thead>
- <tr>
- <td>Name</td>
- <td>Status</td>
- <td>Type</td>
- <td>Time(s)</td>
- </tr>
- </thead>
-</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[.> 0]">Failure</xsl:when>
- <xsl:when test="@errors[.> 0]">Error</xsl:when>
- </xsl:choose>
- </xsl:attribute>
-
- <!-- print testsuite information -->
- <td style="width:24em"><a href="#{@name}" class="el_testsuite"><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>
- <td><xsl:apply-templates select="@timestamp"/></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 style="width:24em"><span class="el_test"><xsl:value-of select="@name"/></span></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>
- <br/><br/>
- <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:param name="tmp1" select="stringutils:replace(string($string),'\','\\')"/>
- <xsl:param name="tmp2" select="stringutils:replace(string($tmp1),"'","\'")"/>
- <xsl:value-of select="$tmp2"/>
-</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:value-of disable-output-escaping="yes" select='stringutils:replace(string($word),"
","<br/>")'/>
-</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>
+<?xml version="1.0"?> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" + xmlns="http://www.w3.org/1999/xhtml" + xmlns:stringutils="xalan://org.apache.tools.ant.util.StringUtils" + exclude-result-prefixes="stringutils"> +<xsl:output method="xml" indent="yes" encoding="UTF-8" + doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" + doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"/> +<xsl:decimal-format decimal-separator="." grouping-separator="," /> +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + --> + +<xsl:param name="qualified.bundle.version"/> +<xsl:param name="jacoco.home.url"/> +<xsl:param name="copyright.years"/> + +<!-- + + JaCoCo test report stylesheet. + +--> +<xsl:template match="testsuites"> + <html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <link rel="stylesheet" href="../doc/resources/doc.css" charset="UTF-8" type="text/css" /> + <link rel="shortcut icon" href="../doc/resources/report.gif" type="image/gif" /> + <title>JaCoCo - JUnit Test Results</title> + + <style type="text/css"> + .Error { + font-weight:bold; color:red; + } + .Failure { + font-weight:bold; color:purple; + } + </style> + </head> + <body> + <div id="content"> + <a name="top"></a> + <xsl:call-template name="pageHeader"/> + + <!-- Summary part --> + <xsl:call-template name="summary"/> + + <!-- Package List part --> + <xsl:call-template name="packagelist"/> + + <!-- For each package create its part --> + <xsl:call-template name="packages"/> + + <!-- For each class create the part --> + <xsl:call-template name="classes"/> + + </div> + <div class="footer"> + <span class="right"><a href="{$jacoco.home.url}">JaCoCo</a> <xsl:value-of select="$qualified.bundle.version"/></span> + <a href="../doc/license.html">Copyright</a> © <xsl:value-of select="$copyright.years"/> Mountainminds GmbH & Co. KG and Contributors + </div> + </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> + <table class="coverage"> + <xsl:call-template name="testsuite.test.header"/> + <tbody> + <!-- 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 > 0">Failure</xsl:when> + <xsl:when test="$errorCount > 0">Error</xsl:when> + </xsl:choose> + </xsl:attribute> + <td style="width:24em"><a href="#{@package}" class="el_testsuite"><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> + <td><xsl:value-of select="$testsuites-in-package/@timestamp"/></td> + </tr> + </xsl:for-each> + </tbody> + </table> + <p class="hint"> + Note: package statistics are not computed recursively, they only sum up all of its testsuites numbers. + </p> +</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="coverage"> + <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> + <p> + <a href="#top">Back to top</a> + </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="coverage"> + <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> + <p> + <a href="#top">Back to top</a> + </p> + </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="coverage"> + <thead> + <tr valign="top"> + <td>Tests</td> + <td>Failures</td> + <td>Errors</td> + <td>Success rate</td> + <td>Time</td> + </tr> + </thead> + <tbody> + <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: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> + </tbody> + </table> + <p class="hint"> + Note: <i>failures</i> are anticipated and checked for with assertions while <i>errors</i> are unanticipated. + </p> +</xsl:template> + +<!-- Page HEADER --> +<xsl:template name="pageHeader"> + <div class="breadcrumb"> + <a href="../index.html" class="el_report">JaCoCo</a> > + <span class="el_testsuite">JUnit Test Results</span> + </div> + <h1>JUnit Test Results</h1> +</xsl:template> + +<xsl:template match="testsuite" mode="header"> + <thead> + <tr valign="top"> + <td>Name</td> + <td>Tests</td> + <td>Errors</td> + <td>Failures</td> + <td nowrap="nowrap">Time(s)</td> + </tr> + </thead> +</xsl:template> + +<!-- class header --> +<xsl:template name="testsuite.test.header"> + <thead> + <tr> + <td>Name</td> + <td>Tests</td> + <td>Errors</td> + <td>Failures</td> + <td>Time(s)</td> + <td>Time Stamp</td> + </tr> + </thead> +</xsl:template> + +<!-- method header --> +<xsl:template name="testcase.test.header"> + <thead> + <tr> + <td>Name</td> + <td>Status</td> + <td>Type</td> + <td>Time(s)</td> + </tr> + </thead> +</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[.> 0]">Failure</xsl:when> + <xsl:when test="@errors[.> 0]">Error</xsl:when> + </xsl:choose> + </xsl:attribute> + + <!-- print testsuite information --> + <td style="width:24em"><a href="#{@name}" class="el_testsuite"><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> + <td><xsl:apply-templates select="@timestamp"/></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 style="width:24em"><span class="el_test"><xsl:value-of select="@name"/></span></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> + <br/><br/> + <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:param name="tmp1" select="stringutils:replace(string($string),'\','\\')"/> + <xsl:param name="tmp2" select="stringutils:replace(string($tmp1),"'","\'")"/> + <xsl:value-of select="$tmp2"/> +</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:value-of disable-output-escaping="yes" select='stringutils:replace(string($word),"
","<br/>")'/> +</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> |