blob: 701ba378557f28fd6f9967ade51050782e1f85f5 [file] [log] [blame]
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:lxslt="http://xml.apache.org/xslt"
xmlns:redirect="org.apache.xalan.lib.Redirect"
extension-element-prefixes="redirect"
version="1.0">
<xsl:output method="html"
doctype-public="-//W3C//DTD HTML 4.0 Transitional"/>
<lxslt:component prefix="redirect" elements="write open close" functions="">
<lxslt:script lang="javaclass" src="org.apache.xalan.lib.Redirect"/>
</lxslt:component>
<!-- FileName: ResultScanner.xsl -->
<!-- Author: shane_curcuru@us.ibm.com -->
<!-- Purpose: Meta-scanner for groups of results produced
by org.apache.qetest.ResultScanner -->
<!-- Basic scanning stylesheet for individual testfile results -->
<xsl:include href="FailScanner.xsl"/>
<!-- Name of file for mini-fails redirected output -->
<xsl:param name="redirectFilename">ResultReportMini.html</xsl:param>
<!-- ================================== -->
<!-- Constants from org.apache.qetest.ResultScanner -->
<xsl:variable name="goodResult">ok</xsl:variable>
<xsl:variable name="badResult">notok</xsl:variable>
<!-- ================================== -->
<!-- Main template: output an HTML page -->
<xsl:template match="resultfilelist">
<html>
<head>
<title><xsl:text>ResultScanner: </xsl:text><xsl:value-of select="@logFile"/></title>
</head>
<body>
<!-- A table of all fail results -->
<h3>All bad results:</h3>
<xsl:for-each select="testgroup/teststatus[@status = $badResult]">
<xsl:variable name="linkname" select="concat(../@href, '/', @href)" />
<xsl:element name="a">
<xsl:attribute name="href">#<xsl:value-of select="$linkname"/></xsl:attribute>
<xsl:value-of select="$linkname"/>
</xsl:element>
<xsl:call-template name="miniStatusTable" />
<br/>
</xsl:for-each>
<redirect:open select="$redirectFilename" />
<xsl:apply-templates/>
<redirect:close select="$redirectFilename" />
</body>
</html>
</xsl:template>
<!-- For each bad file, pre-read summary -->
<xsl:template name="miniStatusTable">
<!-- Note this entire template is quite inefficient, since it
forces an extra loading of the status doc that will be
loaded again later on, but it works for now.
-->
<!-- Read in the teststatus file we found and get it's info -->
<xsl:variable name="statusfilename" select="concat(../@href, '/', @href)"/>
<xsl:variable name="status" select="document($statusfilename)/teststatus"/>
<xsl:text> P: </xsl:text>
<xsl:value-of select="$status/@Pass-cases"/><xsl:text>/</xsl:text>
<xsl:value-of select="$status/@Pass-checks"/><xsl:text>, </xsl:text>
<xsl:text>F: </xsl:text>
<xsl:value-of select="$status/@Fail-cases"/><xsl:text>/</xsl:text>
<xsl:value-of select="$status/@Fail-checks"/><xsl:text>, </xsl:text>
<xsl:text>E: </xsl:text>
<xsl:value-of select="$status/@Errr-cases"/><xsl:text>/</xsl:text>
<xsl:value-of select="$status/@Errr-checks"/><xsl:text>, </xsl:text>
<xsl:text>A: </xsl:text>
<xsl:value-of select="$status/@Ambg-cases"/><xsl:text>/</xsl:text>
<xsl:value-of select="$status/@Ambg-checks"/><xsl:text>, </xsl:text>
<xsl:text>I: </xsl:text>
<xsl:value-of select="$status/@Incp-cases"/>
</xsl:template>
<!-- For each directory full of results found, print out a summary -->
<xsl:template match="testgroup">
<!-- Cache the value of the dir for later use -->
<xsl:variable name="dir" select="@href"/>
<h3><xsl:text>Testgroup: </xsl:text><xsl:value-of select="$dir"/></h3>
<font size="-1">
<xsl:apply-templates select="teststatus[@status = $goodResult]" />
</font>
<br/>
<xsl:apply-templates select="teststatus[@status = $badResult]" >
<xsl:with-param name="dir" select="$dir"/>
</xsl:apply-templates>
</xsl:template>
<!-- Just list names of good result files (passing/ambg), nothing else -->
<xsl:template match="teststatus[@status = $goodResult][starts-with(@href, 'Ambg')]">
<b><xsl:value-of select="@href"/></b><xsl:text> </xsl:text>
</xsl:template>
<xsl:template match="teststatus[@status = $goodResult]">
<xsl:value-of select="@href"/><xsl:text> </xsl:text>
</xsl:template>
<!-- For bad result summary files, go look up the actual file and report it -->
<xsl:template match="teststatus[@status = $badResult]">
<xsl:param name="dir" select="."/>
<br/>
<!-- Read in the teststatus file we found and get it's info -->
<xsl:variable name="statusfilename" select="concat($dir, '/', @href)"/>
<xsl:variable name="status" select="document($statusfilename)/teststatus"/>
<!-- From that info, read in the actual results file associated therewith -->
<xsl:variable name="testresultsfilename" select="concat($status/@baseref, '/', $status/@logFile)"/>
<xsl:variable name="testresults" select="document($testresultsfilename)/resultsfile"/>
<!-- Anchor element for each test -->
<xsl:element name="a">
<xsl:attribute name="name"><xsl:value-of select="$statusfilename"/></xsl:attribute>
<hr/>
</xsl:element>
<!-- Link to the full xml source of each test -->
<font size="-1"><xsl:text> Original results.xml:</xsl:text>
<xsl:element name="a">
<xsl:attribute name="href"><xsl:value-of select="$testresultsfilename"/></xsl:attribute>
<xsl:value-of select="$testresults/testfile/@filename"/>
</xsl:element>
</font>
<!-- Now scan the actual underlying result file for stuff -->
<xsl:apply-templates select="$testresults/testfile">
<xsl:with-param name="redirectFilename" select="$redirectFilename" />
</xsl:apply-templates>
</xsl:template>
<!-- Override default text node processing, so statistics, arbitrary messages, and other stuff is skipped -->
<xsl:template match="text()"/>
</xsl:stylesheet>