Fixed klacks-error export, thanks to Andreas Fuchs.
[cxml/s11.git] / test / misc.lisp
blob84d65f4f560ec840386fe788ce9ac79d7ac55fb6
1 ;;;
2 ;;; When I'll grow up, I'll be a complete test suite.
4 (deftest utf-8
5 (flet ((doit (from below)
6 (loop for code from from below below do
7 (when (and (code-char code)
8 (not (eql code #xfffe))
9 (not (eql code #xffff)))
10 (let* ((a (if (< code #x10000)
11 (format nil "abc~C" (code-char code))
12 (let* ((x (- code #x10000))
13 (lo (ldb (byte 10 0) x))
14 (hi (ldb (byte 10 10) x)))
15 (format nil "abc~C~C"
16 (code-char (logior #xD800 hi))
17 (code-char
18 (logior #xDC00 lo))))))
19 (b (cxml:utf8-string-to-rod
20 (cxml:rod-to-utf8-string
21 a))))
22 (unless (string= a b)
23 (format t "FAIL: ~S ~A ~A~%"
24 (code-char code)
25 (map 'vector #'char-code a)
26 (map 'vector #'char-code b))))))))
27 (doit 32 #xD800)
28 (doit #x10000 char-code-limit)
29 (values)))