diff options
Diffstat (limited to 'libxml2/check-xinclude-test-suite.py')
-rwxr-xr-x | libxml2/check-xinclude-test-suite.py | 221 |
1 files changed, 0 insertions, 221 deletions
diff --git a/libxml2/check-xinclude-test-suite.py b/libxml2/check-xinclude-test-suite.py deleted file mode 100755 index f470011..0000000 --- a/libxml2/check-xinclude-test-suite.py +++ /dev/null @@ -1,221 +0,0 @@ -#!/usr/bin/python -import sys -import time -import os -import string -sys.path.insert(0, "python") -import libxml2 - -# -# the testsuite description -# -DIR="xinclude-test-suite" -CONF="testdescr.xml" -LOG="check-xinclude-test-suite.log" - -log = open(LOG, "w") - -os.chdir(DIR) - -test_nr = 0 -test_succeed = 0 -test_failed = 0 -test_error = 0 -# -# Error and warning handlers -# -error_nr = 0 -error_msg = '' - -def errorHandler(ctx, str): - global error_nr - global error_msg - - if string.find(str, "error:") >= 0: - error_nr = error_nr + 1 - if len(error_msg) < 300: - if len(error_msg) == 0 or error_msg[-1] == '\n': - error_msg = error_msg + " >>" + str - else: - error_msg = error_msg + str - -libxml2.registerErrorHandler(errorHandler, None) - -def testXInclude(filename, id): - global error_nr - global error_msg - global log - - error_nr = 0 - error_msg = '' - - print "testXInclude(%s, %s)" % (filename, id) - return 1 - -def runTest(test, basedir): - global test_nr - global test_failed - global test_error - global test_succeed - global error_msg - global log - - fatal_error = 0 - uri = test.prop('href') - id = test.prop('id') - type = test.prop('type') - if uri == None: - print "Test without ID:", uri - return -1 - if id == None: - print "Test without URI:", id - return -1 - if type == None: - print "Test without URI:", id - return -1 - if basedir != None: - URI = basedir + "/" + uri - else: - URI = uri - if os.access(URI, os.R_OK) == 0: - print "Test %s missing: base %s uri %s" % (URI, basedir, uri) - return -1 - - expected = None - outputfile = None - diff = None - if type != 'error': - output = test.xpathEval('string(output)') - if output == 'No output file.': - output = None - if output == '': - output = None - if output != None: - if basedir != None: - output = basedir + "/" + output - if os.access(output, os.R_OK) == 0: - print "Result for %s missing: %s" % (id, output) - output = None - else: - try: - f = open(output) - expected = f.read() - outputfile = output - except: - print "Result for %s unreadable: %s" % (id, output) - - try: - # print "testing %s" % (URI) - doc = libxml2.parseFile(URI) - except: - doc = None - if doc != None: - res = doc.xincludeProcess() - if res >= 0 and expected != None: - result = doc.serialize() - if result != expected: - print "Result for %s differs" % (id) - open("xinclude.res", "w").write(result) - diff = os.popen("diff %s xinclude.res" % outputfile).read() - - doc.freeDoc() - else: - print "Failed to parse %s" % (URI) - res = -1 - - - - test_nr = test_nr + 1 - if type == 'success': - if res > 0: - test_succeed = test_succeed + 1 - elif res == 0: - test_failed = test_failed + 1 - print "Test %s: no substitution done ???" % (id) - elif res < 0: - test_error = test_error + 1 - print "Test %s: failed valid XInclude processing" % (id) - elif type == 'error': - if res > 0: - test_error = test_error + 1 - print "Test %s: failed to detect invalid XInclude processing" % (id) - elif res == 0: - test_failed = test_failed + 1 - print "Test %s: Invalid but no substitution done" % (id) - elif res < 0: - test_succeed = test_succeed + 1 - elif type == 'optional': - if res > 0: - test_succeed = test_succeed + 1 - else: - print "Test %s: failed optional test" % (id) - - # Log the ontext - if res != 1: - log.write("Test ID %s\n" % (id)) - log.write(" File: %s\n" % (URI)) - content = string.strip(test.content) - while content[-1] == '\n': - content = content[0:-1] - log.write(" %s:%s\n\n" % (type, content)) - if error_msg != '': - log.write(" ----\n%s ----\n" % (error_msg)) - error_msg = '' - log.write("\n") - if diff != None: - log.write("diff from test %s:\n" %(id)) - log.write(" -----------\n%s\n -----------\n" % (diff)); - - return 0 - - -def runTestCases(case): - creator = case.prop('creator') - if creator != None: - print "=>", creator - base = case.getBase(None) - basedir = case.prop('basedir') - if basedir != None: - base = libxml2.buildURI(basedir, base) - test = case.children - while test != None: - if test.name == 'testcase': - runTest(test, base) - if test.name == 'testcases': - runTestCases(test) - test = test.next - -conf = libxml2.parseFile(CONF) -if conf == None: - print "Unable to load %s" % CONF - sys.exit(1) - -testsuite = conf.getRootElement() -if testsuite.name != 'testsuite': - print "Expecting TESTSUITE root element: aborting" - sys.exit(1) - -profile = testsuite.prop('PROFILE') -if profile != None: - print profile - -start = time.time() - -case = testsuite.children -while case != None: - if case.name == 'testcases': - old_test_nr = test_nr - old_test_succeed = test_succeed - old_test_failed = test_failed - old_test_error = test_error - runTestCases(case) - print " Ran %d tests: %d suceeded, %d failed and %d generated an error" % ( - test_nr - old_test_nr, test_succeed - old_test_succeed, - test_failed - old_test_failed, test_error - old_test_error) - case = case.next - -conf.freeDoc() -log.close() - -print "Ran %d tests: %d suceeded, %d failed and %d generated an error in %.2f s." % ( - test_nr, test_succeed, test_failed, test_error, time.time() - start) |