41 lines
1.1 KiB
Text
Executable file
41 lines
1.1 KiB
Text
Executable file
#!/usr/bin/newlisp
|
|
|
|
;; Test for LFS (Large Files Support)
|
|
;; create a file with more than 2^32 bytes
|
|
;; and read back some records for verification
|
|
;; Needs approximately 5 Gigabyte of diskspace
|
|
;; writing a file of 5,000,000 records of 1k each.
|
|
|
|
(println)
|
|
(println "This test for LFS (Large Files Support) takes a long time to run.")
|
|
(println "It writes 5 Million records to a 5 Gigabyte filei, then reads back.")
|
|
(println)
|
|
(print "You really want to run this test y/n ? ")
|
|
(if (not (starts-with (read-line) "y" 1))
|
|
(exit))
|
|
|
|
(set 'file (open "largefile" "write"))
|
|
|
|
(dotimes (i 5000000)
|
|
(set 'rec (append (format "%08d" i) (dup "#" 992)))
|
|
(write-buffer file rec 1000)
|
|
(if (= 0 (% i 10000)) (print (format "%10d KB of 5000000 KB written \r" i)))
|
|
)
|
|
(close file)
|
|
|
|
(println)
|
|
|
|
(set 'file (open "largefile" "read"))
|
|
|
|
(for (i 0 4999999 10000)
|
|
(set 'test (append (format "%08d" i) (dup "#" 992)))
|
|
(seek file (mul i 1000))
|
|
(read-buffer file rec 1000)
|
|
(if (= test rec)
|
|
(print (format "%8d record -> Ok\r" i) (0 8 rec))
|
|
(println i " record -> Error reading " (0 8 rec)))
|
|
)
|
|
|
|
(printlni ">>>>> tested Large file system support")
|
|
(exit)
|
|
|