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