OpenSSL 1.0.2f
[tomato.git] / release / src / router / libxml2 / xstc / xstc-to-python.xsl
blob78d55cd664dc5916ee5d2fda49da923ae95dff6e
1 <?xml version="1.0" encoding="UTF-8" ?>
2 <xsl:stylesheet
3 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
4 xmlns:ts="TestSuite" version="1.0"
5 xmlns:xl="http://www.w3.org/1999/xlink">
6 <xsl:param name="vendor" select="'NIST'"/>
7 <xsl:output method="text"/>
9 <xsl:template match="/">
10 <xsl:text>#!/usr/bin/python -u
11 # -*- coding: UTF-8 -*-
13 # This file is generated from the W3C test suite description file.
16 import xstc
17 from xstc import XSTCTestRunner, XSTCTestGroup, XSTCSchemaTest, XSTCInstanceTest
19 xstc.vendor = "</xsl:text><xsl:value-of select="$vendor"/><xsl:text>"
21 r = XSTCTestRunner()
23 # Group definitions.
25 </xsl:text>
27 <xsl:apply-templates select="ts:testSet/ts:testGroup" mode="group-def"/>
28 <xsl:text>
30 # Test definitions.
32 </xsl:text>
33 <xsl:apply-templates select="ts:testSet/ts:testGroup" mode="test-def"/>
34 <xsl:text>
36 r.run()
38 </xsl:text>
40 </xsl:template>
42 <!-- groupName, descr -->
43 <xsl:template match="ts:testGroup" mode="group-def">
44 <xsl:text>r.addGroup(XSTCTestGroup("</xsl:text>
45 <!-- group -->
46 <xsl:value-of select="@name"/><xsl:text>", "</xsl:text>
47 <!-- main schema -->
48 <xsl:value-of select="ts:schemaTest[1]/ts:schemaDocument/@xl:href"/><xsl:text>", """</xsl:text>
49 <!-- group-description -->
50 <xsl:call-template name="str">
51 <xsl:with-param name="str" select="ts:annotation/ts:documentation/text()"/>
52 </xsl:call-template>
53 <xsl:text>"""))
54 </xsl:text>
55 </xsl:template>
57 <xsl:template name="str">
58 <xsl:param name="str"/>
59 <xsl:choose>
60 <xsl:when test="contains($str, '&quot;')">
61 <xsl:call-template name="str">
62 <xsl:with-param name="str" select="substring-before($str, '&quot;')"/>
63 </xsl:call-template>
64 <xsl:text>'</xsl:text>
65 <xsl:call-template name="str">
66 <xsl:with-param name="str" select="substring-after($str, '&quot;')"/>
67 </xsl:call-template>
69 </xsl:when>
70 <xsl:otherwise>
71 <xsl:value-of select="$str"/>
72 </xsl:otherwise>
73 </xsl:choose>
74 </xsl:template>
76 <xsl:template match="ts:testGroup" mode="test-def">
77 <xsl:param name="group" select="@name"/>
78 <xsl:for-each select="ts:schemaTest">
79 <!-- groupName, isSchema, Name, Accepted, File, Val, Descr -->
80 <xsl:text>r.addTest(XSTCSchemaTest("</xsl:text>
81 <!-- group -->
82 <xsl:value-of select="$group"/><xsl:text>", "</xsl:text>
83 <!-- test-name -->
84 <xsl:value-of select="@name"/><xsl:text>", </xsl:text>
85 <!-- accepted -->
86 <xsl:value-of select="number(ts:current/@status = 'accepted')"/><xsl:text>, "</xsl:text>
87 <!-- filename -->
88 <xsl:value-of select="ts:schemaDocument/@xl:href"/><xsl:text>", </xsl:text>
89 <!-- validity -->
90 <xsl:value-of select="number(ts:expected/@validity = 'valid')"/><xsl:text>, "</xsl:text>
91 <!-- test-description -->
92 <xsl:value-of select="ts:annotation/ts:documentation/text()"/><xsl:text>"))
93 </xsl:text>
94 </xsl:for-each>
95 <xsl:for-each select="ts:instanceTest">
96 <!-- groupName, isSchema, Name, Accepted, File, Val, Descr -->
97 <xsl:text>r.addTest(XSTCInstanceTest("</xsl:text>
98 <!-- group -->
99 <xsl:value-of select="$group"/><xsl:text>", "</xsl:text>
100 <!-- test-name -->
101 <xsl:value-of select="@name"/><xsl:text>", </xsl:text>
102 <!-- accepted -->
103 <xsl:value-of select="number(ts:current/@status = 'accepted')"/><xsl:text>, "</xsl:text>
104 <!-- filename -->
105 <xsl:value-of select="ts:instanceDocument/@xl:href"/><xsl:text>", </xsl:text>
106 <!-- validity -->
107 <xsl:value-of select="number(ts:expected/@validity = 'valid')"/><xsl:text>, "</xsl:text>
108 <!-- test-description -->
109 <xsl:value-of select="ts:annotation/ts:documentation/text()"/><xsl:text>"))
110 </xsl:text>
111 </xsl:for-each>
112 </xsl:template>
114 </xsl:stylesheet>