1 ;; qa-utf16path - check WIN_32 file and directory routines on
2 ;; UTF-16 encoded paths
4 (if (not (= ostype
"Win32"))
5 (println "This test is lengthy and normally only used on"
6 " the Win32 UTF8 enabled versions.")
9 (setq Yuki
"\230\162\182\230\181\166\231\148\177\232\168\152")
10 (setq InvalidUTF8
"\xC0\xC1")
12 (setq UnicodeStr Yuki
)
14 (setq h
1) ; pre allocate mem so changes should be minimal
16 (join (map char
(map (curry + 32)
26 (define-macro (assert any
)
28 (unless (setq result
(eval any
))
29 (throw-error (string "Expression failed! " any
))
35 (println "Check memory - hit <enter>.")
42 (assert (make-dir UnicodeStr
))
43 (assert (remove-dir UnicodeStr
))
50 (assert (make-dir UnicodeStr
))
51 (println (time (assert (directory? UnicodeStr
)) 100000))
52 (println (time (assert (file? UnicodeStr
)) 100000))
55 (assert (real-path UnicodeStr
))
56 (assert (change-dir UnicodeStr
))
59 (assert (change-dir ".."))
61 (assert (remove-dir UnicodeStr
))
68 (assert (write-file UnicodeStr sRand
))
69 (assert (= (read-file UnicodeStr
) sRand
))
70 (assert (append-file UnicodeStr
(reverse sRand
)))
71 (assert (delete-file UnicodeStr
))
77 (assert (write-file UnicodeStr sRand
))
79 (println (time (assert (not (directory? UnicodeStr
))) 100000))
80 (println (time (assert (file? UnicodeStr
)) 100000))
82 (println (time (assert (file-info UnicodeStr
)) 100000))
87 (assert (setq h
(open UnicodeStr
"w")))
88 (assert (write-buffer h sRand
))
90 (assert (setq h
(open UnicodeStr
"a")))
91 (assert (write-buffer h
(reverse sRand
)))
93 (assert (setq h
(open UnicodeStr
"r")))
94 (assert (read-buffer h
'buff
1024))
96 (assert (rename-file UnicodeStr
"foo"))
97 (assert (rename-file "foo" UnicodeStr
))
100 (assert (delete-file UnicodeStr
))
104 (println (time (save UnicodeStr
) 10000))
106 (assert (delete-file UnicodeStr
))