VictoriaMetrics/lib/fs/reader_at_test.go
Aliaksandr Valialkin f4fd917e4f lib/fs: replace fs.OpenReaderAt with fs.MustOpenReaderAt
All the callers for fs.OpenReaderAt expect that the file will be opened.
So it is better to log fatal error inside fs.MustOpenReaderAt instead of leaving this to the caller.
2020-11-23 09:57:30 +02:00

35 lines
736 B
Go

package fs
import (
"fmt"
"io/ioutil"
"testing"
)
func TestReaderAt(t *testing.T) {
for _, bufSize := range []int{1, 1e1, 1e2, 1e3, 1e4, 1e5} {
t.Run(fmt.Sprintf("%d", bufSize), func(t *testing.T) {
testReaderAt(t, bufSize)
})
}
}
func testReaderAt(t *testing.T, bufSize int) {
path := "TestReaderAt"
const fileSize = 8 * 1024 * 1024
data := make([]byte, fileSize)
if err := ioutil.WriteFile(path, data, 0600); err != nil {
t.Fatalf("cannot create %q: %s", path, err)
}
defer MustRemoveAll(path)
r := MustOpenReaderAt(path)
defer r.MustClose()
buf := make([]byte, bufSize)
for i := 0; i < fileSize-bufSize; i += bufSize {
offset := int64(i)
r.MustReadAt(buf[:0], offset)
r.MustReadAt(buf, offset)
}
}