1*d780102eSjmmv<?xml version="1.0" encoding="ISO-8859-1"?> 2*d780102eSjmmv<!DOCTYPE xsl:stylesheet [<!ENTITY nbsp " ">]> 3*d780102eSjmmv 4*d780102eSjmmv<!-- 5*d780102eSjmmv ++ Automated Testing Framework (atf) 6*d780102eSjmmv ++ 7*d780102eSjmmv ++ Copyright (c) 2007 The NetBSD Foundation, Inc. 8*d780102eSjmmv ++ All rights reserved. 9*d780102eSjmmv ++ 10*d780102eSjmmv ++ Redistribution and use in source and binary forms, with or without 11*d780102eSjmmv ++ modification, are permitted provided that the following conditions 12*d780102eSjmmv ++ are met: 13*d780102eSjmmv ++ 1. Redistributions of source code must retain the above copyright 14*d780102eSjmmv ++ notice, this list of conditions and the following disclaimer. 15*d780102eSjmmv ++ 2. Redistributions in binary form must reproduce the above copyright 16*d780102eSjmmv ++ notice, this list of conditions and the following disclaimer in the 17*d780102eSjmmv ++ documentation and/or other materials provided with the distribution. 18*d780102eSjmmv ++ 19*d780102eSjmmv ++ THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND 20*d780102eSjmmv ++ CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, 21*d780102eSjmmv ++ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 22*d780102eSjmmv ++ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 23*d780102eSjmmv ++ IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY 24*d780102eSjmmv ++ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25*d780102eSjmmv ++ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 26*d780102eSjmmv ++ GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 27*d780102eSjmmv ++ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER 28*d780102eSjmmv ++ IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 29*d780102eSjmmv ++ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN 30*d780102eSjmmv ++ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31*d780102eSjmmv --> 32*d780102eSjmmv 33*d780102eSjmmv<xsl:stylesheet version="1.0" 34*d780102eSjmmv xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 35*d780102eSjmmv 36*d780102eSjmmv <!-- Parameters that can be overriden by the user. --> 37*d780102eSjmmv <xsl:param name="global.css">tests-results.css</xsl:param> 38*d780102eSjmmv <xsl:param name="global.title">ATF Tests Results</xsl:param> 39*d780102eSjmmv 40*d780102eSjmmv <xsl:variable name="ntps" 41*d780102eSjmmv select="count(tests-results/tp)" /> 42*d780102eSjmmv <xsl:variable name="ntps-failed" 43*d780102eSjmmv select="count(tests-results/tp/failed)" /> 44*d780102eSjmmv <xsl:variable name="ntcs" 45*d780102eSjmmv select="count(tests-results/tp/tc)" /> 46*d780102eSjmmv <xsl:variable name="ntcs-passed" 47*d780102eSjmmv select="count(tests-results/tp/tc/passed)" /> 48*d780102eSjmmv <xsl:variable name="ntcs-failed" 49*d780102eSjmmv select="count(tests-results/tp/tc/failed)" /> 50*d780102eSjmmv <xsl:variable name="ntcs-skipped" 51*d780102eSjmmv select="count(tests-results/tp/tc/skipped)" /> 52*d780102eSjmmv <xsl:variable name="ntcs-xfail" 53*d780102eSjmmv select="count(tests-results/tp/tc/expected_death) + 54*d780102eSjmmv count(tests-results/tp/tc/expected_exit) + 55*d780102eSjmmv count(tests-results/tp/tc/expected_failure) + 56*d780102eSjmmv count(tests-results/tp/tc/expected_signal) + 57*d780102eSjmmv count(tests-results/tp/tc/expected_timeout)" /> 58*d780102eSjmmv 59*d780102eSjmmv <xsl:template match="/"> 60*d780102eSjmmv <xsl:copy> 61*d780102eSjmmv <xsl:apply-templates select="@*|node()" /> 62*d780102eSjmmv </xsl:copy> 63*d780102eSjmmv </xsl:template> 64*d780102eSjmmv 65*d780102eSjmmv <xsl:template match="tests-results"> 66*d780102eSjmmv <html xmlns="http://www.w3.org/1999/xhtml"> 67*d780102eSjmmv <head> 68*d780102eSjmmv <meta http-equiv="Content-Type" 69*d780102eSjmmv content="text/html; charset=iso-8859-1" /> 70*d780102eSjmmv <link rel="stylesheet" type="text/css" href="{$global.css}" /> 71*d780102eSjmmv 72*d780102eSjmmv <title><xsl:value-of select="$global.title" /></title> 73*d780102eSjmmv </head> 74*d780102eSjmmv 75*d780102eSjmmv <body> 76*d780102eSjmmv <h1><xsl:value-of select="$global.title" /></h1> 77*d780102eSjmmv 78*d780102eSjmmv <xsl:call-template name="info-top" /> 79*d780102eSjmmv <xsl:call-template name="tcs-summary" /> 80*d780102eSjmmv <xsl:if test="$ntcs-failed > 0"> 81*d780102eSjmmv <xsl:call-template name="failed-tcs-summary" /> 82*d780102eSjmmv </xsl:if> 83*d780102eSjmmv <xsl:if test="$ntcs-xfail > 0"> 84*d780102eSjmmv <xsl:call-template name="xfail-tcs-summary" /> 85*d780102eSjmmv </xsl:if> 86*d780102eSjmmv <xsl:if test="$ntcs-skipped > 0"> 87*d780102eSjmmv <xsl:call-template name="skipped-tcs-summary" /> 88*d780102eSjmmv </xsl:if> 89*d780102eSjmmv <xsl:if test="$ntps-failed > 0"> 90*d780102eSjmmv <xsl:call-template name="failed-tps-summary" /> 91*d780102eSjmmv </xsl:if> 92*d780102eSjmmv <xsl:call-template name="info-bottom" /> 93*d780102eSjmmv 94*d780102eSjmmv <xsl:apply-templates select="tp" mode="details" /> 95*d780102eSjmmv </body> 96*d780102eSjmmv </html> 97*d780102eSjmmv </xsl:template> 98*d780102eSjmmv 99*d780102eSjmmv <xsl:template name="info-top"> 100*d780102eSjmmv <h2>Execution summary</h2> 101*d780102eSjmmv 102*d780102eSjmmv <table class="summary"> 103*d780102eSjmmv <tr> 104*d780102eSjmmv <th class="nobr"><p>Item</p></th> 105*d780102eSjmmv <th class="nobr"><p>Value</p></th> 106*d780102eSjmmv </tr> 107*d780102eSjmmv 108*d780102eSjmmv <tr class="group"> 109*d780102eSjmmv <td colspan="2"><p>ATF</p></td> 110*d780102eSjmmv </tr> 111*d780102eSjmmv <tr class="entry"> 112*d780102eSjmmv <td><p>Version</p></td> 113*d780102eSjmmv <td><p><xsl:apply-templates 114*d780102eSjmmv select="info[@class = 'atf.version']" /></p></td> 115*d780102eSjmmv </tr> 116*d780102eSjmmv 117*d780102eSjmmv <tr class="group"> 118*d780102eSjmmv <td colspan="2"><p>Timings</p></td> 119*d780102eSjmmv </tr> 120*d780102eSjmmv <tr class="entry"> 121*d780102eSjmmv <td><p>Start time of tests</p></td> 122*d780102eSjmmv <td><p><xsl:apply-templates 123*d780102eSjmmv select="info[@class = 'time.start']" /></p></td> 124*d780102eSjmmv </tr> 125*d780102eSjmmv <tr class="entry"> 126*d780102eSjmmv <td><p>End time of tests</p></td> 127*d780102eSjmmv <td><p><xsl:apply-templates 128*d780102eSjmmv select="info[@class = 'time.end']" /></p></td> 129*d780102eSjmmv </tr> 130*d780102eSjmmv 131*d780102eSjmmv <tr class="group"> 132*d780102eSjmmv <td colspan="2"><p>System information</p></td> 133*d780102eSjmmv </tr> 134*d780102eSjmmv <tr class="entry"> 135*d780102eSjmmv <td><p>Host name</p></td> 136*d780102eSjmmv <td><p><xsl:apply-templates 137*d780102eSjmmv select="info[@class = 'uname.nodename']" /></p></td> 138*d780102eSjmmv </tr> 139*d780102eSjmmv <tr class="entry"> 140*d780102eSjmmv <td><p>Operating system</p></td> 141*d780102eSjmmv <td><p><xsl:apply-templates 142*d780102eSjmmv select="info[@class = 'uname.sysname']" /></p></td> 143*d780102eSjmmv </tr> 144*d780102eSjmmv <tr class="entry"> 145*d780102eSjmmv <td><p>Operating system release</p></td> 146*d780102eSjmmv <td><p><xsl:apply-templates 147*d780102eSjmmv select="info[@class = 'uname.release']" /></p></td> 148*d780102eSjmmv </tr> 149*d780102eSjmmv <tr class="entry"> 150*d780102eSjmmv <td><p>Operating system version</p></td> 151*d780102eSjmmv <td><p><xsl:apply-templates 152*d780102eSjmmv select="info[@class = 'uname.version']" /></p></td> 153*d780102eSjmmv </tr> 154*d780102eSjmmv <tr class="entry"> 155*d780102eSjmmv <td><p>Platform</p></td> 156*d780102eSjmmv <td><p><xsl:apply-templates 157*d780102eSjmmv select="info[@class = 'uname.machine']" /></p></td> 158*d780102eSjmmv </tr> 159*d780102eSjmmv 160*d780102eSjmmv <tr class="group"> 161*d780102eSjmmv <td colspan="2"><p>Tests results</p></td> 162*d780102eSjmmv </tr> 163*d780102eSjmmv <tr class="entry"> 164*d780102eSjmmv <td><p>Root</p></td> 165*d780102eSjmmv <td><p><xsl:value-of 166*d780102eSjmmv select="info[@class = 'tests.root']" /></p></td> 167*d780102eSjmmv </tr> 168*d780102eSjmmv <tr class="entry"> 169*d780102eSjmmv <td><p>Test programs</p></td> 170*d780102eSjmmv <td class="numeric"><p><xsl:value-of select="$ntps" /></p></td> 171*d780102eSjmmv </tr> 172*d780102eSjmmv <tr class="entry"> 173*d780102eSjmmv <xsl:choose> 174*d780102eSjmmv <xsl:when test="$ntps-failed > 0"> 175*d780102eSjmmv <td><p><a href="#failed-tps-summary">Bogus test 176*d780102eSjmmv programs</a></p></td> 177*d780102eSjmmv <td class="numeric-error"> 178*d780102eSjmmv <p><xsl:value-of select="$ntps-failed" /></p> 179*d780102eSjmmv </td> 180*d780102eSjmmv </xsl:when> 181*d780102eSjmmv <xsl:otherwise> 182*d780102eSjmmv <td><p>Bogus test programs</p></td> 183*d780102eSjmmv <td class="numeric"> 184*d780102eSjmmv <p><xsl:value-of select="$ntps-failed" /></p> 185*d780102eSjmmv </td> 186*d780102eSjmmv </xsl:otherwise> 187*d780102eSjmmv </xsl:choose> 188*d780102eSjmmv </tr> 189*d780102eSjmmv <tr class="entry"> 190*d780102eSjmmv <td><p>Test cases</p></td> 191*d780102eSjmmv <td class="numeric"><p><xsl:value-of select="$ntcs" /></p></td> 192*d780102eSjmmv </tr> 193*d780102eSjmmv <tr class="entry"> 194*d780102eSjmmv <td><p>Passed test cases</p></td> 195*d780102eSjmmv <td class="numeric"><p><xsl:value-of select="$ntcs-passed" /></p></td> 196*d780102eSjmmv </tr> 197*d780102eSjmmv <tr class="entry"> 198*d780102eSjmmv <xsl:choose> 199*d780102eSjmmv <xsl:when test="$ntcs-failed > 0"> 200*d780102eSjmmv <td><p><a href="#failed-tcs-summary">Failed test 201*d780102eSjmmv cases</a></p></td> 202*d780102eSjmmv <td class="numeric-error"> 203*d780102eSjmmv <p><xsl:value-of select="$ntcs-failed" /></p> 204*d780102eSjmmv </td> 205*d780102eSjmmv </xsl:when> 206*d780102eSjmmv <xsl:otherwise> 207*d780102eSjmmv <td><p>Failed test cases</p></td> 208*d780102eSjmmv <td class="numeric"> 209*d780102eSjmmv <p><xsl:value-of select="$ntcs-failed" /></p> 210*d780102eSjmmv </td> 211*d780102eSjmmv </xsl:otherwise> 212*d780102eSjmmv </xsl:choose> 213*d780102eSjmmv </tr> 214*d780102eSjmmv <tr class="entry"> 215*d780102eSjmmv <xsl:choose> 216*d780102eSjmmv <xsl:when test="$ntcs-xfail > 0"> 217*d780102eSjmmv <td><p><a href="#xfail-tcs-summary">Expected 218*d780102eSjmmv failures</a></p></td> 219*d780102eSjmmv <td class="numeric-warning"> 220*d780102eSjmmv <p><xsl:value-of select="$ntcs-xfail" /></p> 221*d780102eSjmmv </td> 222*d780102eSjmmv </xsl:when> 223*d780102eSjmmv <xsl:otherwise> 224*d780102eSjmmv <td><p>Expected failures</p></td> 225*d780102eSjmmv <td class="numeric"> 226*d780102eSjmmv <p><xsl:value-of select="$ntcs-xfail" /></p> 227*d780102eSjmmv </td> 228*d780102eSjmmv </xsl:otherwise> 229*d780102eSjmmv </xsl:choose> 230*d780102eSjmmv </tr> 231*d780102eSjmmv <tr class="entry"> 232*d780102eSjmmv <xsl:choose> 233*d780102eSjmmv <xsl:when test="$ntcs-skipped > 0"> 234*d780102eSjmmv <td><p><a href="#skipped-tcs-summary">Skipped test 235*d780102eSjmmv cases</a></p></td> 236*d780102eSjmmv <td class="numeric-warning"> 237*d780102eSjmmv <p><xsl:value-of select="$ntcs-skipped" /></p> 238*d780102eSjmmv </td> 239*d780102eSjmmv </xsl:when> 240*d780102eSjmmv <xsl:otherwise> 241*d780102eSjmmv <td><p>Skipped test cases</p></td> 242*d780102eSjmmv <td class="numeric"> 243*d780102eSjmmv <p><xsl:value-of select="$ntcs-skipped" /></p> 244*d780102eSjmmv </td> 245*d780102eSjmmv </xsl:otherwise> 246*d780102eSjmmv </xsl:choose> 247*d780102eSjmmv </tr> 248*d780102eSjmmv 249*d780102eSjmmv <tr class="group"> 250*d780102eSjmmv <td colspan="2"><p><a href="#execution-details">See more execution 251*d780102eSjmmv details</a></p></td> 252*d780102eSjmmv </tr> 253*d780102eSjmmv </table> 254*d780102eSjmmv </xsl:template> 255*d780102eSjmmv 256*d780102eSjmmv <xsl:template name="info-bottom"> 257*d780102eSjmmv <a name="execution-details" /> 258*d780102eSjmmv <h2 id="execution-details">Execution details</h2> 259*d780102eSjmmv 260*d780102eSjmmv <h3>Environment variables</h3> 261*d780102eSjmmv 262*d780102eSjmmv <ul> 263*d780102eSjmmv <xsl:apply-templates select="info[@class = 'env']"> 264*d780102eSjmmv <xsl:sort /> 265*d780102eSjmmv </xsl:apply-templates> 266*d780102eSjmmv </ul> 267*d780102eSjmmv </xsl:template> 268*d780102eSjmmv 269*d780102eSjmmv <xsl:template match="info[@class = 'env']"> 270*d780102eSjmmv <li> 271*d780102eSjmmv <p><xsl:apply-templates /></p> 272*d780102eSjmmv </li> 273*d780102eSjmmv </xsl:template> 274*d780102eSjmmv 275*d780102eSjmmv <xsl:template name="tcs-summary"> 276*d780102eSjmmv <h2>Test cases summary</h2> 277*d780102eSjmmv 278*d780102eSjmmv <table class="tcs-summary"> 279*d780102eSjmmv <tr> 280*d780102eSjmmv <th class="nobr"><p>Test case</p></th> 281*d780102eSjmmv <th class="nobr"><p>Result</p></th> 282*d780102eSjmmv <th class="nobr"><p>Reason</p></th> 283*d780102eSjmmv <th class="nobr"><p>Duration</p></th> 284*d780102eSjmmv </tr> 285*d780102eSjmmv <xsl:apply-templates select="tp" mode="summary"> 286*d780102eSjmmv <xsl:with-param name="which">all</xsl:with-param> 287*d780102eSjmmv </xsl:apply-templates> 288*d780102eSjmmv </table> 289*d780102eSjmmv </xsl:template> 290*d780102eSjmmv 291*d780102eSjmmv <xsl:template name="xfail-tcs-summary"> 292*d780102eSjmmv <a name="xfail-tcs-summary" /> 293*d780102eSjmmv <h2 id="xfail-tcs-summary">Expected failures summary</h2> 294*d780102eSjmmv 295*d780102eSjmmv <table class="tcs-summary"> 296*d780102eSjmmv <tr> 297*d780102eSjmmv <th class="nobr"><p>Test case</p></th> 298*d780102eSjmmv <th class="nobr"><p>Result</p></th> 299*d780102eSjmmv <th class="nobr"><p>Reason</p></th> 300*d780102eSjmmv <th class="nobr"><p>Duration</p></th> 301*d780102eSjmmv </tr> 302*d780102eSjmmv <xsl:apply-templates select="tp" mode="summary"> 303*d780102eSjmmv <xsl:with-param name="which">xfail</xsl:with-param> 304*d780102eSjmmv </xsl:apply-templates> 305*d780102eSjmmv </table> 306*d780102eSjmmv </xsl:template> 307*d780102eSjmmv 308*d780102eSjmmv <xsl:template name="failed-tcs-summary"> 309*d780102eSjmmv <a name="failed-tcs-summary" /> 310*d780102eSjmmv <h2 id="failed-tcs-summary">Failed test cases summary</h2> 311*d780102eSjmmv 312*d780102eSjmmv <table class="tcs-summary"> 313*d780102eSjmmv <tr> 314*d780102eSjmmv <th class="nobr"><p>Test case</p></th> 315*d780102eSjmmv <th class="nobr"><p>Result</p></th> 316*d780102eSjmmv <th class="nobr"><p>Reason</p></th> 317*d780102eSjmmv <th class="nobr"><p>Duration</p></th> 318*d780102eSjmmv </tr> 319*d780102eSjmmv <xsl:apply-templates select="tp" mode="summary"> 320*d780102eSjmmv <xsl:with-param name="which">failed</xsl:with-param> 321*d780102eSjmmv </xsl:apply-templates> 322*d780102eSjmmv </table> 323*d780102eSjmmv </xsl:template> 324*d780102eSjmmv 325*d780102eSjmmv <xsl:template name="failed-tps-summary"> 326*d780102eSjmmv <a name="failed-tps-summary" /> 327*d780102eSjmmv <h2 id="failed-tps-summary">Bogus test programs summary</h2> 328*d780102eSjmmv 329*d780102eSjmmv <table class="tcs-summary"> 330*d780102eSjmmv <tr> 331*d780102eSjmmv <th class="nobr">Test program</th> 332*d780102eSjmmv </tr> 333*d780102eSjmmv <xsl:apply-templates select="tp" mode="summary"> 334*d780102eSjmmv <xsl:with-param name="which">bogus</xsl:with-param> 335*d780102eSjmmv </xsl:apply-templates> 336*d780102eSjmmv </table> 337*d780102eSjmmv </xsl:template> 338*d780102eSjmmv 339*d780102eSjmmv <xsl:template name="skipped-tcs-summary"> 340*d780102eSjmmv <a name="skipped-tcs-summary" /> 341*d780102eSjmmv <h2 id="skipped-tcs-summary">Skipped test cases summary</h2> 342*d780102eSjmmv 343*d780102eSjmmv <table class="tcs-summary"> 344*d780102eSjmmv <tr> 345*d780102eSjmmv <th class="nobr"><p>Test case</p></th> 346*d780102eSjmmv <th class="nobr"><p>Result</p></th> 347*d780102eSjmmv <th class="nobr"><p>Reason</p></th> 348*d780102eSjmmv <th class="nobr"><p>Duration</p></th> 349*d780102eSjmmv </tr> 350*d780102eSjmmv <xsl:apply-templates select="tp" mode="summary"> 351*d780102eSjmmv <xsl:with-param name="which">skipped</xsl:with-param> 352*d780102eSjmmv </xsl:apply-templates> 353*d780102eSjmmv </table> 354*d780102eSjmmv </xsl:template> 355*d780102eSjmmv 356*d780102eSjmmv <xsl:template match="tp" mode="summary"> 357*d780102eSjmmv <xsl:param name="which" /> 358*d780102eSjmmv 359*d780102eSjmmv <xsl:variable name="chosen"> 360*d780102eSjmmv <xsl:choose> 361*d780102eSjmmv <xsl:when test="$which = 'bogus' and failed">yes</xsl:when> 362*d780102eSjmmv <xsl:when test="$which = 'passed' and tc/passed">yes</xsl:when> 363*d780102eSjmmv <xsl:when test="$which = 'failed' and tc/failed">yes</xsl:when> 364*d780102eSjmmv <xsl:when test="$which = 'xfail' and 365*d780102eSjmmv tc/expected_death">yes</xsl:when> 366*d780102eSjmmv <xsl:when test="$which = 'xfail' and 367*d780102eSjmmv tc/expected_exit">yes</xsl:when> 368*d780102eSjmmv <xsl:when test="$which = 'xfail' and 369*d780102eSjmmv tc/expected_failure">yes</xsl:when> 370*d780102eSjmmv <xsl:when test="$which = 'xfail' and 371*d780102eSjmmv tc/expected_signal">yes</xsl:when> 372*d780102eSjmmv <xsl:when test="$which = 'xfail' and 373*d780102eSjmmv tc/expected_timeout">yes</xsl:when> 374*d780102eSjmmv <xsl:when test="$which = 'skipped' and tc/skipped">yes</xsl:when> 375*d780102eSjmmv <xsl:when test="$which = 'all'">yes</xsl:when> 376*d780102eSjmmv <xsl:otherwise>no</xsl:otherwise> 377*d780102eSjmmv </xsl:choose> 378*d780102eSjmmv </xsl:variable> 379*d780102eSjmmv 380*d780102eSjmmv <xsl:if test="$chosen = 'yes'"> 381*d780102eSjmmv <tr> 382*d780102eSjmmv <td class="tp-id" colspan="3"> 383*d780102eSjmmv <p><xsl:value-of select="@id" /></p> 384*d780102eSjmmv </td> 385*d780102eSjmmv <td class="tp-numeric"> 386*d780102eSjmmv <p><xsl:value-of select="tp-time" />s</p> 387*d780102eSjmmv </td> 388*d780102eSjmmv </tr> 389*d780102eSjmmv <xsl:if test="$which != 'bogus'"> 390*d780102eSjmmv <xsl:apply-templates select="tc" mode="summary"> 391*d780102eSjmmv <xsl:with-param name="which" select="$which" /> 392*d780102eSjmmv </xsl:apply-templates> 393*d780102eSjmmv </xsl:if> 394*d780102eSjmmv </xsl:if> 395*d780102eSjmmv </xsl:template> 396*d780102eSjmmv 397*d780102eSjmmv <xsl:template match="tc" mode="summary"> 398*d780102eSjmmv <xsl:param name="which" /> 399*d780102eSjmmv 400*d780102eSjmmv <xsl:variable name="full-id" 401*d780102eSjmmv select="concat(translate(../@id, '/', '_'), '_', @id)" /> 402*d780102eSjmmv 403*d780102eSjmmv <xsl:variable name="chosen"> 404*d780102eSjmmv <xsl:choose> 405*d780102eSjmmv <xsl:when test="$which = 'passed' and ./passed">yes</xsl:when> 406*d780102eSjmmv <xsl:when test="$which = 'failed' and ./failed">yes</xsl:when> 407*d780102eSjmmv <xsl:when test="$which = 'xfail' and 408*d780102eSjmmv ./expected_death">yes</xsl:when> 409*d780102eSjmmv <xsl:when test="$which = 'xfail' and 410*d780102eSjmmv ./expected_exit">yes</xsl:when> 411*d780102eSjmmv <xsl:when test="$which = 'xfail' and 412*d780102eSjmmv ./expected_failure">yes</xsl:when> 413*d780102eSjmmv <xsl:when test="$which = 'xfail' and 414*d780102eSjmmv ./expected_signal">yes</xsl:when> 415*d780102eSjmmv <xsl:when test="$which = 'xfail' and 416*d780102eSjmmv ./expected_timeout">yes</xsl:when> 417*d780102eSjmmv <xsl:when test="$which = 'skipped' and ./skipped">yes</xsl:when> 418*d780102eSjmmv <xsl:when test="$which = 'all'">yes</xsl:when> 419*d780102eSjmmv <xsl:otherwise>no</xsl:otherwise> 420*d780102eSjmmv </xsl:choose> 421*d780102eSjmmv </xsl:variable> 422*d780102eSjmmv 423*d780102eSjmmv <xsl:if test="$chosen = 'yes'"> 424*d780102eSjmmv <tr> 425*d780102eSjmmv <td class="tc-id"> 426*d780102eSjmmv <xsl:choose> 427*d780102eSjmmv <xsl:when test="expected_death|expected_exit|expected_failure| 428*d780102eSjmmv expected_signal|expected_timeout|failed|skipped"> 429*d780102eSjmmv <p><a href="#{$full-id}"><xsl:value-of select="@id" /></a></p> 430*d780102eSjmmv </xsl:when> 431*d780102eSjmmv <xsl:otherwise> 432*d780102eSjmmv <p><xsl:value-of select="@id" /></p> 433*d780102eSjmmv </xsl:otherwise> 434*d780102eSjmmv </xsl:choose> 435*d780102eSjmmv </td> 436*d780102eSjmmv <xsl:apply-templates select="expected_death|expected_exit| 437*d780102eSjmmv expected_failure|expected_timeout| 438*d780102eSjmmv expected_signal|failed|passed| 439*d780102eSjmmv skipped" mode="tc" /> 440*d780102eSjmmv <td class="numeric"> 441*d780102eSjmmv <p><xsl:value-of select="tc-time" />s</p> 442*d780102eSjmmv </td> 443*d780102eSjmmv </tr> 444*d780102eSjmmv </xsl:if> 445*d780102eSjmmv </xsl:template> 446*d780102eSjmmv 447*d780102eSjmmv <xsl:template match="passed" mode="tc"> 448*d780102eSjmmv <td class="tcr-passed"><p class="nobr">Passed</p></td> 449*d780102eSjmmv <td class="tcr-reason"><p>N/A</p></td> 450*d780102eSjmmv </xsl:template> 451*d780102eSjmmv 452*d780102eSjmmv <xsl:template match="expected_death" mode="tc"> 453*d780102eSjmmv <td class="tcr-xfail"><p class="nobr">Expected death</p></td> 454*d780102eSjmmv <td class="tcr-reason"><p><xsl:apply-templates /></p></td> 455*d780102eSjmmv </xsl:template> 456*d780102eSjmmv 457*d780102eSjmmv <xsl:template match="expected_exit" mode="tc"> 458*d780102eSjmmv <td class="tcr-xfail"><p class="nobr">Expected exit</p></td> 459*d780102eSjmmv <td class="tcr-reason"><p><xsl:apply-templates /></p></td> 460*d780102eSjmmv </xsl:template> 461*d780102eSjmmv 462*d780102eSjmmv <xsl:template match="expected_failure" mode="tc"> 463*d780102eSjmmv <td class="tcr-xfail"><p class="nobr">Expected failure</p></td> 464*d780102eSjmmv <td class="tcr-reason"><p><xsl:apply-templates /></p></td> 465*d780102eSjmmv </xsl:template> 466*d780102eSjmmv 467*d780102eSjmmv <xsl:template match="expected_timeout" mode="tc"> 468*d780102eSjmmv <td class="tcr-xfail"><p class="nobr">Expected timeout</p></td> 469*d780102eSjmmv <td class="tcr-reason"><p><xsl:apply-templates /></p></td> 470*d780102eSjmmv </xsl:template> 471*d780102eSjmmv 472*d780102eSjmmv <xsl:template match="expected_signal" mode="tc"> 473*d780102eSjmmv <td class="tcr-xfail"><p class="nobr">Expected signal</p></td> 474*d780102eSjmmv <td class="tcr-reason"><p><xsl:apply-templates /></p></td> 475*d780102eSjmmv </xsl:template> 476*d780102eSjmmv 477*d780102eSjmmv <xsl:template match="failed" mode="tc"> 478*d780102eSjmmv <td class="tcr-failed"><p class="nobr">Failed</p></td> 479*d780102eSjmmv <td class="tcr-reason"><p><xsl:apply-templates /></p></td> 480*d780102eSjmmv </xsl:template> 481*d780102eSjmmv 482*d780102eSjmmv <xsl:template match="skipped" mode="tc"> 483*d780102eSjmmv <td class="tcr-skipped"><p class="nobr">Skipped</p></td> 484*d780102eSjmmv <td class="tcr-reason"><p><xsl:apply-templates /></p></td> 485*d780102eSjmmv </xsl:template> 486*d780102eSjmmv 487*d780102eSjmmv <xsl:template match="tp" mode="details"> 488*d780102eSjmmv <xsl:apply-templates select="tc[expected_death|expected_exit| 489*d780102eSjmmv expected_failure|expected_signal| 490*d780102eSjmmv expected_timeout|failed|skipped]" 491*d780102eSjmmv mode="details" /> 492*d780102eSjmmv </xsl:template> 493*d780102eSjmmv 494*d780102eSjmmv <xsl:template match="failed" mode="details"> 495*d780102eSjmmv <p class="term"><strong>FAILED</strong>: <xsl:apply-templates /></p> 496*d780102eSjmmv </xsl:template> 497*d780102eSjmmv 498*d780102eSjmmv <xsl:template match="expected_death|expected_exit|expected_failure| 499*d780102eSjmmv expected_signal|expected_timeout" mode="details"> 500*d780102eSjmmv <p class="term"><strong>XFAIL</strong>: <xsl:apply-templates /></p> 501*d780102eSjmmv </xsl:template> 502*d780102eSjmmv 503*d780102eSjmmv <xsl:template match="skipped" mode="details"> 504*d780102eSjmmv <p class="term"><strong>SKIPPED</strong>: <xsl:apply-templates /></p> 505*d780102eSjmmv </xsl:template> 506*d780102eSjmmv 507*d780102eSjmmv <xsl:template match="tc" mode="details"> 508*d780102eSjmmv <xsl:variable name="full-id" 509*d780102eSjmmv select="concat(translate(../@id, '/', '_'), '_', @id)" /> 510*d780102eSjmmv 511*d780102eSjmmv <a name="{$full-id}" /> 512*d780102eSjmmv <h2 id="{$full-id}">Test case: 513*d780102eSjmmv <xsl:value-of select="../@id" /><xsl:text>/</xsl:text> 514*d780102eSjmmv <xsl:value-of select="@id" /></h2> 515*d780102eSjmmv 516*d780102eSjmmv <xsl:if test="tc-time"> 517*d780102eSjmmv <p class="details">Duration: 518*d780102eSjmmv <xsl:apply-templates select="tc-time" mode="details" /></p> 519*d780102eSjmmv </xsl:if> 520*d780102eSjmmv 521*d780102eSjmmv <h3>Termination reason</h3> 522*d780102eSjmmv <xsl:apply-templates select="expected_death|expected_exit|expected_failure| 523*d780102eSjmmv expected_signal|expected_timeout| 524*d780102eSjmmv failed|skipped" 525*d780102eSjmmv mode="details" /> 526*d780102eSjmmv 527*d780102eSjmmv <xsl:if test="so"> 528*d780102eSjmmv <h3>Standard output stream</h3> 529*d780102eSjmmv <pre class="so"><xsl:apply-templates select="so" mode="details" /></pre> 530*d780102eSjmmv </xsl:if> 531*d780102eSjmmv 532*d780102eSjmmv <xsl:if test="se"> 533*d780102eSjmmv <h3>Standard error stream</h3> 534*d780102eSjmmv <pre class="se"><xsl:apply-templates select="se" mode="details" /></pre> 535*d780102eSjmmv </xsl:if> 536*d780102eSjmmv </xsl:template> 537*d780102eSjmmv 538*d780102eSjmmv <xsl:template match="tc-time" mode="details"> 539*d780102eSjmmv <xsl:apply-templates /> seconds 540*d780102eSjmmv </xsl:template> 541*d780102eSjmmv 542*d780102eSjmmv <xsl:template match="so" mode="details"> 543*d780102eSjmmv <xsl:apply-templates /> 544*d780102eSjmmv <xsl:if test="position() != last()"> 545*d780102eSjmmv <xsl:text> 546*d780102eSjmmv</xsl:text> 547*d780102eSjmmv </xsl:if> 548*d780102eSjmmv </xsl:template> 549*d780102eSjmmv 550*d780102eSjmmv <xsl:template match="se" mode="details"> 551*d780102eSjmmv <xsl:apply-templates /> 552*d780102eSjmmv <xsl:if test="position() != last()"> 553*d780102eSjmmv <xsl:text> 554*d780102eSjmmv</xsl:text> 555*d780102eSjmmv </xsl:if> 556*d780102eSjmmv </xsl:template> 557*d780102eSjmmv 558*d780102eSjmmv <xsl:template match="@*|node()" priority="-1"> 559*d780102eSjmmv <xsl:copy> 560*d780102eSjmmv <xsl:apply-templates select="@*|node()" /> 561*d780102eSjmmv </xsl:copy> 562*d780102eSjmmv </xsl:template> 563*d780102eSjmmv 564*d780102eSjmmv</xsl:stylesheet> 565