utf8-dom fixes.
recoding nach utf-8 jetzt der default.
This commit is contained in:
@ -175,7 +175,8 @@
|
||||
(defun read-members (&optional (directory *directory*))
|
||||
(let* ((pathname (merge-pathnames "build/dom2-interfaces.xml" directory))
|
||||
(builder (rune-dom:make-dom-builder))
|
||||
(library (dom:document-element (cxml:parse-file pathname builder)))
|
||||
(library (dom:document-element
|
||||
(cxml:parse-file pathname builder :recode nil)))
|
||||
(methods '())
|
||||
(fields '()))
|
||||
(do-child-elements (interface library :name "interface")
|
||||
@ -584,7 +585,8 @@
|
||||
(catch 'give-up
|
||||
(let* ((builder (rune-dom:make-dom-builder))
|
||||
(cxml::*validate* nil) ;dom1.dtd is buggy
|
||||
(test (dom:document-element (cxml:parse-file pathname builder)))
|
||||
(test (dom:document-element
|
||||
(cxml:parse-file pathname builder :recode nil)))
|
||||
title
|
||||
(bindings '())
|
||||
(code '()))
|
||||
@ -631,7 +633,8 @@
|
||||
(setf name (runes:rod-string name))
|
||||
(cxml:parse-file
|
||||
(make-pathname :name name :type "xml" :defaults *files-directory*)
|
||||
(rune-dom:make-dom-builder)))
|
||||
(rune-dom:make-dom-builder)
|
||||
:recode nil))
|
||||
|
||||
(defparameter *bad-tests*
|
||||
'("hc_elementnormalize2.xml"
|
||||
@ -656,7 +659,7 @@
|
||||
(let* ((all-tests (merge-pathnames "alltests.xml" test-directory))
|
||||
(builder (rune-dom:make-dom-builder))
|
||||
(suite (dom:document-element
|
||||
(cxml:parse-file all-tests builder)))
|
||||
(cxml:parse-file all-tests builder :recode nil)))
|
||||
(*files-directory*
|
||||
(merge-pathnames "files/" test-directory)))
|
||||
(do-child-elements (member suite)
|
||||
|
||||
102
test/utf8domtest.diff
Normal file
102
test/utf8domtest.diff
Normal file
@ -0,0 +1,102 @@
|
||||
Index: test/domtest.lisp
|
||||
===================================================================
|
||||
RCS file: /project/cxml/cvsroot/cxml/test/domtest.lisp,v
|
||||
retrieving revision 1.13
|
||||
diff -u -r1.13 domtest.lisp
|
||||
--- test/domtest.lisp 27 Dec 2005 00:21:37 -0000 1.13
|
||||
+++ test/domtest.lisp 27 Dec 2005 00:46:00 -0000
|
||||
@@ -137,21 +137,22 @@
|
||||
((digit-char-p (runes:rune-char (elt str 0)))
|
||||
(parse-integer (runes:rod-string str)))
|
||||
((runes:rune= (elt str 0) #.(runes:char-rune #\"))
|
||||
- (let ((v (make-array 1 :fill-pointer 0 :adjustable t)))
|
||||
- (for* ((i = 1 :then (1+ i))
|
||||
- (c = (elt str i))
|
||||
- :until (runes:rune= c #.(runes:char-rune #\")))
|
||||
- (if (runes:rune= c #.(runes:char-rune #\\))
|
||||
- (let ((frob
|
||||
- (progn
|
||||
- (incf i)
|
||||
- (elt str i))))
|
||||
- (ecase frob
|
||||
- ;; ...
|
||||
- (#/n (vector-push-extend #/newline v (length v)))
|
||||
- ((#/\\ #/\") (vector-push-extend #/\\ v (length v)))))
|
||||
- (vector-push-extend c v (length v))))
|
||||
- (coerce v 'runes::simple-rod)))
|
||||
+ (utf8-dom::%rod
|
||||
+ (let ((v (make-array 1 :fill-pointer 0 :adjustable t)))
|
||||
+ (for* ((i = 1 :then (1+ i))
|
||||
+ (c = (elt str i))
|
||||
+ :until (runes:rune= c #.(runes:char-rune #\")))
|
||||
+ (if (runes:rune= c #.(runes:char-rune #\\))
|
||||
+ (let ((frob
|
||||
+ (progn
|
||||
+ (incf i)
|
||||
+ (elt str i))))
|
||||
+ (ecase frob
|
||||
+ ;; ...
|
||||
+ (#/n (vector-push-extend #/newline v (length v)))
|
||||
+ ((#/\\ #/\") (vector-push-extend #/\\ v (length v)))))
|
||||
+ (vector-push-extend c v (length v))))
|
||||
+ (coerce v 'runes::simple-rod))))
|
||||
(t
|
||||
(%intern str))))
|
||||
|
||||
@@ -368,7 +369,7 @@
|
||||
|
||||
(defun translate-implementation (elt)
|
||||
(with-attributes (|var|) elt
|
||||
- (maybe-setf (%intern |var|) `'rune-dom:implementation)))
|
||||
+ (maybe-setf (%intern |var|) `'utf8-dom:implementation)))
|
||||
|
||||
(defun translate-length (load)
|
||||
;; XXX Soweit ich sehe unterscheiden die Tests nicht zwischen
|
||||
@@ -406,7 +407,7 @@
|
||||
(if (nullify |obj|)
|
||||
(translate-member element)
|
||||
(maybe-setf (%intern |var|)
|
||||
- `(dom:has-feature 'rune-dom:implementation
|
||||
+ `(dom:has-feature 'utf8-dom:implementation
|
||||
,(parse-java-literal |feature|)
|
||||
,(parse-java-literal |version|))))))
|
||||
|
||||
@@ -493,9 +494,9 @@
|
||||
(return
|
||||
`(block assert-domexception
|
||||
(handler-bind
|
||||
- ((rune-dom::dom-exception
|
||||
+ ((utf8-dom::dom-exception
|
||||
(lambda (c)
|
||||
- (when (eq (rune-dom::dom-exception-key c)
|
||||
+ (when (eq (utf8-dom::dom-exception-key c)
|
||||
,(intern (tag-name c) :keyword))
|
||||
(return-from assert-domexception)))))
|
||||
,@(translate-body c)
|
||||
@@ -506,7 +507,7 @@
|
||||
,@(map-child-elements
|
||||
'list
|
||||
(lambda (exception)
|
||||
- `(when (eq (rune-dom::dom-exception-key c)
|
||||
+ `(when (eq (utf8-dom::dom-exception-key c)
|
||||
,(intern (runes:rod-string (dom:get-attribute exception "code"))
|
||||
:keyword))
|
||||
,@(translate-body exception)
|
||||
@@ -516,7 +517,7 @@
|
||||
(defun translate-try (element)
|
||||
`(block try
|
||||
(handler-bind
|
||||
- ((rune-dom::dom-exception
|
||||
+ ((utf8-dom::dom-exception
|
||||
,(translate-catch
|
||||
(do-child-elements (c element :name "catch") (return c))
|
||||
'(return-from try))))
|
||||
@@ -631,7 +632,7 @@
|
||||
(setf name (runes:rod-string name))
|
||||
(cxml:parse-file
|
||||
(make-pathname :name name :type "xml" :defaults *files-directory*)
|
||||
- (rune-dom:make-dom-builder)))
|
||||
+ (cxml:make-recoder (utf8-dom:make-dom-builder) 'cxml:rod-to-utf8-string)))
|
||||
|
||||
(defparameter *bad-tests*
|
||||
'("hc_elementnormalize2.xml"
|
||||
@ -77,7 +77,7 @@
|
||||
(defun run-all-tests (directory)
|
||||
(let* ((pathname (merge-pathnames "xmlconf.xml" directory))
|
||||
(builder (rune-dom:make-dom-builder))
|
||||
(xmlconf (cxml:parse-file pathname builder))
|
||||
(xmlconf (cxml:parse-file pathname builder :recode nil))
|
||||
(ntried 0)
|
||||
(nfailed 0)
|
||||
(nskipped 0)
|
||||
@ -125,6 +125,7 @@
|
||||
(let ((document (apply #'cxml:parse-file
|
||||
pathname
|
||||
(rune-dom:make-dom-builder)
|
||||
:recode nil
|
||||
args)))
|
||||
(cond
|
||||
((null output)
|
||||
@ -161,7 +162,10 @@
|
||||
(handler-case
|
||||
(progn
|
||||
(format t " [validating:]")
|
||||
(cxml:parse-file pathname (rune-dom:make-dom-builder) :validate t)
|
||||
(cxml:parse-file pathname
|
||||
(rune-dom:make-dom-builder)
|
||||
:recode nil
|
||||
:validate t)
|
||||
(error "validity error not detected")
|
||||
nil)
|
||||
(cxml:validity-error ()
|
||||
@ -174,7 +178,10 @@
|
||||
(handler-case
|
||||
(progn
|
||||
(format t " [not validating:]")
|
||||
(cxml:parse-file pathname (rune-dom:make-dom-builder) :validate nil)
|
||||
(cxml:parse-file pathname
|
||||
(rune-dom:make-dom-builder)
|
||||
:recode nil
|
||||
:validate nil)
|
||||
(error "well-formedness violation not detected")
|
||||
nil)
|
||||
(cxml:well-formedness-violation ()
|
||||
@ -183,7 +190,10 @@
|
||||
(handler-case
|
||||
(progn
|
||||
(format t " [validating:]")
|
||||
(cxml:parse-file pathname (rune-dom:make-dom-builder) :validate t)
|
||||
(cxml:parse-file pathname
|
||||
(rune-dom:make-dom-builder)
|
||||
:recode nil
|
||||
:validate t)
|
||||
(error "well-formedness violation not detected")
|
||||
nil)
|
||||
(cxml:well-formedness-violation ()
|
||||
|
||||
Reference in New Issue
Block a user