1
0
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:
Delyan Angelov
2021-02-16 22:53:46 +02:00
parent 843de10442
commit 4961d3ea17
3 changed files with 57 additions and 16 deletions

View 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