mirror of
https://git.yoctoproject.org/poky
synced 2026-02-21 17:09:42 +01:00
Backport more test cases fixes from upstream, and add runsuite to the ptests. (From OE-Core rev: a6de5fa28fc90e0184d3d86822d06de5d93bbc44) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
223 lines
7.7 KiB
Diff
223 lines
7.7 KiB
Diff
Backport the following patches to fix the reader2 and runsuite test cases:
|
|
|
|
b92768cd tests: Enable "runsuite" test
|
|
0ac8c15e python/tests/reader2: use absolute paths everywhere
|
|
b9ba5e1d python/tests/reader2: always exit(1) if a test fails
|
|
|
|
Upstream-Status: Backport
|
|
Signed-off-by: Ross Burton <ross.burton@arm.com>
|
|
|
|
diff --git a/python/tests/reader2.py b/python/tests/reader2.py
|
|
index 65cecd47..6e6353b4 100755
|
|
--- a/python/tests/reader2.py
|
|
+++ b/python/tests/reader2.py
|
|
@@ -6,7 +6,6 @@
|
|
import sys
|
|
import glob
|
|
import os
|
|
-import string
|
|
import libxml2
|
|
try:
|
|
import StringIO
|
|
@@ -20,103 +19,104 @@ libxml2.debugMemory(1)
|
|
|
|
err = ""
|
|
basedir = os.path.dirname(os.path.realpath(__file__))
|
|
-dir_prefix = os.path.join(basedir, "../../test/valid/")
|
|
+dir_prefix = os.path.realpath(os.path.join(basedir, "..", "..", "test", "valid"))
|
|
+
|
|
# This dictionary reflects the contents of the files
|
|
# ../../test/valid/*.xml.err that are not empty, except that
|
|
# the file paths in the messages start with ../../test/
|
|
|
|
expect = {
|
|
'766956':
|
|
-"""../../test/valid/dtds/766956.dtd:2: parser error : PEReference: expecting ';'
|
|
+"""{0}/dtds/766956.dtd:2: parser error : PEReference: expecting ';'
|
|
%ä%ent;
|
|
^
|
|
-../../test/valid/dtds/766956.dtd:2: parser error : Content error in the external subset
|
|
+{0}/dtds/766956.dtd:2: parser error : Content error in the external subset
|
|
%ä%ent;
|
|
^
|
|
Entity: line 1:
|
|
value
|
|
^
|
|
-""",
|
|
+""".format(dir_prefix),
|
|
'781333':
|
|
-"""../../test/valid/781333.xml:4: element a: validity error : Element a content does not follow the DTD, expecting ( ..., got
|
|
+"""{0}/781333.xml:4: element a: validity error : Element a content does not follow the DTD, expecting ( ..., got
|
|
<a/>
|
|
^
|
|
-../../test/valid/781333.xml:5: element a: validity error : Element a content does not follow the DTD, Expecting more child
|
|
+{0}/781333.xml:5: element a: validity error : Element a content does not follow the DTD, Expecting more child
|
|
|
|
^
|
|
-""",
|
|
+""".format(dir_prefix),
|
|
'cond_sect2':
|
|
-"""../../test/valid/dtds/cond_sect2.dtd:15: parser error : All markup of the conditional section is not in the same entity
|
|
+"""{0}/dtds/cond_sect2.dtd:15: parser error : All markup of the conditional section is not in the same entity
|
|
%ent;
|
|
^
|
|
Entity: line 1:
|
|
]]>
|
|
^
|
|
-../../test/valid/dtds/cond_sect2.dtd:17: parser error : Content error in the external subset
|
|
+{0}/dtds/cond_sect2.dtd:17: parser error : Content error in the external subset
|
|
|
|
^
|
|
-""",
|
|
+""".format(dir_prefix),
|
|
'rss':
|
|
-"""../../test/valid/rss.xml:177: element rss: validity error : Element rss does not carry attribute version
|
|
+"""{0}/rss.xml:177: element rss: validity error : Element rss does not carry attribute version
|
|
</rss>
|
|
^
|
|
-""",
|
|
+""".format(dir_prefix),
|
|
't8':
|
|
-"""../../test/valid/t8.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
|
|
+"""{0}/t8.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
|
|
|
|
%defroot; %defmiddle; %deftest;
|
|
^
|
|
Entity: line 1:
|
|
<!ELEMENT root (middle) >
|
|
^
|
|
-../../test/valid/t8.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
|
|
+{0}/t8.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
|
|
|
|
%defroot; %defmiddle; %deftest;
|
|
^
|
|
Entity: line 1:
|
|
<!ELEMENT middle (test) >
|
|
^
|
|
-../../test/valid/t8.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
|
|
+{0}/t8.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
|
|
|
|
%defroot; %defmiddle; %deftest;
|
|
^
|
|
Entity: line 1:
|
|
<!ELEMENT test (#PCDATA) >
|
|
^
|
|
-""",
|
|
+""".format(dir_prefix),
|
|
't8a':
|
|
-"""../../test/valid/t8a.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
|
|
+"""{0}/t8a.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
|
|
|
|
%defroot;%defmiddle;%deftest;
|
|
^
|
|
Entity: line 1:
|
|
<!ELEMENT root (middle) >
|
|
^
|
|
-../../test/valid/t8a.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
|
|
+{0}/t8a.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
|
|
|
|
%defroot;%defmiddle;%deftest;
|
|
^
|
|
Entity: line 1:
|
|
<!ELEMENT middle (test) >
|
|
^
|
|
-../../test/valid/t8a.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
|
|
+{0}/t8a.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
|
|
|
|
%defroot;%defmiddle;%deftest;
|
|
^
|
|
Entity: line 1:
|
|
<!ELEMENT test (#PCDATA) >
|
|
^
|
|
-""",
|
|
+""".format(dir_prefix),
|
|
'xlink':
|
|
-"""../../test/valid/xlink.xml:450: element termdef: validity error : ID dt-arc already defined
|
|
+"""{0}/xlink.xml:450: element termdef: validity error : ID dt-arc already defined
|
|
<p><termdef id="dt-arc" term="Arc">An <ter
|
|
^
|
|
validity error : attribute def line 199 references an unknown ID "dt-xlg"
|
|
-""",
|
|
+""".format(dir_prefix),
|
|
}
|
|
|
|
# Add prefix_dir and extension to the keys
|
|
-expect = {"{}{}.xml".format(dir_prefix, key): val for key, val in expect.items()}
|
|
+expect = {os.path.join(dir_prefix, key + ".xml"): val for key, val in expect.items()}
|
|
|
|
def callback(ctx, str):
|
|
global err
|
|
@@ -124,11 +124,12 @@ def callback(ctx, str):
|
|
libxml2.registerErrorHandler(callback, "")
|
|
|
|
parsing_error_files = ["766956", "cond_sect2", "t8", "t8a"]
|
|
-expect_parsing_error = ["{}{}.xml".format(dir_prefix, f) for f in parsing_error_files]
|
|
+expect_parsing_error = [os.path.join(dir_prefix, f + ".xml") for f in parsing_error_files]
|
|
|
|
-valid_files = glob.glob(dir_prefix + "*.x*")
|
|
+valid_files = glob.glob(os.path.join(dir_prefix, "*.x*"))
|
|
assert valid_files, "found no valid files in '{}'".format(dir_prefix)
|
|
valid_files.sort()
|
|
+failures = 0
|
|
for file in valid_files:
|
|
err = ""
|
|
reader = libxml2.newTextReaderFilename(file)
|
|
@@ -142,9 +143,15 @@ for file in valid_files:
|
|
#sys.exit(1)
|
|
if (err):
|
|
if not(file in expect and err == expect[file]):
|
|
+ failures += 1
|
|
print("Error: ", err)
|
|
if file in expect:
|
|
print("Expected: ", expect[file])
|
|
+
|
|
+if failures:
|
|
+ print("Failed %d tests" % failures)
|
|
+ sys.exit(1)
|
|
+
|
|
#
|
|
# another separate test based on Stephane Bidoul one
|
|
#
|
|
@@ -337,9 +344,11 @@ while reader.Read() == 1:
|
|
if res != expect:
|
|
print("test5 failed: unexpected output")
|
|
print(res)
|
|
+ sys.exit(1)
|
|
if err != "":
|
|
print("test5 failed: validation error found")
|
|
print(err)
|
|
+ sys.exit(1)
|
|
|
|
#
|
|
# cleanup
|
|
diff --git a/runsuite.c b/runsuite.c
|
|
index 483490a2..a522d24b 100644
|
|
--- a/runsuite.c
|
|
+++ b/runsuite.c
|
|
@@ -1054,13 +1054,18 @@ main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) {
|
|
old_tests = nb_tests;
|
|
old_leaks = nb_leaks;
|
|
xsdTest();
|
|
- if ((nb_errors == old_errors) && (nb_leaks == old_leaks))
|
|
- printf("Ran %d tests, no errors\n", nb_tests - old_tests);
|
|
- else
|
|
- printf("Ran %d tests, %d errors, %d leaks\n",
|
|
- nb_tests - old_tests,
|
|
- nb_errors - old_errors,
|
|
- nb_leaks - old_leaks);
|
|
+ printf("Ran %d tests, %d errors, %d leaks\n",
|
|
+ nb_tests - old_tests,
|
|
+ nb_errors - old_errors,
|
|
+ nb_leaks - old_leaks);
|
|
+ if (nb_errors - old_errors == 10) {
|
|
+ printf("10 errors were expected\n");
|
|
+ nb_errors = old_errors;
|
|
+ } else {
|
|
+ printf("10 errors were expected, got %d errors\n",
|
|
+ nb_errors - old_errors);
|
|
+ nb_errors = old_errors + 1;
|
|
+ }
|
|
old_errors = nb_errors;
|
|
old_tests = nb_tests;
|
|
old_leaks = nb_leaks;
|