Daniel Veillard | ac29793 | 2003-04-17 12:55:35 +0000 | [diff] [blame] | 1 | #!/usr/bin/python -u |
| 2 | # |
| 3 | # this tests the basic APIs of the XmlTextReader interface |
| 4 | # |
| 5 | import libxml2 |
| 6 | import StringIO |
| 7 | import sys |
| 8 | |
| 9 | # Memory debug specific |
| 10 | libxml2.debugMemory(1) |
| 11 | |
| 12 | def tst_reader(s): |
| 13 | f = StringIO.StringIO(s) |
| 14 | input = libxml2.inputBuffer(f) |
| 15 | reader = input.newTextReader("tst") |
| 16 | res = "" |
| 17 | while reader.Read(): |
| 18 | res=res + "%s (%s) [%s] %d\n" % (reader.NodeType(),reader.Name(), |
| 19 | reader.Value(), reader.IsEmptyElement()) |
| 20 | if reader.NodeType() == 1: # Element |
| 21 | while reader.MoveToNextAttribute(): |
| 22 | res = res + "-- %s (%s) [%s]\n" % (reader.NodeType(), |
| 23 | reader.Name(),reader.Value()) |
| 24 | return res |
| 25 | |
| 26 | expect="""1 (test) [None] 0 |
| 27 | 1 (b) [None] 1 |
| 28 | 1 (c) [None] 1 |
| 29 | 15 (test) [None] 0 |
| 30 | """ |
| 31 | |
| 32 | res = tst_reader("""<test><b/><c/></test>""") |
| 33 | |
| 34 | if res != expect: |
| 35 | print "Did not get the expected error message:" |
| 36 | print res |
| 37 | sys.exit(1) |
| 38 | |
| 39 | # Memory debug specific |
| 40 | libxml2.cleanupParser() |
| 41 | if libxml2.debugMemory(1) == 0: |
| 42 | print "OK" |
| 43 | else: |
| 44 | print "Memory leak %d bytes" % (libxml2.debugMemory(1)) |
| 45 | libxml2.dumpMemory() |