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