curcuru 01/01/26 11:43:34
Modified: test viewHarnessResults.xsl viewResults.xsl Log: Update to use redirect extension to output a mini-summary of your test (or all harness tests') results - comments on new functionality appreciated. Revision Changes Path 1.3 +31 -4 xml-xalan/test/viewHarnessResults.xsl Index: viewHarnessResults.xsl =================================================================== RCS file: /home/cvs/xml-xalan/test/viewHarnessResults.xsl,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- viewHarnessResults.xsl 2000/12/15 21:27:57 1.2 +++ viewHarnessResults.xsl 2001/01/26 19:43:29 1.3 @@ -1,14 +1,26 @@ <?xml version="1.0"?> -<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + version="1.0" + xmlns:lxslt="http://xml.apache.org/xslt" + xmlns:redirect="org.apache.xalan.lib.Redirect" + extension-element-prefixes="redirect"> <xsl:output method="html"/> <!-- FileName: viewHarnessResults.xsl --> <!-- Author: [EMAIL PROTECTED] --> <!-- Purpose: Viewer for multiple XSLTestHarness results put into simple HTML pages --> <!-- Usage: ...Process -in HarnessResults.xml -xsl MultiViewResults.xsl ... --> -<!-- Where: you've run XSLTestHarness over a number of files ---> +<!-- Where: you've run XSLTestHarness over a number of files --> +<!-- Explicitly declare the redirect extension --> +<lxslt:component prefix="redirect" elements="write open close" functions=""> + <lxslt:script lang="javaclass" src="org.apache.xalan.lib.Redirect"/> +</lxslt:component> + +<!-- ======================================================= --> +<!-- Output mini-summary filename, used in redirect calls in viewResults --> +<xsl:param name="summaryfile">HarnessSummary.xml</xsl:param> + <!-- ======================================================= --> <!-- Include the main results viewer for individual result files --> <!-- Note: depends on being in the same directory --> @@ -53,7 +65,22 @@ <a name="harness-properties"><xsl:text>Harness-level System Properties:</xsl:text></a> <xsl:apply-templates select="hashtable"></xsl:apply-templates> <H3><xsl:text>Individual resultfile(s) follow:</xsl:text></H3> - <xsl:apply-templates select="testcase/resultsfile/@fileRef"></xsl:apply-templates> + <!-- Before processing any files, open up a summary file to + output a mini-summary of results to. --> + <redirect:open select="$summaryfile" file="viewResults-redirected-output.xml"/> + <redirect:write select="$summaryfile" file="viewResults-redirected-output.xml"> + <xsl:text disable-output-escaping="yes"><?xml version="1.0"?> </xsl:text> + <xsl:text disable-output-escaping="yes"><resultsfile logfile="</xsl:text> + <xsl:value-of select="$summaryfile"/> + <xsl:text disable-output-escaping="yes">"> </xsl:text> + </redirect:write> + + <xsl:apply-templates select="testcase/resultsfile/@fileRef"></xsl:apply-templates> + + <redirect:write select="$summaryfile" file="viewResults-redirected-output.xml"> + <xsl:text disable-output-escaping="yes"> </resultsfile></xsl:text> + </redirect:write> + <redirect:close select="$summaryfile" file="viewResults-redirected-output.xml"/> </BODY> </HTML> 1.6 +48 -9 xml-xalan/test/viewResults.xsl Index: viewResults.xsl =================================================================== RCS file: /home/cvs/xml-xalan/test/viewResults.xsl,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- viewResults.xsl 2000/12/15 15:51:10 1.5 +++ viewResults.xsl 2001/01/26 19:43:30 1.6 @@ -1,5 +1,9 @@ <?xml version="1.0"?> -<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + version="1.0" + xmlns:lxslt="http://xml.apache.org/xslt" + xmlns:redirect="org.apache.xalan.lib.Redirect" + extension-element-prefixes="redirect"> <xsl:output method="html"/> <!-- FileName: viewResults.xsl --> @@ -11,6 +15,12 @@ attributes, and values, copied from relevant Java code --> <xsl:include href="resultsConstants.xsl"/> +<!-- Explicitly declare the redirect extension --> +<lxslt:component prefix="redirect" elements="write open close" functions=""> + <lxslt:script lang="javaclass" src="org.apache.xalan.lib.Redirect"/> +</lxslt:component> + + <!-- ======================================================= --> <!-- INPUT PARAMETERS can be set from external command lines --> <!-- When set to true, skips (does not) output any [EMAIL PROTECTED]'PASS'] --> @@ -31,6 +41,9 @@ <xsl:param name="errfailcolor">red</xsl:param> <xsl:param name="knownfailcolor">pink</xsl:param> +<!-- File to redirect mini-summary to --> +<xsl:param name="summaryfile">summary_.xml</xsl:param> + <!-- ================================== --> <!-- Main template-standalone: output an HTML page --> <!-- The resultfile element must be present. It should include one or more @@ -319,6 +332,14 @@ <xsl:template name="restable"> <xsl:param name="linkname" select="none"/> + <!-- Note this is horribly inefficent, but it gets the job done. + I'd welcome any optimizations for this stylesheet! + --> + <xsl:variable name="passcount" select="count(//[EMAIL PROTECTED])"/> + <xsl:variable name="failcount" select="count(//[EMAIL PROTECTED])"/> + <xsl:variable name="errrcount" select="count(//[EMAIL PROTECTED])"/> + <xsl:variable name="ambgcount" select="count(//[EMAIL PROTECTED])"/> + <xsl:variable name="incpcount" select="count(//[EMAIL PROTECTED])"/> <TABLE FRAME="box" BORDER="1" CELLPADDING="2" WIDTH="80%"> <TR> <TD> @@ -343,36 +364,54 @@ <TD><xsl:text>Pass</xsl:text></TD> <TD><xsl:value-of select="./[EMAIL PROTECTED]'passCount[CASES]']/longval"/></TD> <TD><xsl:value-of select="[EMAIL PROTECTED]'passCount[CHECKS]']/longval"/></TD> - <!-- Note this is horribly inefficent, but it gets the job done. - I'd welcome any optimizations for this stylesheet! - --> - <TD><xsl:value-of select="count(//[EMAIL PROTECTED])"/></TD> + <TD><xsl:value-of select="$passcount"/></TD> </TR> <TR> <TD><B><xsl:text>Fail</xsl:text></B></TD> <TD><xsl:value-of select="./[EMAIL PROTECTED]'failCount[CASES]']/longval"/></TD> <TD><xsl:value-of select="[EMAIL PROTECTED]'failCount[CHECKS]']/longval"/></TD> - <TD><xsl:value-of select="count(//[EMAIL PROTECTED])"/></TD> + <TD><xsl:value-of select="$failcount"/></TD> </TR> <TR> <TD><I><xsl:text>Error</xsl:text></I></TD> <TD><xsl:value-of select="./[EMAIL PROTECTED]'errrCount[CASES]']/longval"/></TD> <TD><xsl:value-of select="[EMAIL PROTECTED]'errrCount[CHECKS]']/longval"/></TD> - <TD><xsl:value-of select="count(//[EMAIL PROTECTED])"/></TD> + <TD><xsl:value-of select="$errrcount"/></TD> </TR> <TR> <TD><I><xsl:text>Ambiguous</xsl:text></I></TD> <TD><xsl:value-of select="./[EMAIL PROTECTED]'ambgCount[CASES]']/longval"/></TD> <TD><xsl:value-of select="[EMAIL PROTECTED]'ambgCount[CHECKS]']/longval"/></TD> - <TD><xsl:value-of select="count(//[EMAIL PROTECTED])"/></TD> + <TD><xsl:value-of select="$ambgcount"/></TD> </TR> <TR> <TD><I><xsl:text>Incomplete</xsl:text></I></TD> <TD><xsl:value-of select="./[EMAIL PROTECTED]'incpCount[CASES]']/longval"/></TD> <TD><xsl:value-of select="[EMAIL PROTECTED]'incpCount[CHECKS]']/longval"/></TD> - <TD><xsl:value-of select="count(//[EMAIL PROTECTED])"/></TD> + <TD><xsl:value-of select="$incpcount"/></TD> </TR> </TABLE><BR/> + <redirect:write select="$summaryfile" file="viewResults-redirected-output.xml"> + <xsl:element name="summary"> + <xsl:attribute name="filename"><xsl:value-of select="$linkname"/></xsl:attribute> + <xsl:if test="$passcount"> + <xsl:text>P:</xsl:text><xsl:value-of select="$passcount"/> + </xsl:if> + <xsl:if test="$failcount"> + <xsl:text>, F:</xsl:text><xsl:value-of select="$failcount"/> + </xsl:if> + <xsl:if test="$errrcount"> + <xsl:text>, E:</xsl:text><xsl:value-of select="$errrcount"/> + </xsl:if> + <xsl:if test="$ambgcount"> + <xsl:text>, A:</xsl:text><xsl:value-of select="$ambgcount"/> + </xsl:if> + <xsl:if test="$incpcount"> + <xsl:text>, I:</xsl:text><xsl:value-of select="$incpcount"/> + </xsl:if> + </xsl:element> + </redirect:write> + </xsl:template> <!-- Override default text node processing, so statistics, arbitrary messages, and other stuff is skipped -->
