mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
io: fix detection of end_of_stream, when reading files through io.new_buffered_reader(reader: io.make_reader(f))
This commit is contained in:
29
vlib/io/os_file_reader_test.v
Normal file
29
vlib/io/os_file_reader_test.v
Normal file
@ -0,0 +1,29 @@
|
||||
import os
|
||||
import io
|
||||
|
||||
fn read_file(file string, cap int) []string {
|
||||
mut lines := []string{}
|
||||
mut f := os.open(file) or { panic(err) }
|
||||
defer {
|
||||
f.close()
|
||||
}
|
||||
mut r := io.new_buffered_reader(reader: io.make_reader(f), cap: cap)
|
||||
for {
|
||||
l := r.read_line() or { break }
|
||||
lines << l
|
||||
// println('Line: $l')
|
||||
}
|
||||
assert lines.len > 0
|
||||
assert r.end_of_stream == true
|
||||
println('------------------------------------------------ cap: ${cap:6}; read: ${lines.len:3} lines')
|
||||
return lines
|
||||
}
|
||||
|
||||
fn test_file_reader() {
|
||||
for cap := 64; cap <= 10000; cap += 256 {
|
||||
lines := read_file(@FILE, cap)
|
||||
assert lines.last() == '// my last line'
|
||||
}
|
||||
}
|
||||
|
||||
// my last line
|
Reference in New Issue
Block a user