newlisp/qa-specific-tests/qa-lfs

42 lines
1.1 KiB
Plaintext
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)