# HG changeset patch # User Simon Howkins <simonh@symbian.org> # Date 1254410456 -3600 # Node ID c6145fb2403d2fccdee9ae889e93acfd3b8fa189 # Parent fa2414b24dc4456f75f329ed9c2969dec95846b1 Reordered output, so information is presented in a high-level -> low-level way Added basic breakdown by package. Minor improvements to formatting. diff -r fa2414b24dc4 -r c6145fb2403d common/tools/brag/brag.xsl --- a/common/tools/brag/brag.xsl Thu Oct 01 16:17:02 2009 +0100 +++ b/common/tools/brag/brag.xsl Thu Oct 01 16:20:56 2009 +0100 @@ -1,24 +1,52 @@ <xsl:stylesheet version="1.0" - xmlns:xsl="http://www.w3.org/1999/XSL/Transform" - xmlns:fn="http://www.w3.org/2005/xpath-functions" - > + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fn="http://www.w3.org/2005/xpath-functions"> + +<!-- Initialise keys (sort of like hashes?) to enable us to list distinct packages/severities --> +<xsl:key name="packages" match="stage/step/failures/failure" use="@package"/> +<xsl:key name="severities" match="stage/step/failures" use="@severity"/> + +<!-- Main template --> <xsl:template match="/"> <html> - <link href="http://developer.symbian.org/css/reset.css" rel="stylesheet" type="text/css" /> - <link href="http://developer.symbian.org/css/portal-merged.css" rel="stylesheet" type="text/css" /> - <link href="http://developer.symbian.org/css/iefix.css" rel="stylesheet" type="text/css" /> <head><title>Build Status</title></head> <body> - <h2>Build Status</h2> + <h1>Build Status</h1> + + <xsl:variable name="criticalCount" select="count(stage/step/failures[@level='critical']/failure)"/> + <xsl:variable name="majorCount" select="count(stage/step/failures[@level='major']/failure)"/> + <xsl:variable name="minorCount" select="count(stage/step/failures[@level='minor']/failure)"/> + <xsl:variable name="unknownCount" select="count(stage/step/failures[@level!='critical' and @level!='major' and @level!='minor']/failure)"/> + + <h2> + Overall BRAG staus: + <xsl:choose> + <xsl:when test="$criticalCount != 0">BLACK</xsl:when> + <xsl:when test="$majorCount != 0">RED</xsl:when> + <xsl:when test="$minorCount != 0">AMBER</xsl:when> + <xsl:when test="$unknownCount != 0">GREEN</xsl:when> + <xsl:otherwise>GOLD!</xsl:otherwise> + </xsl:choose> + </h2> + + <h2>Breakdown by severity</h2> + <table border="1"> + <tr><td>Critical</td><td><xsl:value-of select="$criticalCount"/></td></tr> + <tr><td>Major</td><td><xsl:value-of select="$majorCount"/></td></tr> + <tr><td>Minor</td><td><xsl:value-of select="$minorCount"/></td></tr> + <tr><td>Unknown</td><td><xsl:value-of select="$unknownCount"/></td></tr> + <tr><th>Grand total</th><th><xsl:value-of select="count(stage/step/failures/failure)"/></th></tr> + </table> + + <h2>Breakdown by stage/step</h2> <table border="1"> <xsl:for-each select="stage"> <tr> - <th>Stage: <xsl:value-of select="@name"/></th> + <th colspan='2'>Stage: <xsl:value-of select="@name"/></th> </tr> <xsl:for-each select="step"> <tr> - <td>Step: <xsl:value-of select="@name"/></td> + <td colspan='2'>Step: <xsl:value-of select="@name"/></td> </tr> <xsl:for-each select="failures"> <tr> @@ -31,26 +59,18 @@ </table> - <xsl:variable name="criticalCount" select="count(stage/step/failures[@level='critical']/failure)"/> - <xsl:variable name="majorCount" select="count(stage/step/failures[@level='major']/failure)"/> - <xsl:variable name="minorCount" select="count(stage/step/failures[@level='minor']/failure)"/> - <xsl:variable name="unknownCount" select="count(stage/step/failures[@level!='critical' and @level!='major' and @level!='minor']/failure)"/> - - <p>Total number of critical errors = <xsl:value-of select="$criticalCount"/></p> - <p>Total number of major errors = <xsl:value-of select="$majorCount"/></p> - <p>Total number of minor errors = <xsl:value-of select="$minorCount"/></p> - <p>Total number of unknown errors = <xsl:value-of select="$unknownCount"/></p> - - <h2> - Final BRAG staus: - <xsl:choose> - <xsl:when test="$criticalCount != 0">BLACK</xsl:when> - <xsl:when test="$majorCount != 0">RED</xsl:when> - <xsl:when test="$minorCount != 0">AMBER</xsl:when> - <xsl:when test="$unknownCount != 0">GREEN</xsl:when> - <xsl:otherwise>GOLD!</xsl:otherwise> - </xsl:choose> - </h2> + <!-- If any failures are tied to a specific package... --> + <xsl:if test="stage/step/failures/failure[@package]"> + <h2>Breakdown by package</h2> + <table border="1"> + <tr><th>Package</th><th>Total failures</th></tr> + <!-- Use the Muenchian Method to get a set of distinct packages --> + <xsl:for-each select="stage/step/failures/failure[generate-id(.) = generate-id(key('packages', @package))]"> + <xsl:sort select="@package"/> + <tr><td><xsl:value-of select="@package"/></td><td><xsl:value-of select="count(key('packages', @package))"/></td></tr> + </xsl:for-each> + </table> + </xsl:if> </body> </html>