1
0
mirror of https://gitlab.gnome.org/GNOME/libxml2.git synced 2025-01-26 10:03:34 +03:00

76 Commits

Author SHA1 Message Date
Seiya Nakata
5bb84b47b8 relaxng: Fix tree corruption in xmlRelaxNGParseNameClass
Don't create cycles in tree structure. This will lead to an infinite
loop or call stack overflow later.

Closes: https://gitlab.gnome.org/GNOME/libxml2/-/issues/711
2024-04-05 13:45:06 +02:00
Nick Wellnhofer
f0df3e6d00 tests: Try to fix RelaxNG test cases
These were added recently in ea695ac0 and 8074b881 but were a total mess
of symbolic links and apparently mixed up files.

Symbolic links don't work on Windows.

Try to salvage one of the tests.
2023-12-21 15:02:24 +01:00
Nick Wellnhofer
83c6aeef49 relaxng: Improve error handling
Pass RelaxNG structured error handler to XML parser.

Handle malloc failure from xmlRaiseError.

Remove argument from memory error handler.

Use xmlRaiseMemoryError.

Don't use xmlGenericError.

Remove TODO macro.
2023-12-21 15:01:42 +01:00
Nick Wellnhofer
4de7f2acfe Remove unused result files 2022-04-04 04:28:15 +02:00
Nick Wellnhofer
f1c32b4c78 Allow missing result files in runtest
Treat missing files as empty.
2022-04-04 04:28:15 +02:00
Nick Wellnhofer
48b03c8479 Remove major parts of old test suite
Remove all the parts of the old test suite which are covered by
runtest.c for quite some time.

The following test programs are removed:

- testC14N
- testHTML
- testReader
- testRelax
- testSAX
- testSchemas
- testURI
- testXPath

This also removes a few results of unimportant tests only run by the old
test suite.
2022-04-04 04:14:55 +02:00
Jan Pokorný
ea695ac0d6 Fix unability to RelaxNG-validate grammar with choice-based name class
Previously, test/relaxng/ambig_name-class2.xml would fail to validate
against test/relaxng/ambig_name-class2.rng:

> test/relaxng/ambig_name-class2.rng:4:
>   element attribute: Relax-NG parser error :
>       Found anyName attribute without oneOrMore ancestor
> Relax-NG schema test/relaxng/ambig_name-class2.rng failed to compile

Signed-off-by: Jan Pokorný <jpokorny@redhat.com>
2019-08-25 13:29:04 +02:00
Jan Pokorný
8074b88179 Fix unability to validate ambiguously constructed interleave for RelaxNG
Previously, test/relaxng/ambig_name-class.xml would fail to validate
for a simple reason -- interleave within "open-name-class" context
is supposed to be fine with whatever else is pending the consumption,
since effectively, it's unrelated from a higher parsing perspective.

Signed-off-by: Jan Pokorný <jpokorny@redhat.com>
2019-08-25 13:29:04 +02:00
Nikolai Weibull
c64d4efb31 Remove redefined starts and defines inside include elements
When including a grammar from another grammar, we need to make sure that any
redefines of starts and includes that that grammar does inside any of its
include elements are also removed.
2018-11-29 21:06:06 +01:00
Nikolai Weibull
46da8fc529 Allow choice within choice in nameClass in RELAX NG
The pattern nameClass allows for nested choice elements, for example

  <name>
    <choice>
      <choice>
        <name>a</name>
        <name>b</name>
      </choice>
      <name>c</name>
    </choice>
  </name>

which is semantically equivalent to

  <name>
    <choice>
      <name>a</name>
      <name>b</name>
      <name>c</name>
    </choice>
  </name>

The old code didn’t handle this correctly, as it never expected a choice inside
another choice.  This patch fixes this by flattening any nested choices.

This pattern of nested choice elements comes up in RELAX NG simplification,
where all choice elements are rewritten in this nested manner, see section 4.12
of the RELAX NG specification.
2018-11-29 21:03:11 +01:00
Nikolai Weibull
4338c310eb Look inside divs for starts and defines inside include
RELAX NG allows for div elements inside of include elements.  We need to look
inside those div elements for start and define elements that may be redefining
start and define elements in the included grammar.
2018-11-29 21:00:46 +01:00
Nick Wellnhofer
67f9f9d6c8 Misc fixes for 'make tests'
- Silence test output.
- Clean up after doc/examples tests.
- Adjust expected output for script tests.
- Add missing results for relaxng/pattern3

