1
0
mirror of https://gitlab.gnome.org/GNOME/libxml2.git synced 2024-12-25 23:21:26 +03:00
Commit Graph

26 Commits

Author SHA1 Message Date
Nick Wellnhofer
138213acdf python: Fix tests on MinGW
Add the directory containing libxml2.dll with os.add_dll_directory to
make tests work on MinGW.

This has changed in Python 3.8 but for some reason, the issue only
turned up with Python 3.11 on MinGW. Contrary to documentation, copying
libxml2.dll into the directory containing the .pyd file doesn't work.
2023-08-15 12:55:35 +02:00
Nick Wellnhofer
886bf4e63b Stop calling xmlMemoryDump
This was used to check for memory leaks but could potentially create a
.memdump file. These days, there are better ways to check for memory
leaks.
2023-04-30 15:48:41 +02:00
David Kilzer
cb1b8b8516 xmlValidatePopElement() can return invalid value (-1)
Covered by:  test/VC/ElementValid5

This only affects XML Reader API with LIBXML_REGEXP_ENABLED and
LIBXML_VALID_ENABLED turned on.

* result/VC/ElementValid5.rdr:
- Update result to add missing error message.

* python/tests/reader2.py:
* result/VC/ElementValid6.rdr:
* result/VC/ElementValid7.rdr:
* result/valid/781333.xml.err.rdr:
- Update result to fix grammar issue.

* valid.c:
(xmlValidatePopElement):
- Check return value of xmlRegExecPushString() to handle -1, and
  assign 'ret = 0;' to return 0 from xmlValidatePopElement().
  This change affects xmlTextReaderValidatePop() from
  xmlreader.c.
- Fix grammar of error message by changing 'child' to
  'children'.
2023-04-10 13:21:53 -07:00
Nick Wellnhofer
74aa61e0bd parser: Halt parser on DTD errors
If we try to continue parsing after an error in the internal or external
subset, entity expansion accounting gets more complicated. Simply halt
the parser.

Found with libFuzzer.
2023-01-24 11:32:15 +01:00
Ross Burton
4762c85668 Use python3 not python
As per https://peps.python.org/pep-0394/, the python binary can be one
of the following options:
- Python 2
- Python 3
- Not exist

All of the scripts in libxml2 use 'python', which may not exist.

As Python 2 reached EOL on the 1st January 2020, it's safe to move the
scripts to use python3 explicitly.
2022-12-07 13:21:12 +00:00
Ross Burton
0ac8c15eb4 python/tests/reader2: use absolute paths everywhere
The expected errors contain an relative path, but the messages from the
parser contain absolute paths.  However, due to the tests not actually
failing if there was an error this wasn't noticed.

Instead of putting relative paths in the expected messages use format()
to embed the correct absolute path.

Also use os.path.join() consistently when constructing paths to ensure
uniformly formatted paths.
2022-12-06 17:27:34 +00:00
Ross Burton
b9ba5e1d90 python/tests/reader2: always exit(1) if a test fails
Batch up the errors in the first parse tests and ensure that the last
tests exit with an error if they fail.

Also remove an unused import.
2022-12-06 17:25:34 +00:00
David Seifert
a62b31f43f
Use portable python shebangs
* In conda or Gentoo Prefix, we don't want to use the system python and
  instead rely on PATH lookup.
