| 1 | import os |
| 2 | import io |
| 3 | |
| 4 | fn read_file(file string, cap int) []string { |
| 5 | mut lines := []string{} |
| 6 | mut f := os.open(file) or { panic(err) } |
| 7 | defer { |
| 8 | f.close() |
| 9 | } |
| 10 | mut r := io.new_buffered_reader(reader: f, cap: cap) |
| 11 | for { |
| 12 | l := r.read_line() or { break } |
| 13 | lines << l |
| 14 | // println('Line: ${l}') |
| 15 | } |
| 16 | assert lines.len > 0 |
| 17 | assert r.end_of_stream == true |
| 18 | println('------------------------------------------------ cap: ${cap:6}; read: ${lines.len:3} lines') |
| 19 | return lines |
| 20 | } |
| 21 | |
| 22 | fn test_file_reader() { |
| 23 | for cap := 1; cap <= 10000; cap += 256 { |
| 24 | lines := read_file(@FILE, cap) |
| 25 | assert lines.last() == '// my last line' |
| 26 | } |
| 27 | } |
| 28 | |
| 29 | // my last line |
| 30 | |