There are still two test failures I can't comment on:

- regexp/bug316338
- schemas/any4_0
2017-06-12 19:46:56 +02:00
Audric Schiltknecht
cad102b861 Do normalize string-based datatype value in RelaxNG facet checking
Original patch is from Jan Pokorný <jpokorny redhat com>
https://mail.gnome.org/archives/xml/2013-November/msg00028.html

Improve it according to reviews and add test files.
2016-04-15 22:41:24 +08:00
David Kilzer
49bbfdb6c9 Add missing RNG test files
For https://bugzilla.gnome.org/show_bug.cgi?id=760249

Add missing test results from Bug 710744 for commit
6473a41a49601da8355c4b407b99474ada170213.
2016-04-08 10:20:22 +08:00
Daniel Veillard
2fab235d10 Fix support for except in nameclasses
For https://bugzilla.gnome.org/show_bug.cgi?id=565219

The code was imply missing even if simple, added a few regression
tests.
2015-03-16 08:43:37 +08:00
Shaun McCance
6473a41a49 Implement choice for name classes on attributes
https://bugzilla.gnome.org/show_bug.cgi?id=710744
2013-11-28 16:09:00 +08:00
Daniel Veillard
aa422d9254 595792 fixing a RelaxNG bug introduced in 2.7.4
* relaxng.c: refs definitions added from inported schemas should not
  be processed as refs from the main schemas
* test/relaxng/595792* result/relaxng/595792*: add the test to the
  regression suite
2009-09-24 11:31:48 +02:00
Daniel Veillard
9332b48f16 Fix a Relaxng bug raised by libvirt test suite
* xmlregexp.c: other fixes in 2.7.4 raised this internal error
  when comparing ranges, this affects among others detection of
  the determinism
* test/relaxng/libvirt* result/relaxng/libvirt*: add a test case
  based on libvirt schemas and tests
2009-09-23 18:28:43 +02:00
Daniel Veillard
1ba2aca3eb 492317 Fix Relax-NG validation problems
* relaxng.c xmlregexp.c: a subtle problem when checking for compileable
  content model, if using the same elements in cases of choices. Handled
  by adding a special flag to the regexp compilation to detect
  transitions with different atoms using same strings.
* test/relaxng/492317* result/relaxng/492317*: add the test to the
  regression suite
2009-08-31 16:47:39 +02:00
Daniel Veillard
ec18c96008 558452 fight with reg test and error report
* relaxng.c: tiny fix and provide more context on some errors
* result/relaxng/558452_0* test/relaxng/558452*: add some regression
  tests for the bugs
* Makefile.am runtest.c: fight with the fact streaming error messages
  can differ due to missing node context
2009-08-26 18:37:43 +02:00
Daniel Veillard
be58a0a319 Adding test file, Daniel 2006-10-13 16:39:14 +00:00
Daniel Veillard
7933800926 Added new regression tests for #331062, daniel 2006-02-19 15:32:29 +00:00
Daniel Veillard
60faf528d8 fixed bug #307377 about validation of choices in list values. added
* relaxng.c: fixed bug #307377 about validation of choices in
  list values.
* test/relaxng/307377* result/relaxng/307377* Makefile.am runtest.c:
  added examples to the regression tests, problem is that streaming
  version gives slightly more informations.
Daniel
2005-08-10 16:23:57 +00:00
Daniel Veillard
f46440392e fixed a bug exposed by Rob Richards in the mailing-list added the
* relaxng.c: fixed a bug exposed by Rob Richards in the mailing-list
* result//compare0* test//compare0*: added the regression test in
  the suite as this went unnoticed !
Daniel
2005-06-13 11:41:31 +00:00
Daniel Veillard
63d68a37be fixed a problem in Relax-NG validation #159968 added the test to the
* relaxng.c: fixed a problem in Relax-NG validation #159968
* test/relaxng/list.* result/relaxng/list_*: added the test
  to the regression suite
Daniel
2005-03-31 13:50:00 +00:00
Daniel Veillard
9186a1fdb6 fixed bug #157633 in relaxng choice optimization added regression tests
* relaxng.c: fixed bug #157633 in relaxng choice optimization
* result/relaxng/choice0* test/relaxng/choice0*: added regression
  tests about it.
