lib/connections: Use adaptive write size for rate limited connections (fixes #8630) (#8631)

This commit is contained in:
Jakob Borg
2022-11-03 15:44:46 +01:00
committed by GitHub
parent d8296ce111
commit 413c8cf4ea
2 changed files with 28 additions and 11 deletions
+14 -6
View File
@@ -218,7 +218,7 @@ func TestLimitedWriterWrite(t *testing.T) {
// A buffer with random data that is larger than the write size and not
// a precise multiple either.
src := make([]byte, int(12.5*maxSingleWriteSize))
src := make([]byte, int(12.5*8192))
if _, err := crand.Reader.Read(src); err != nil {
t.Fatal(err)
}
@@ -242,9 +242,14 @@ func TestLimitedWriterWrite(t *testing.T) {
t.Fatal(err)
}
// Verify there were lots of writes and that the end result is identical.
if cw.writeCount != 13 {
t.Error("expected lots of smaller writes, but not too many")
// Verify there were lots of writes (we expect one kilobyte write size
// for the very low rate in this test) and that the end result is
// identical.
if cw.writeCount < 10*8 {
t.Error("expected lots of smaller writes")
}
if cw.writeCount > 15*8 {
t.Error("expected fewer larger writes")
}
if !bytes.Equal(src, dst.Bytes()) {
t.Error("results should be equal")
@@ -319,8 +324,11 @@ func TestLimitedWriterWrite(t *testing.T) {
}
// Verify there were lots of writes and that the end result is identical.
if cw.writeCount != 13 {
t.Error("expected just the one write")
if cw.writeCount < 10*8 {
t.Error("expected lots of smaller writes")
}
if cw.writeCount > 15*8 {
t.Error("expected fewer larger writes")
}
if !bytes.Equal(src, dst.Bytes()) {
t.Error("results should be equal")