File: cunit2junit.xsl

package info (click to toggle)
nfft 3.5.3-5
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 8,972 kB
  • sloc: ansic: 44,442; lisp: 1,697; makefile: 1,322; sh: 744; sed: 5
file content (86 lines) | stat: -rw-r--r-- 3,479 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:output method="xml" indent="yes" />

   <xsl:param name="suitename" />
   
   <xsl:variable name="cunitCount" select="count(//CUNIT_RUN_TEST_RECORD)"/>
   <xsl:variable name="cunitFailureCount" select="count(//CUNIT_RUN_TEST_FAILURE)"/>  

   <xsl:template match="/">
      <testsuites>
         <xsl:attribute name="errors">0</xsl:attribute>
         <xsl:attribute name="failures">
          <xsl:value-of select="$cunitFailureCount"/>
         </xsl:attribute>
         <xsl:attribute name="tests">
          <xsl:value-of select="$cunitCount"/>
         </xsl:attribute>
         <xsl:attribute name="name">
            <xsl:value-of select="$suitename" />
         </xsl:attribute>
         <xsl:apply-templates />
      </testsuites>
   </xsl:template>
   
  <xsl:template match="/CUNIT_TEST_RUN_REPORT/CUNIT_RESULT_LISTING">
     <xsl:for-each select="CUNIT_RUN_SUITE/CUNIT_RUN_SUITE_SUCCESS">
      <xsl:variable name="localCunitFailureCount" select="count(CUNIT_RUN_TEST_RECORD/CUNIT_RUN_TEST_FAILURE)"/>  
      <xsl:variable name="localCunitCount" select="count(CUNIT_RUN_TEST_RECORD)"/>
      <xsl:variable name="sn" select="normalize-space(SUITE_NAME/text())"/>
      <testsuite>
         <xsl:attribute name="errors">0</xsl:attribute>
         <xsl:attribute name="failures">
          <xsl:value-of select="$localCunitFailureCount"/>
         </xsl:attribute>
         <xsl:attribute name="tests">
          <xsl:value-of select="$localCunitCount"/>
         </xsl:attribute>
         <xsl:attribute name="name">
          <xsl:value-of select="$sn"/>
         </xsl:attribute>
         <xsl:apply-templates select="CUNIT_RUN_TEST_RECORD" />
      </testsuite>
     </xsl:for-each>
  </xsl:template>
      
  <xsl:template match="CUNIT_RUN_TEST_RECORD">
    <xsl:apply-templates select="CUNIT_RUN_TEST_SUCCESS" />
    <xsl:apply-templates select="CUNIT_RUN_TEST_FAILURE" />
  </xsl:template>
    
  <xsl:template match="CUNIT_RUN_TEST_SUCCESS">
    <testcase>
       <!--xsl:attribute name="classname">
          <xsl:value-of select="substring-before(substring-after(TEST_NAME,'test_'),'_')" />
       </xsl:attribute-->
       <xsl:attribute name="name">
          <xsl:value-of select="normalize-space(TEST_NAME)" />
       </xsl:attribute>
       <xsl:attribute name="time">0</xsl:attribute>
    </testcase>
  </xsl:template>
  <xsl:template match="CUNIT_RUN_TEST_FAILURE">
    <testcase>
       <!--xsl:attribute name="classname">
          <xsl:value-of select="substring-before(substring-after(TEST_NAME,'test_'),'_')" />
       </xsl:attribute-->
       <xsl:attribute name="name">
          <xsl:value-of select="normalize-space(TEST_NAME)" />
       </xsl:attribute>
       <xsl:attribute name="time">0</xsl:attribute>
       <failure>
         <xsl:attribute name="message">
            <xsl:value-of select=" normalize-space(CONDITION)" />
         </xsl:attribute>
         <xsl:attribute name="type">Failure</xsl:attribute>
         <xsl:value-of select="normalize-space(CONDITION)" />
         File: <xsl:value-of select="normalize-space(FILE_NAME)" />
         Line: <xsl:value-of select="normalize-space(LINE_NUMBER)" />
       </failure>
    </testcase>
  </xsl:template>
 
  <xsl:template match="text()|@*" />
  
</xsl:stylesheet>