mirror of
				https://gitlab.gnome.org/GNOME/libxml2.git
				synced 2025-10-30 10:45:36 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			52 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/python -u
 | |
| #
 | |
| # This test exercise the redirection of error messages with a
 | |
| # functions defined in Python.
 | |
| #
 | |
| import sys
 | |
| import libxml2
 | |
| 
 | |
| # Memory debug specific
 | |
| libxml2.debugMemory(1)
 | |
| 
 | |
| expect='--> I/O --> warning : --> failed to load external entity "missing.xml"\n'
 | |
| err=""
 | |
| def callback(ctx, str):
 | |
|      global err
 | |
| 
 | |
|      err = err + "%s %s" % (ctx, str)
 | |
| 
 | |
| got_exc = 0
 | |
| libxml2.registerErrorHandler(callback, "-->")
 | |
| try:
 | |
|     doc = libxml2.parseFile("missing.xml")
 | |
| except libxml2.parserError:
 | |
|     got_exc = 1
 | |
| 
 | |
| if got_exc == 0:
 | |
|     print("Failed to get a parser exception")
 | |
|     sys.exit(1)
 | |
| 
 | |
| if err != expect:
 | |
|     print("error")
 | |
|     print("received %s" %(err))
 | |
|     print("expected %s" %(expect))
 | |
|     sys.exit(1)
 | |
| 
 | |
| i = 10000
 | |
| while i > 0:
 | |
|     try:
 | |
|         doc = libxml2.parseFile("missing.xml")
 | |
|     except libxml2.parserError:
 | |
|         got_exc = 1
 | |
|     err = ""
 | |
|     i = i - 1
 | |
| 
 | |
| # Memory debug specific
 | |
| libxml2.cleanupParser()
 | |
| if libxml2.debugMemory(1) == 0:
 | |
|     print("OK")
 | |
| else:
 | |
|     print("Memory leak %d bytes" % (libxml2.debugMemory(1)))
 | |
|     libxml2.dumpMemory()
 |