- From: CVS User fsasaki <cvsmail@w3.org>
- Date: Wed, 26 Dec 2012 19:12:34 +0000
- To: public-multilingualweb-lt-commits@w3.org
Update of /w3ccvs/WWW/International/multilingualweb/lt/drafts/its20/tools/xslt In directory gil:/tmp/cvs-serv6645/tools/xslt Modified Files: disco-for-its20.xsl Added Files: testsuiteDashboard.xsl Log Message: Adding various files for test suite dashboard. Mostly temporary, see http://lists.w3.org/Archives/Public/public-multilingualweb-lt-tests/2012Dec/0190.html --- /w3ccvs/WWW/International/multilingualweb/lt/drafts/its20/tools/xslt/disco-for-its20.xsl 2012/12/19 08:29:50 1.12 +++ /w3ccvs/WWW/International/multilingualweb/lt/drafts/its20/tools/xslt/disco-for-its20.xsl 2012/12/26 19:12:34 1.13 @@ -17,8 +17,10 @@ <xsl:template match="/"> <xsl:variable name="comments" select="database/issues/issue[product=$productnum and xs:date(created) >= $commentsPeriodStartDate and xs:date(created) <= $commentsPeriodEndDate]"/> - <html xmlns="http://www.w3.org/1999/xhtml"> + <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head> + <meta http-equiv="content-type" content= + "text/html; charset=utf-8" /> <title><xsl:copy-of select="$worktitle"/> Disposition of <xsl:copy-of select="$stage"/> Comments</title> <style type="text/css"> table.overview tr {background: #ddd;} *.description { --- /w3ccvs/WWW/International/multilingualweb/lt/drafts/its20/tools/xslt/testsuiteDashboard.xsl 2012/12/26 19:12:34 NONE +++ /w3ccvs/WWW/International/multilingualweb/lt/drafts/its20/tools/xslt/testsuiteDashboard.xsl 2012/12/26 19:12:34 1.1 <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" xmlns:my="http://example.com/myns" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="my"> <xsl:output method="xml" encoding="utf-8" indent="yes"/> <xsl:param name="output">html</xsl:param> <xsl:variable name="testsuiteLocation">../../temp/ITS-2.0-Testsuite-master/its2.0/</xsl:variable> <xsl:variable name="annotatedTestSuiteMaster"> <xsl:apply-templates select="/" mode="annotateTestSuiteMaster"/> </xsl:variable> <xsl:variable name="implemeters" as="item()*"> <xsl:for-each select="distinct-values(//my:outputImplementors/@implementer)[string-length()>0]"> <xsl:sort/> <xsl:value-of select="."/> </xsl:for-each> </xsl:variable> <xsl:variable name="datacategories" as="item()*"> <xsl:for-each select="distinct-values(/my:testSuite/my:dataCategory/@name)[string-length()>0]"> <xsl:value-of select="."/> </xsl:for-each> </xsl:variable> <xsl:template match="@* | node()" mode="annotateTestSuiteMaster"> <xsl:copy> <xsl:apply-templates select="@* | node()" mode="annotateTestSuiteMaster"/> </xsl:copy> </xsl:template> <xsl:template mode="annotateTestSuiteMaster" match="my:outputImplementors" xmlns="http://example.com/myns"> <xsl:copy> <xsl:copy-of select="@*"/> <xsl:choose> <xsl:when test="not(unparsed-text-available(concat($testsuiteLocation,preceding-sibling::my:expectedOutput/@location)))"> <error>referenceFileNotFound: <xsl:value-of select="ancestor::my:inputfile/@location"/></error> </xsl:when> <xsl:otherwise> <xsl:choose> <xsl:when test="not(unparsed-text-available(concat($testsuiteLocation,@location)))"> <error>outputFileNotFound</error> </xsl:when> <xsl:otherwise> <xsl:variable name="referenceFileLines" select="tokenize(unparsed-text(concat($testsuiteLocation,preceding-sibling::my:expectedOutput/@location)), '\r?\n')"/> <xsl:for-each select="tokenize(unparsed-text(concat($testsuiteLocation,@location)), '\r?\n')"> <xsl:variable name="position" select="position()"/> <xsl:variable name="line" select="."/> <xsl:if test="string-length(replace($line,'\s+','')) != string-length(replace($referenceFileLines[position()=$position],'\s+',''))"> <error><xsl:text>
Line </xsl:text><xsl:value-of select="$position" /><xsl:text>: Comparison failed.
* Reference line: </xsl:text>[<xsl:value-of select="$referenceFileLines[position()=$position]" /><xsl:text>]
* Implementers file line:[</xsl:text><xsl:value-of select="$line"/><xsl:text>]</xsl:text></error> </xsl:if> </xsl:for-each> </xsl:otherwise> </xsl:choose> </xsl:otherwise> </xsl:choose> </xsl:copy> </xsl:template> <xsl:template match="/"> <xsl:choose> <xsl:when test="$output='xml'"> <xsl:copy-of select="$annotatedTestSuiteMaster"/> </xsl:when> <xsl:otherwise> <xsl:call-template name="htmlOutput"/> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name="htmlOutput"> <xsl:result-document doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <title>ITS 2.0 Test Suite Dashboard</title> <style type="text/css"> table{ text-align:center; empty-cells:show; } td.firstcolumn{ text-align:right; }</style> </head> <body> <h1>ITS 2.0 Test Suite Dashboard</h1> <p>Version generated: <xsl:value-of select="current-dateTime()"/></p> <h2 id="purpose">Purpose</h2> <p>This document provides a summary of the ITS 2.0 Test Suite:</p> <ul> <li> <a href="#tests-current-state-summary">Current state of tests (summary)</a> </li> <li> <a href="#tests-current-state-details">Current state of tests (details)</a> </li> <li> <a href="#tests-current-state-xml-dump">XML dump of current state</a> </li> </ul> <xsl:call-template name="implementersVersusDatacategories"/> <xsl:call-template name="current-state-details"/> <h2 id="tests-current-state-xml-dump">XML dump of current state</h2> <p>For ease of debugging, <a href="testSuiteDashboard.xml" >testSuiteDashboard.xml</a> is an XML dump of the current state of the test suite.</p> <xsl:result-document href="testSuiteDashboard.xml"> <xsl:copy-of select="$annotatedTestSuiteMaster"/> </xsl:result-document> </body> </html> </xsl:result-document> </xsl:template> <xsl:template name="implementersVersusDatacategories"> <h2 id="tests-current-state-summary">Current state of tests</h2> <xsl:variable name="referenceOutput" select="count($annotatedTestSuiteMaster/my:testSuite/my:dataCategory/my:inputfile)"/> <xsl:variable name="implementersTestsTotal" select="count($annotatedTestSuiteMaster/my:testSuite/my:dataCategory/my:inputfile/my:outputImplementors)"/> <xsl:variable name="testsWithErrors" select="count($annotatedTestSuiteMaster/my:testSuite/my:dataCategory/my:inputfile/my:outputImplementors[my:error])"/> <ul> <li>Total number of input and reference output files: <xsl:value-of select="$referenceOutput"/></li> <li>Total number of tests from all implementers: <xsl:value-of select="$implementersTestsTotal"/></li> <li>Current coverage: <xsl:value-of select="$implementersTestsTotal - $testsWithErrors" /> tests successfully run (<xsl:value-of select="round((($implementersTestsTotal - $testsWithErrors) div $implementersTestsTotal)*100)" />%).</li> </ul> <p>The following table compares actual tests run, versus number of tests to be run per implementer</p> <table border="1" width="100%"> <tr> <td>-</td> <xsl:for-each select="$implemeters"> <td> <xsl:value-of select="."/> </td> </xsl:for-each> </tr> <xsl:for-each select="$datacategories"> <xsl:variable name="currentDatacat" select="."/> <tr> <td class="firstcolumn"> <a href="{concat('#',replace(.,'[\s+,+]',''))}"> <xsl:value-of select="."/> </a> </td> <xsl:for-each select="$implemeters"> <xsl:variable name="currentImplementer" select="."/> <xsl:variable name="numberOfFiles" select="count($annotatedTestSuiteMaster/my:testSuite/my:dataCategory[@name=$currentDatacat]/my:inputfile/my:outputImplementors[@implementer=$currentImplementer])"/> <xsl:variable name="numberOfFilesSuccessfullyRun" select="count($annotatedTestSuiteMaster/my:testSuite/my:dataCategory[@name=$currentDatacat]/my:inputfile/my:outputImplementors[@implementer=$currentImplementer][not(my:error)])"/> <td> <xsl:value-of select="concat($numberOfFilesSuccessfullyRun, '/',$numberOfFiles)"/> </td> </xsl:for-each> </tr> </xsl:for-each> <tr> <td class="firstcolumn">Total number of files</td> <xsl:for-each select="$implemeters"> <xsl:variable name="currentImplementer" select="."/> <xsl:variable name="numberOfFiles" select="count($annotatedTestSuiteMaster/my:testSuite/my:dataCategory/my:inputfile/my:outputImplementors[@implementer=$currentImplementer])"/> <xsl:variable name="numberOfFilesSuccessfullyRun" select="count($annotatedTestSuiteMaster/my:testSuite/my:dataCategory/my:inputfile/my:outputImplementors[@implementer=$currentImplementer][not(my:error)])"/> <td> <xsl:value-of select="concat($numberOfFilesSuccessfullyRun, '/',$numberOfFiles)"/> </td> </xsl:for-each> </tr> </table> </xsl:template> <xsl:template name="current-state-details"> <h2 id="tests-current-state-details">Details of current state</h2> <p>Explanation:</p> <ul> <li><q>N/A</q> = the implementer did not commit to run the test.</li> <li><q>OK</q> = the output file is identical to the reference output file.</li> <li><q>error</q> = an error occurred, e.g. the output file is not available or it is not identical to the reference output file. Move the mouse over <q>error</q> to see details.</li> </ul> <xsl:for-each select="$datacategories"> <xsl:variable name="currentDatacat" select="."/> <h3 id="{replace(.,'[\s+,+]','')}"> <xsl:value-of select="."/> </h3> <table border="1" width="100%"> <tr> <td>-</td> <xsl:for-each select="$implemeters"> <td> <xsl:value-of select="."/> </td> </xsl:for-each> </tr> <xsl:for-each select="$annotatedTestSuiteMaster/my:testSuite/my:dataCategory[@name=$currentDatacat]/my:inputfile"> <xsl:variable name="currentInputFile" select="."/> <xsl:variable name="currentInputFileName" select="tokenize($currentInputFile/@location,'/')[last()]"/> <tr> <td> <xsl:value-of select="$currentInputFileName"/> <br/> <xsl:value-of select="$currentInputFile/my:description"/> </td> <xsl:for-each select="$implemeters"> <xsl:variable name="currentImplementer" select="."/> <td> <xsl:choose> <xsl:when test="not($currentInputFile/my:outputImplementors[@implementer=$currentImplementer]/@location)" >N/A</xsl:when> <xsl:otherwise> <xsl:choose> <xsl:when test="$currentInputFile/my:outputImplementors[@implementer=$currentImplementer]/my:error"> <xsl:variable name="errorList"> <xsl:for-each select="$currentInputFile/my:outputImplementors[@implementer=$currentImplementer]/my:error"> <xsl:number count="."/> <xsl:value-of select="."/> </xsl:for-each> </xsl:variable> <xsl:choose> <xsl:when test="contains($errorList,'outputFileNotFound')">fileNotFound</xsl:when> <xsl:otherwise> <span title="{$errorList}">error</span> </xsl:otherwise> </xsl:choose> </xsl:when> <xsl:otherwise>OK</xsl:otherwise> </xsl:choose> </xsl:otherwise> </xsl:choose> </td> </xsl:for-each> </tr> </xsl:for-each> </table> </xsl:for-each> </xsl:template> </xsl:stylesheet>
Received on Wednesday, 26 December 2012 19:12:35 UTC