Commits

Oliver van Porten committed 66e1163

Initial import of XSLT transform

Comments (0)

Files changed (1)

cunit-to-junit.xsl

+<?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>