Small tweak to readahead, and fix the tests
This commit is contained in:
parent
ced5733c88
commit
b2b290a589
@ -276,9 +276,13 @@ again:
|
||||
// Calculates the number of pieces to set to Readahead priority, after the
|
||||
// Now, and Next pieces.
|
||||
func readaheadPieces(readahead, pieceLength int64) (ret int) {
|
||||
// Expand the readahead to fit any partial pieces. Subtract 1 for the
|
||||
// "next" piece that is assigned.
|
||||
ret = int((readahead+pieceLength-1)/pieceLength - 1)
|
||||
// Lengthen the "readahead tail" to smooth blockiness that occurs when the
|
||||
// piece length is much larger than the readahead.
|
||||
if ret < 2 {
|
||||
ret = 2
|
||||
ret++
|
||||
}
|
||||
return
|
||||
}
|
||||
|
@ -15,6 +15,7 @@ import (
|
||||
_ "github.com/anacrolix/envpprof"
|
||||
"github.com/anacrolix/utp"
|
||||
"github.com/bradfitz/iter"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"gopkg.in/check.v1"
|
||||
|
||||
"github.com/anacrolix/torrent/bencode"
|
||||
@ -295,15 +296,14 @@ func TestReadaheadPieces(t *testing.T) {
|
||||
readaheadPieces int
|
||||
}{
|
||||
{5 * 1024 * 1024, 256 * 1024, 19},
|
||||
{5 * 1024 * 1024, 5 * 1024 * 1024, 0},
|
||||
{5*1024*1024 - 1, 5 * 1024 * 1024, 0},
|
||||
{5 * 1024 * 1024, 5*1024*1024 - 1, 1},
|
||||
{0, 5 * 1024 * 1024, -1},
|
||||
{5 * 1024 * 1024, 5 * 1024 * 1024, 1},
|
||||
{5*1024*1024 - 1, 5 * 1024 * 1024, 1},
|
||||
{5 * 1024 * 1024, 5*1024*1024 - 1, 2},
|
||||
{0, 5 * 1024 * 1024, 0},
|
||||
{5 * 1024 * 1024, 1048576, 4},
|
||||
} {
|
||||
if readaheadPieces(case_.readaheadBytes, case_.pieceLength) != case_.readaheadPieces {
|
||||
t.Fatalf("case failed: %v", case_)
|
||||
}
|
||||
pieces := readaheadPieces(case_.readaheadBytes, case_.pieceLength)
|
||||
assert.Equal(t, case_.readaheadPieces, pieces, "%v", case_)
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user