;; qa-utf16path - check WIN_32 file and directory routines on ;; UTF-16 encoded paths (if (not (= ostype "Win32")) (println "This test is lengthy and normally only used on" " the Win32 UTF8 enabled versions.") ) (setq Yuki "\230\162\182\230\181\166\231\148\177\232\168\152") (setq InvalidUTF8 "\xC0\xC1") (setq UnicodeStr Yuki) (setq h 1) ; pre allocate mem so changes should be minimal (setq sRand (join (map char (map (curry + 32) (rand (- 127 32) (+ 10 90);(rand 100)) ) ) ))) (setq buff sRand) (define-macro (assert any) (local (result) (unless (setq result (eval any)) (throw-error (string "Expression failed! " any)) ) result ) ) (println "Check memory - hit .") (read-line) (println "Step 1") (println (time (begin (assert (make-dir UnicodeStr)) (assert (remove-dir UnicodeStr)) ) 1000 )) (println "Step 2") (assert (make-dir UnicodeStr)) (println (time (assert (directory? UnicodeStr)) 100000)) (println (time (assert (file? UnicodeStr)) 100000)) (println (time (begin (assert (directory)) (assert (real-path UnicodeStr)) (assert (change-dir UnicodeStr)) (assert (real-path)) (assert (directory)) (assert (change-dir "..")) ) 5000)) (assert (remove-dir UnicodeStr)) (println "Step 3") (println (time (begin (assert (write-file UnicodeStr sRand)) (assert (= (read-file UnicodeStr) sRand)) (assert (append-file UnicodeStr (reverse sRand))) (assert (delete-file UnicodeStr)) ) 5000 )) (println "Step 4") (assert (write-file UnicodeStr sRand)) (println (time (assert (not (directory? UnicodeStr))) 100000)) (println (time (assert (file? UnicodeStr)) 100000)) (println (time (assert (file-info UnicodeStr)) 100000)) (println "Step 5") (println (time (begin (assert (setq h (open UnicodeStr "w"))) (assert (write-buffer h sRand)) (assert (close h)) (assert (setq h (open UnicodeStr "a"))) (assert (write-buffer h (reverse sRand))) (assert (close h)) (assert (setq h (open UnicodeStr "r"))) (assert (read-buffer h 'buff 1024)) (assert (close h)) (assert (rename-file UnicodeStr "foo")) (assert (rename-file "foo" UnicodeStr)) ) 10000)) (assert (delete-file UnicodeStr)) (println "Step 6") (println (time (save UnicodeStr) 10000)) (assert (delete-file UnicodeStr))