2022-04-06 19:57:30 +02:00
David Seifert
0137d9879b
python/tests: open() relative to test scripts 2022-03-30 22:00:50 +02:00
Pieter van Oostrum
8f62ac92b2 Updated Python test reader2.py
Added all test cases that have a non-empty error in result/valid/*.xml.err
Restructured to make it easier extensible with new test cases
Added coding cookie because there is non-ASCII in the error messages
2020-01-02 13:50:10 +01:00
Daniel Veillard
2cb6bf8eb0 update all tests for Python3 and Python2 2013-03-30 22:33:06 +08:00
Daniel Veillard
4c00414711 switched Relax-NG module to teh new error reporting. Better default
* error.c relaxng.c include/libxml/xmlerror.h: switched Relax-NG
  module to teh new error reporting. Better default report, adds
  the element associated if found, context and node are included
  in the xmlError
* python/tests/reader2.py: the error messages changed.
* result/relaxng/*: error message changed too.
Daniel
2003-10-07 11:33:24 +00:00
Daniel Veillard
bb5ababa28 more cleanup in make tests more work in the transition to the new error
* Makefile.am: more cleanup in make tests
* error.c valid.c parser.c include/libxml/xmlerror.h: more work
  in the transition to the new error reporting strategy.
* python/tests/reader2.py  result/VC/* result/valid/*:
  few changes in the strings generated by the validation output
Daniel
2003-10-03 22:21:51 +00:00
Daniel Veillard
4432df239b cleanup, creating a new legacy.c module, made sure make tests ran in
* Makefile.am: cleanup, creating a new legacy.c module,
  made sure make tests ran in reduced conditions
* SAX.c SAX2.c configure.in entities.c globals.c parser.c
  parserInternals.c tree.c valid.c xlink.c xmlIO.c xmlcatalog.c
  xmlmemory.c xpath.c xmlmemory.c include/libxml/xmlversion.h.in:
  increased the modularization, allow to configure out
  validation code and legacy code, added a configuration
  option --with-minimum compiling only the mandatory code
  which then shrink to 200KB.
Daniel
2003-09-28 18:58:27 +00:00
Daniel Veillard
8d73bcb50f added a new API to split a QName without generating any memory allocation
* tree.c include/libxml/tree.h: added a new API to split a
  QName without generating any memory allocation
* valid.c: fixed another problem with namespaces on element
  in mixed content case
* python/tests/reader2.py: updated the testcase with
  Bjorn Reese fix to reader for unsignificant white space
* parser.c HTMLparser.c: cleanup.
Daniel
2003-08-04 01:06:15 +00:00
Daniel Veillard
781ac8b19b patch from Stphane Bidoul for setting up threads global defaults. this
* build_glob.py global.data globals.c parser.c
  include/libxml/globals.h: patch from Stphane Bidoul for setting
  up threads global defaults.
* doc/libxml2-api.xml: this extends the API with new functions
* python/tests/Makefile.am python/tests/reader2.py
  python/tests/thread2.py: integrated the associated testcase and
  fixed the error string used in reader2
Daniel
2003-05-15 22:11:36 +00:00
Daniel Veillard
a880b12475 a lot of performance work especially the speed of streaming through the
* globals.c libxml.h parser.c parserInternals.c tree.c xmllint.c
  xmlreader.c include/libxml/parser.h: a lot of performance work
  especially the speed of streaming through the reader and push
  interface. Some thread related optimizations. Nearly doubled the
  speed of parsing through the reader.
Daniel
2003-04-21 21:36:41 +00:00
Daniel Veillard
067bae5ff8 seriously changed the way data are pushed to the underlying parser, go by
* xmlreader.c: seriously changed the way data are pushed to
  the underlying parser, go by block of 512 bytes instead of
  tryng to detect tag boundaries at that level. Changed the
  way empty element are detected and tagged.
* python/tests/reader.py python/tests/reader2.py
  python/tests/reader3.py: small changes mostly due to context
  reporting being different and DTD node being reported. Some
  errors previously undetected are now caught and fixed.
* doc/xmlreader.html: flagged last section as TODO
Daniel
2003-01-05 01:27:54 +00:00
Daniel Veillard
2bc13cacb0 fixed a small problem related to order of files in dir, Daniel 2003-01-04 19:06:55 +00:00
Daniel Veillard
a80ff6ec18 okay the DTD validation code on top of the XMLTextParser API should be
* xmlreader.c python/tests/reader2py: okay the DTD validation
  code on top of the XMLTextParser API should be solid now.
Daniel
2003-01-03 12:52:08 +00:00
Daniel Veillard
1fdfd115e5 Fixing some more mess with validation and recursive entities while using
* xmlreader.c python/tests/reader2py: Fixing some more mess
  with validation and recursive entities while using the
  reader interface, it's getting a bit messy...
Daniel
2003-01-03 01:18:43 +00:00
Daniel Veillard
9e395c289f fixed another validity checking in external parsed entities raised by
* xmlreader.c python/tests/reader2.py: fixed another validity
  checking in external parsed entities raised by Stphane Bidoul
  and added a specific regression test.
* python/tests/reader3.py: cleanup
Daniel
2003-01-01 14:50:44 +00:00
Daniel Veillard
d589614042 fixed a problem with validation within entities pointed by Stphane
* xmlreader.c python/tests/reader2.py: fixed a problem with
  validation within entities pointed by Stphane Bidoul, augmented
  the tests to catch those.
Daniel
2002-12-31 14:45:26 +00:00
Daniel Veillard
e18fc185fa extended the XmlTextReader API a bit, addding accessors for the current
* xmlreader.c include/libxml/xmlreader.h doc/libxml2-api.xml:
  extended the XmlTextReader API a bit, addding accessors for
  the current doc and node, and an entity substitution mode for
  the parser.
* python/libxml.py python/libxml2class.txt: related updates
* python/tests/Makefile.am python/tests/reader.py
  python/tests/reader2.py python/tests/reader3.py: updated a bit
  the old tests and added a new one to test the entities handling
Daniel
2002-12-28 22:56:33 +00:00
Daniel Veillard
aba976d825 changed the generator to provide casing for the XmlTextReader similar to
* python/generator.py python/libxml2class.txt
  python/tests/reader.py python/tests/reader2.py: changed the
  generator to provide casing for the XmlTextReader similar to
  C# so that examples and documentation are more directly transposable.
  Fixed the couple of tests in the suite.
Daniel
2002-12-28 21:14:18 +00:00
Daniel Veillard
336fc7d3c9 final touch running DTD validation on the XmlTextReader added a specific
* valid.c xmlreader.c: final touch running DTD validation
  on the XmlTextReader
* python/tests/Makefile.am python/tests/reader2.py: added a
  specific run based on the examples from test/valid/*.xml
Daniel
2002-12-27 19:37:04 +00:00