HEX
Server: Apache
System: Linux vpshost0650.publiccloud.com.br 4.4.79-grsec-1.lc.x86_64 #1 SMP Wed Aug 2 14:18:21 -03 2017 x86_64
User: bandeirantesbomb3 (10068)
PHP: 8.0.7
Disabled: apache_child_terminate,dl,escapeshellarg,escapeshellcmd,exec,link,mail,openlog,passthru,pcntl_alarm,pcntl_exec,pcntl_fork,pcntl_get_last_error,pcntl_getpriority,pcntl_setpriority,pcntl_signal,pcntl_signal_dispatch,pcntl_sigprocmask,pcntl_sigtimedwait,pcntl_sigwaitinfo,pcntl_strerror,pcntl_wait,pcntl_waitpid,pcntl_wexitstatus,pcntl_wifexited,pcntl_wifsignaled,pcntl_wifstopped,pcntl_wstopsig,pcntl_wtermsig,php_check_syntax,php_strip_whitespace,popen,proc_close,proc_open,shell_exec,symlink,system
Upload Files
File: //usr/share/doc/libxml2-python-2.9.1/outbuf.py
#!/usr/bin/python -u
import sys
import libxml2
try:
    import StringIO
    str_io = StringIO.StringIO
except:
    import io
    str_io = io.StringIO

def testSimpleBufferWrites():
    f = str_io()
    buf = libxml2.createOutputBuffer(f, "ISO-8859-1")
    buf.write(3, "foo")
    buf.writeString("bar")
    buf.close()

    if f.getvalue() != "foobar":
        print("Failed to save to StringIO")
        sys.exit(1)

def testSaveDocToBuffer():
    """
    Regression test for bug #154294.
    """
    input = '<foo>Hello</foo>'
    expected = '''\
<?xml version="1.0" encoding="UTF-8"?>
<foo>Hello</foo>
'''
    f = str_io()
    buf = libxml2.createOutputBuffer(f, 'UTF-8')
    doc = libxml2.parseDoc(input)
    doc.saveFileTo(buf, 'UTF-8')
    doc.freeDoc()
    if f.getvalue() != expected:
        print('xmlDoc.saveFileTo() call failed.')
        print('     got: %s' % repr(f.getvalue()))
        print('expected: %s' % repr(expected))
        sys.exit(1)

def testSaveFormattedDocToBuffer():
    input = '<outer><inner>Some text</inner><inner/></outer>'
    # The formatted and non-formatted versions of the output.
    expected = ('''\
<?xml version="1.0" encoding="UTF-8"?>
<outer><inner>Some text</inner><inner/></outer>
''', '''\
<?xml version="1.0" encoding="UTF-8"?>
<outer>
  <inner>Some text</inner>
  <inner/>
</outer>
''')
    doc = libxml2.parseDoc(input)
    for i in (0, 1):
        f = str_io()
        buf = libxml2.createOutputBuffer(f, 'UTF-8')
        doc.saveFormatFileTo(buf, 'UTF-8', i)
        if f.getvalue() != expected[i]:
            print('xmlDoc.saveFormatFileTo() call failed.')
            print('     got: %s' % repr(f.getvalue()))
            print('expected: %s' % repr(expected[i]))
            sys.exit(1)
    doc.freeDoc()

def testSaveIntoOutputBuffer():
    """
    Similar to the previous two tests, except this time we invoke the save
    methods on the output buffer object and pass in an XML node object.
    """
    input = '<foo>Hello</foo>'
    expected = '''\
<?xml version="1.0" encoding="UTF-8"?>
<foo>Hello</foo>
'''
    f = str_io()
    doc = libxml2.parseDoc(input)
    buf = libxml2.createOutputBuffer(f, 'UTF-8')
    buf.saveFileTo(doc, 'UTF-8')
    if f.getvalue() != expected:
        print('outputBuffer.saveFileTo() call failed.')
        print('     got: %s' % repr(f.getvalue()))
        print('expected: %s' % repr(expected))
        sys.exit(1)
    f = str_io()
    buf = libxml2.createOutputBuffer(f, 'UTF-8')
    buf.saveFormatFileTo(doc, 'UTF-8', 1)
    if f.getvalue() != expected:
        print('outputBuffer.saveFormatFileTo() call failed.')
        print('     got: %s' % repr(f.getvalue()))
        print('expected: %s' % repr(expected))
        sys.exit(1)
    doc.freeDoc()

if __name__ == '__main__':
    # Memory debug specific
    libxml2.debugMemory(1)

    testSimpleBufferWrites()
    testSaveDocToBuffer()
    testSaveFormattedDocToBuffer()
    testSaveIntoOutputBuffer()

    libxml2.cleanupParser()
    if libxml2.debugMemory(1) == 0:
        print("OK")
    else:
        print("Memory leak %d bytes" % (libxml2.debugMemory(1)))
        libxml2.dumpMemory()