aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--Makefile.am2
-rw-r--r--relaxng.c2
-rw-r--r--result/relaxng/307377_00
-rw-r--r--result/relaxng/307377_0.err2
-rw-r--r--result/relaxng/307377_10
-rw-r--r--result/relaxng/307377_1.err3
-rw-r--r--result/relaxng/307377_20
-rw-r--r--result/relaxng/307377_2.err1
-rw-r--r--result/relaxng/307377_err1
-rw-r--r--result/relaxng/307377_valid0
-rw-r--r--runtest.c2
-rw-r--r--test/relaxng/307377.rng14
-rw-r--r--test/relaxng/307377_0.xml1
-rw-r--r--test/relaxng/307377_1.xml1
-rw-r--r--test/relaxng/307377_2.xml1
16 files changed, 34 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 253f7278..cee82fb6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+Wed Aug 10 18:21:41 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * 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.
+
Wed Aug 10 15:25:53 CEST 2005 Daniel Veillard <daniel@veillard.com>
* xinclude.c: fixed bug #302302, nasty but the fix is rather simple.
diff --git a/Makefile.am b/Makefile.am
index 6600f689..e1147b9d 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -998,7 +998,7 @@ Relaxtests: xmllint$(EXEEXT)
> res.$$name 2> err.$$name;\
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
diff $(srcdir)/result/relaxng/"$$name"_"$$xno" res.$$name;\
- if [ "$$name" != "tutor10_1" -a "$$name" != "tutor10_2" -a "$$name" != "tutor3_2" ] ; then \
+ if [ "$$name" != "tutor10_1" -a "$$name" != "tutor10_2" -a "$$name" != "tutor3_2" -a "$$name" != "307377" ] ; then \
diff $(srcdir)/result/relaxng/"$$name"_"$$xno".err \
err.$$name | grep -v "error detected at";\
fi ; grep Unimplemented err.$$name`; \
diff --git a/relaxng.c b/relaxng.c
index 41398e10..f315e1e1 100644
--- a/relaxng.c
+++ b/relaxng.c
@@ -8638,8 +8638,6 @@ xmlRelaxNGValidateValue(xmlRelaxNGValidCtxtPtr ctxt,
if (ctxt->errNr > 0)
xmlRelaxNGPopErrors(ctxt, 0);
}
- if (ret == 0)
- xmlRelaxNGNextValue(ctxt);
break;
}
case XML_RELAXNG_LIST:{
diff --git a/result/relaxng/307377_0 b/result/relaxng/307377_0
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/result/relaxng/307377_0
diff --git a/result/relaxng/307377_0.err b/result/relaxng/307377_0.err
new file mode 100644
index 00000000..1f465bbe
--- /dev/null
+++ b/result/relaxng/307377_0.err
@@ -0,0 +1,2 @@
+./test/relaxng/307377_0.xml:1: element number: Relax-NG validity error : Element number failed to validate attributes
+./test/relaxng/307377_0.xml fails to validate
diff --git a/result/relaxng/307377_1 b/result/relaxng/307377_1
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/result/relaxng/307377_1
diff --git a/result/relaxng/307377_1.err b/result/relaxng/307377_1.err
new file mode 100644
index 00000000..abfb5337
--- /dev/null
+++ b/result/relaxng/307377_1.err
@@ -0,0 +1,3 @@
+./test/relaxng/307377_1.xml:1: element number: Relax-NG validity error : Extra data in list: a
+./test/relaxng/307377_1.xml:1: element number: Relax-NG validity error : Element number failed to validate attributes
+./test/relaxng/307377_1.xml fails to validate
diff --git a/result/relaxng/307377_2 b/result/relaxng/307377_2
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/result/relaxng/307377_2
diff --git a/result/relaxng/307377_2.err b/result/relaxng/307377_2.err
new file mode 100644
index 00000000..158ea428
--- /dev/null
+++ b/result/relaxng/307377_2.err
@@ -0,0 +1 @@
+./test/relaxng/307377_2.xml validates
diff --git a/result/relaxng/307377_err b/result/relaxng/307377_err
new file mode 100644
index 00000000..5705eab7
--- /dev/null
+++ b/result/relaxng/307377_err
@@ -0,0 +1 @@
+./test/relaxng/307377.rng validates
diff --git a/result/relaxng/307377_valid b/result/relaxng/307377_valid
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/result/relaxng/307377_valid
diff --git a/runtest.c b/runtest.c
index 37c804d2..b5ac9730 100644
--- a/runtest.c
+++ b/runtest.c
@@ -3248,7 +3248,7 @@ rngStreamTest(const char *filename,
* hack is also done in the Makefile
*/
if ((!strcmp(prefix, "tutor10_1")) || (!strcmp(prefix, "tutor10_2")) ||
- (!strcmp(prefix, "tutor3_2")))
+ (!strcmp(prefix, "tutor3_2")) || (!strcmp(prefix, "307377")))
disable_err = 1;
snprintf(pattern, 499, "./test/relaxng/%s_?.xml", prefix);
diff --git a/test/relaxng/307377.rng b/test/relaxng/307377.rng
new file mode 100644
index 00000000..37a87c9f
--- /dev/null
+++ b/test/relaxng/307377.rng
@@ -0,0 +1,14 @@
+<element name="number" xmlns="http://relaxng.org/ns/structure/1.0">
+ <attribute name="val">
+ <list>
+ <oneOrMore>
+ <choice>
+ <value>1</value>
+ <value>2</value>
+ <value>3</value>
+ </choice>
+ </oneOrMore>
+ </list>
+ </attribute>
+ <text/>
+</element>
diff --git a/test/relaxng/307377_0.xml b/test/relaxng/307377_0.xml
new file mode 100644
index 00000000..106d02ae
--- /dev/null
+++ b/test/relaxng/307377_0.xml
@@ -0,0 +1 @@
+<number val="a 1 b 2 c 3" />
diff --git a/test/relaxng/307377_1.xml b/test/relaxng/307377_1.xml
new file mode 100644
index 00000000..73b0d1c6
--- /dev/null
+++ b/test/relaxng/307377_1.xml
@@ -0,0 +1 @@
+<number val="1 a 2 b 3 c" />
diff --git a/test/relaxng/307377_2.xml b/test/relaxng/307377_2.xml
new file mode 100644
index 00000000..4a041aaa
--- /dev/null
+++ b/test/relaxng/307377_2.xml
@@ -0,0 +1 @@
+<number val="1 2 3" />