Index: third_party/libxslt/python/tests/exslt.py |
diff --git a/third_party/libxslt/python/tests/exslt.py b/third_party/libxslt/python/tests/exslt.py |
new file mode 100755 |
index 0000000000000000000000000000000000000000..c64b2e43319d8e0307e8ec4447ec09047164c067 |
--- /dev/null |
+++ b/third_party/libxslt/python/tests/exslt.py |
@@ -0,0 +1,56 @@ |
+#!/usr/bin/python -u |
+import sys |
+import libxml2 |
+# Memory debug specific |
+libxml2.debugMemory(1) |
+import libxslt |
+ |
+ |
+styledoc = libxml2.parseDoc( |
+"""<?xml version="1.0"?> |
+<xsl:stylesheet version="1.0" |
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" |
+ xmlns:str="http://exslt.org/strings" |
+ exclude-result-prefixes="str"> |
+ |
+<xsl:template match="/"> |
+<out>; |
+ str:tokenize('2001-06-03T11:40:23', '-T:') |
+ <xsl:copy-of select="str:tokenize('2001-06-03T11:40:23', '-T:')"/>; |
+ |
+ str:tokenize('date math str') |
+ <xsl:copy-of select="str:tokenize('date math str')"/>; |
+</out> |
+</xsl:template> |
+ |
+</xsl:stylesheet> |
+""") |
+style = libxslt.parseStylesheetDoc(styledoc) |
+doc = libxml2.parseDoc("<doc/>") |
+result = style.applyStylesheet(doc, None) |
+stringval = style.saveResultToString(result) |
+style.freeStylesheet() |
+doc.freeDoc() |
+result.freeDoc() |
+ |
+expect="""<?xml version="1.0"?> |
+<out>; |
+ str:tokenize('2001-06-03T11:40:23', '-T:') |
+ <token>2001</token><token>06</token><token>03</token><token>11</token><token>40</token><token>23</token>; |
+ |
+ str:tokenize('date math str') |
+ <token>date</token><token>math</token><token>str</token>; |
+</out> |
+""" |
+ |
+if stringval != expect: |
+ print "Exslt processing failed" |
+ sys.exit(255) |
+ |
+# Memory debug specific |
+libxslt.cleanup() |
+if libxml2.debugMemory(1) == 0: |
+ print "OK" |
+else: |
+ print "Memory leak %d bytes" % (libxml2.debugMemory(1)) |
+ libxml2.dumpMemory() |