* doc/*: rebuilt
* testdso.c: removed a warning due to a missing void in signature.
Daniel
2005-01-15 12:38:10 +00:00
Daniel Veillard
b021caa387 Adding missing files, Daniel 2004-05-15 18:51:42 +00:00
William M. Brack
236c8c09f0 added check for external reference in xmlRelaxNGGetElements (bug 137718)
* relaxng.c: added check for external reference in
  xmlRelaxNGGetElements (bug 137718)
* test/relaxng/rngbug-001.*, result/relaxng/rngbug-001*: added
  regression test for above
2004-03-20 11:32:36 +00:00
Daniel Veillard
d21f61b59f issue validation status on stderr, not stdout as suggested by Pawel
* xmllint.c: issue validation status on stderr, not stdout as suggested
  by Pawel Palucha
* result/relaxng/*: this change slightly all the output from RNG
  regressions.
Daniel
2003-12-29 10:31:21 +00:00
Daniel Veillard
ffbbed4228 fixed uninitialized new field. fixed a typo updating all messages Daniel
* SAX2.c: fixed uninitialized new field.
* result/VC/OneID2 result/relaxng/*.err: fixed a typo updating
  all messages
Daniel
2003-10-10 14:46:54 +00: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
1ac24d36b1 fixed an error reporting bug in Relax-NG when we end up with multiple
* relaxng.c: fixed an error reporting bug in Relax-NG when we end
  up with multiple states, select the "best" one. Fix #120682
* result/relaxng/tutor11_2_3.err: small change resulting

* xmlschemastypes.c: applied base64 support patch from Anthony Carrico
2003-08-27 14:15:15 +00:00
Daniel Veillard
c1ffa0ab97 fixed bug #120386 again a problem introduced when trying to reuse automata
* relaxng.c: fixed bug #120386 again a problem introduced when
  trying to reuse automata for content validation. Fix a bug report
  problem on zeroOrMore
* result/relaxng/tutor3_7_err: change slightly error reporting.
Daniel
2003-08-26 13:56:48 +00:00
Daniel Veillard
d94849b092 fixed a Relax-NG compilation/streaming bug introduced when fixing the
* relaxng.c: fixed a Relax-NG compilation/streaming bug introduced
  when fixing the previous Relax-NG bugs
* result/relaxng/*: This slightly changes the output messages of
  some regression tests.
* configure.in: added support of -with-fexceptions for nested C++
  support.
Daniel
2003-07-28 13:02:24 +00:00
Daniel Veillard
2134ab18c7 checked and fixed the compilation of RNG schemas, fixes a couple of bugs
* relaxng.c result/relaxng/*: checked and fixed the compilation
  of RNG schemas, fixes a couple of bugs #117097 and #117001 .
  This slightly changes the output messages of some regression tests.
Daniel
2003-07-23 19:56:29 +00:00
Daniel Veillard
ac297930c2 some cleanups extended the document to cover RelaxNG and tree operations
* relaxng.c: some cleanups
* doc/xmlreader.html: extended the document to cover RelaxNG and
  tree operations
* python/tests/Makefile.am python/tests/reader[46].py: added some
  xmlReader example/regression tests
* result/relaxng/tutor*.err: updated the output of a number of tests
Daniel
2003-04-17 12:55:35 +00:00
Daniel Veillard
ce192eb8a6 more work on RelaxNG streaming validation trying to improve the subset
* relaxng.c xmllint.c: more work on RelaxNG streaming validation
  trying to improve the subset compiled, and more testing.
* doc/downloads.html doc/xml.html doc/xmlmem.html: some updates on the
  documentation
* test/relaxng/tutor11_1_3.xml: fixes the DTD path
* result/relaxng/*.err: fix some of the outputs
Daniel
2003-04-16 15:58:05 +00:00
Daniel Veillard
a507fbf3c2 try to work on bug #109225 and provide better error reports. this change
* relaxng.c: try to work on bug #109225 and provide better
  error reports.
* result/relaxng/* : this change the output of a number of tests
* xinclude.c: fixing the parsed entity redefinition problem
  raised on the list.
* test/schemas/date_0.xsd: updated the date test c.f. E2-12
Daniel
2003-03-31 16:09:37 +00:00
Daniel Veillard
e063f4829d another optimization, for choice this time cleanups. Daniel
* relaxng.c: another optimization, for choice this time
* result/relaxng/spec1* result/relaxng/tutor12_1*
  result/relaxng/tutor3_7: cleanups.
Daniel
2003-03-21 16:53:17 +00:00
Daniel Veillard
ef2e4ec1a2 added integer and fixed one of the IDREFS regression tests pbm updated
* xmlschemastypes.c: added integer and fixed one of the
  IDREFS regression tests pbm
* result/relaxng/docbook_0.err: updated
Daniel
2003-03-20 16:23:26 +00:00
Daniel Veillard
249d7bbee2 attempt to cope with ID/IDREF(S) declared both in the DTD and in the
* valid.c xmlschemastypes.c: attempt to cope with ID/IDREF(S)
  declared both in the DTD and in the Schemas <grin/>
* relaxng.c: more debug, added a big optimization for <mixed>
* test/relaxng/testsuite.xml: augmented the testsuite
* test/relaxng/ result/relaxng: added the RelaxNG spec and a
  DocBook example to the regression tests
Daniel
2003-03-19 21:02:29 +00:00
Daniel Veillard
fd573f18a5 switched back to the previous Relax-NG code base, the derivation algorithm
* relaxng.c: switched back to the previous Relax-NG code base,
  the derivation algorithm need severe constraining code to avoid
  combinatorial explosion. Fixed the problem with Sebastian Rahtz
  TEI based example and other bugs
* result/relaxng/*err: updated the results
* test/relaxng/testsuite.xml: started a new test suite
Daniel
2003-03-16 17:52:32 +00:00
Daniel Veillard
5add868b2e stop generating wrong result file with * in name fixing the include bug
* Makefile.am: stop generating wrong result file with * in name
* relaxng.c: fixing the include bug raised by Sebastian Rahtz
* result/relaxng/demo* test/relaxng/demo: added the tests from
  Sebastian reproducing the problem.
Daniel
2003-03-10 13:13:58 +00:00
Daniel Veillard
42f12e99d1 after and exchange with James Clark it appeared I had bug in URI parsing
* test/xsdtest/xsdtest.xml uri.c: after and exchange with James
  Clark it appeared I had bug in URI parsing code ...
* relaxng.c include/libxml/relaxng.h: completely revamped error
  reporting to not loose message from optional parts.
* xmllint.c: added timing for RNG validation steps
* result/relaxng/*: updated the result, all error messages changed
Daniel
2003-03-07 18:32:59 +00:00
Daniel Veillard
17bed98106 preparing release 2.5.4 updated and rebuilt the docs removed warnings
* configure.in: preparing release 2.5.4
* doc/*: updated and rebuilt the docs
* relaxng.c: removed warnings
* result/relaxng/*: updated the results
Daniel
2003-02-24 20:11:43 +00:00
Daniel Veillard
44e1dd0027 fixing some nodeinfo in entities problem raised by Glenn W. Bach
* parser.c: fixing some nodeinfo in entities problem raised
  by Glenn W. Bach
* relaxng.c: implemented the first section 7.3 check
* result/relaxng/*: updated the results
Daniel
2003-02-21 23:23:28 +00:00
Daniel Veillard
c5312d7c76 fixed some problems in the previous commit and finished implementing 4.16
* relaxng.c: fixed some problems in the previous commit
  and finished implementing 4.16 rules checking
  found 373 test schemas: 353 success 20 failures
  found 529 test instances: 519 success 6 failures
* result/relaxng/*: updated the results
Daniel
2003-02-21 17:14:10 +00:00
Daniel Veillard
1c745ade5d implemented the 4.20 and 4.21 simplification rules. updated the results
* relaxng.c: implemented the 4.20 and 4.21 simplification rules.
* result/relaxng/*: updated the results
Daniel
2003-02-20 00:11:02 +00:00
Daniel Veillard
ce14fa545f more bugfixes updated the results Daniel
* relaxng.c: more bugfixes
* result/relaxng/*: updated the results
Daniel
2003-02-19 17:32:48 +00:00
Daniel Veillard
2e9b165f9e patched to have shared libraries for Python regression tests and static
* Makefile.am configure.in: patched to have shared libraries
  for Python regression tests and static binaries for gdb debug
  in my development environment
* relaxng.c: more bugfixes
  found 373 test schemas: 296 success 77 failures
  found 529 test instances: 516 success 8 failures
* result/relaxng/*: updated the results
Daniel
2003-02-19 13:29:45 +00:00