xref: /netbsd-src/external/bsd/atf/dist/tools/tests-results.xsl (revision d780102efefa02003390cc43ea410dbd0ebb4a85)
1*d780102eSjmmv<?xml version="1.0" encoding="ISO-8859-1"?>
2*d780102eSjmmv<!DOCTYPE xsl:stylesheet [<!ENTITY nbsp "&#160;">]>
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