package filer import ( "fmt" "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" "math/rand" "testing" ) func TestReadResolvedChunks(t *testing.T) { chunks := []*filer_pb.FileChunk{ { FileId: "a", Offset: 0, Size: 100, Mtime: 1, }, { FileId: "b", Offset: 50, Size: 100, Mtime: 2, }, { FileId: "c", Offset: 200, Size: 50, Mtime: 3, }, { FileId: "d", Offset: 250, Size: 50, Mtime: 4, }, { FileId: "e", Offset: 175, Size: 100, Mtime: 5, }, } visibles := readResolvedChunks(chunks) for _, visible := range visibles { fmt.Printf("[%d,%d) %s %d\n", visible.start, visible.stop, visible.fileId, visible.modifiedTime) } } func TestRandomizedReadResolvedChunks(t *testing.T) { var limit int64 = 1024*1024 array := make([]int64, limit) var chunks []*filer_pb.FileChunk for ts := int64(0); ts < 1024; ts++ { x := rand.Int63n(limit) y := rand.Int63n(limit) size := x - y if size < 0 { size = -size } if size > 1024 { size = 1024 } start := x if start > y { start = y } chunks = append(chunks, randomWrite(array, start, size, ts)) } visibles := readResolvedChunks(chunks) for _, visible := range visibles { for i := visible.start; i