]> begriffs open source - cmsis-driver-validation/blob - Scripts/TR_Style.xsl
Aligned structure of Doxygen/ folder
[cmsis-driver-validation] / Scripts / TR_Style.xsl
1 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
2
3 <!-- Load document into variables -->
4 <xsl:variable name="TestOutput" select="document('TestReport.xml')/*"/>
5
6 <xsl:template match="/">
7   <!-- Write Header -->
8   <html>
9   <head>
10     <title>Test Report</title>
11    
12     <!-- Script for More details <-> Less details -->
13     <script language="javascript" type="text/javascript">
14       function expand(elId, txtId) {
15         var el, disp;
16         el = document.getElementById(elId);
17         disp = el.style.display;
18         disp = (disp == 'block') ? ('none') : ('block');
19         el.style.display = disp;
20         el = document.getElementById(txtId);
21         el.innerHTML = (disp == 'none') ? ('More details') : ('Less details');
22       }
23     </script>
24
25     <style type="text/css">
26       table, th, td { border-collapse: collapse; padding: 0px; }
27
28       .div_title{ text-align: center; font-size:24px; font-weight:bold; margin-top:20px; margin-bottom:20px; }
29       .div_sum  { margin-top:30px; margin-bottom:100px; }
30       .summary  { text-align: center; font-size:20px; font-weight:bold; margin-top:20px; margin-bottom:20px; }
31       .caption  { border-bottom:solid 1px; font-size:18px; font-weight:bold; text-align: center; }
32       
33       .td_dbg   { padding-left:5px; padding-top:10px; }
34       .td_line  { padding-bottom: 5px }
35       .td_res   { text-align: center; vertical-align:top; border:solid 1px; }
36       .td_tc    { font-size:16px; font-weight:bold; text-align: center; vertical-align:top;
37                   border-bottom:solid 1px; border-right:solid 1px; }
38       .td_fn    { padding-left:2px; width:100px; }
39       .td_fnval {  }
40       .td_more  { text-align:center; width:100px; }
41
42       .link_ptr { cursor:pointer; }
43       
44       .an_det   { cursor:pointer; }
45       .an_noexec{ color: Blue;       font-size:16; font-weight:bold; }
46       .an_pass  { color: Green;      font-size:16; font-weight:bold; }
47       .an_pass2 { color: DarkOrange; font-size:16; font-weight:bold; }
48       .an_fail  { color: Red;        font-size:16; font-weight:bold; }
49
50       .tab_inf  { width:100%; border-bottom:solid 1px }
51       .tab_fr   { width:80%; border-left:solid 1px; border-right:solid 1px; border-top:solid 1px; }
52       .tab_det  { width:100%; font-family:Arial; font-size:12px; font-style:italic; display:none; }
53     </style>
54    
55   </head>
56   <body>
57     <xsl:apply-templates select="$TestOutput/test"/>
58   </body>
59   </html>
60 </xsl:template>
61
62 <xsl:template match="test">
63   <div>
64     <!-- Print out title, date and time -->
65     <h2 align="center">
66       <xsl:value-of select="title"/>
67     </h2>
68     <h3 align="center">
69       <xsl:value-of select="date"/> 
70       <xsl:text> </xsl:text> 
71       <xsl:value-of select="time"/>
72     </h3>
73     <!-- Test Group Info -->
74     <xsl:for-each select="info">
75       <table style="border:none; font-size:16px;" width="80%" align="center">
76       <tr><td style="white-space:pre-line"><xsl:value-of select="current()"/></td></tr>
77       </table>
78       <br/>
79     </xsl:for-each>
80     <table class="tab_fr" align="center">
81       <!-- Print out result header -->
82       <tr>
83         <td class="caption" style="width:10%">Test Case</td>
84         <td class="caption">Details</td>
85         <td class="caption" style="width:12%">Status</td>
86       </tr>
87       <!-- Print out results for all test cases -->
88       <xsl:apply-templates select="test_cases"/>
89     </table>
90   </div>
91
92   <!-- Write Summary -->
93   <xsl:apply-templates select="summary"/>
94 </xsl:template>
95
96 <xsl:template match="summary">
97   <!-- Write Summary -->
98   <div class="div_sum">
99     <div class="summary">Summary</div>
100     <table align="center" style="border:solid 1px;">
101       <tr class="caption" style="border:solid 1px;">
102         <td style="padding:4px; border:solid 1px;">Tests</td>
103         <td style="padding:4px; border:solid 1px;">Total</td>
104         <td style="padding:4px; border:solid 1px;">Passed</td>
105         <td style="padding:4px; border:solid 1px;">Failed</td>
106       </tr>
107       <tr style="border:solid 1px">
108         <td style="padding:4px; border:solid 1px;">Count</td>
109         <td style="border:solid 1px; text-align:center"><xsl:value-of select="tcnt"/></td>
110         <td style="border:solid 1px; text-align:center"><xsl:value-of select="pass"/></td>
111         <td style="border:solid 1px; text-align:center"><xsl:value-of select="fail"/></td>
112       </tr>
113       <tr>
114         <td style="padding:4px; border:solid 1px;">Result</td>
115         <xsl:choose>
116           <xsl:when test="fail = 0">
117             <td colspan="5" align="center"><a class="an_pass">Passed</a></td>
118           </xsl:when>
119           <xsl:otherwise>
120             <td colspan="5" align="center"><a class="an_fail">Failed</a></td>
121           </xsl:otherwise>
122         </xsl:choose>
123       </tr>
124     </table>
125   </div>
126 </xsl:template>
127
128 <xsl:template match="tc">
129  <!-- Create test case info row -->
130   <tr>
131     <td class="td_tc"><xsl:value-of select="no"/></td>
132     <!-- <td class="td_tc"><xsl:number count="$TestOutput/test"/></td> -->
133     <td>
134       <table class="tab_inf">
135         <tr>
136           <td>
137             <table width="100%">
138               <tr>
139                 <td class="td_fnval"><xsl:value-of select="func"/></td>
140                 <xsl:if test="dbgi/detail != ''">
141                   <td class="td_more"><a class="link_ptr" id="LINK_ID{(../../group)*1000+no}" onclick="expand('DETAIL_TABLE_ID{(../../group)*1000+no}', 'LINK_ID{(../../group)*1000+no}')">More details</a></td>
142                 </xsl:if>
143               </tr>
144             </table>
145           </td>
146         </tr>
147         <tr>
148           <td colspan="2">
149             <table class="tab_det" id="DETAIL_TABLE_ID{(../../group)*1000+no}">
150               <!-- Print all debug output lines -->
151               <xsl:for-each select="dbgi/detail">
152                 <tr>
153                   <td class="td_line">
154                     <xsl:value-of select="module"/>
155                     <xsl:text> (</xsl:text>
156                     <xsl:value-of select="line"/>
157                     <xsl:text>)</xsl:text> 
158                     <xsl:if test="message != ''">
159                       <xsl:text>: </xsl:text> 
160                     </xsl:if>
161                     <xsl:value-of select="message"/>
162                   </td>
163                 </tr>
164               </xsl:for-each>
165             </table>
166           </td>
167         </tr>
168       </table>
169     </td>
170     <td class="td_res">
171       <xsl:choose>
172         <xsl:when test="res = 'PASSED' and contains(dbgi, '[WARNING]')">
173           <a class="an_pass2">Passed</a>
174         </xsl:when>
175         <xsl:when test="res = 'PASSED'">
176           <a class="an_pass">Passed</a>
177         </xsl:when>
178         <xsl:when test="res = 'NOT EXECUTED'">
179           <a class="an_noexec">Not executed</a>
180         </xsl:when>
181         <xsl:otherwise>
182           <a class="an_fail">Failed</a>
183         </xsl:otherwise>
184       </xsl:choose>
185     </td>
186   </tr>
187 </xsl:template>
188
189 </xsl:stylesheet>