completed new reno test with exchange
This commit is contained in:
parent
e1241b2cf0
commit
c817930294
@ -39,6 +39,9 @@ func newNewRenoTest(ctx context.Context, rtt time.Duration) *newRenoTest {
|
||||
p, _, _ = nr.sideB.Handle(ctx, p)
|
||||
p, _, _ = nr.sideA.Handle(ctx, p)
|
||||
|
||||
nr.sideB.ReceivedPacket(0, nr.sideA.NextAck(), nr.sideA.NextNack())
|
||||
nr.sideA.ReceivedPacket(0, nr.sideB.NextAck(), nr.sideB.NextNack())
|
||||
|
||||
return nr
|
||||
}
|
||||
|
||||
@ -162,6 +165,9 @@ func TestNewReno_Congestion(t *testing.T) {
|
||||
c.RunSideA(ctx)
|
||||
c.RunSideB(ctx)
|
||||
|
||||
sideAinitialAck := c.sideA.ack
|
||||
sideBinitialAck := c.sideB.ack
|
||||
|
||||
// ACT
|
||||
for i := 0; i < numPackets; i++ {
|
||||
// sleep to simulate preparing packet
|
||||
@ -181,10 +187,10 @@ func TestNewReno_Congestion(t *testing.T) {
|
||||
// ASSERT
|
||||
|
||||
assert.Equal(t, uint32(0), c.sideA.nack)
|
||||
assert.Equal(t, uint32(0), c.sideA.ack)
|
||||
assert.Equal(t, sideAinitialAck, c.sideA.ack)
|
||||
|
||||
assert.Equal(t, uint32(0), c.sideB.nack)
|
||||
assert.Equal(t, uint32(numPackets), c.sideB.ack)
|
||||
assert.Equal(t, sideBinitialAck + uint32(numPackets), c.sideB.ack)
|
||||
})
|
||||
|
||||
t.Run("SequenceLoss", func(t *testing.T) {
|
||||
@ -200,13 +206,16 @@ func TestNewReno_Congestion(t *testing.T) {
|
||||
c.RunSideA(ctx)
|
||||
c.RunSideB(ctx)
|
||||
|
||||
sideAinitialAck := c.sideA.ack
|
||||
sideBinitialAck := c.sideB.ack
|
||||
|
||||
// ACT
|
||||
for i := 0; i < numPackets; i++ {
|
||||
for i := 1; i <= numPackets; i++ {
|
||||
// sleep to simulate preparing packet
|
||||
time.Sleep(1 * time.Millisecond)
|
||||
seq, _ := c.sideA.Sequence(ctx)
|
||||
|
||||
if seq == 20 {
|
||||
if i == 20 {
|
||||
// Simulate packet loss of sequence 20
|
||||
continue
|
||||
}
|
||||
@ -223,10 +232,10 @@ func TestNewReno_Congestion(t *testing.T) {
|
||||
// ASSERT
|
||||
|
||||
assert.Equal(t, uint32(0), c.sideA.nack)
|
||||
assert.Equal(t, uint32(0), c.sideA.ack)
|
||||
assert.Equal(t, sideAinitialAck, c.sideA.ack)
|
||||
|
||||
assert.Equal(t, uint32(20), c.sideB.nack)
|
||||
assert.Equal(t, uint32(numPackets), c.sideB.ack)
|
||||
assert.Equal(t, sideBinitialAck + uint32(20), c.sideB.nack)
|
||||
assert.Equal(t, sideBinitialAck + uint32(numPackets), c.sideB.ack)
|
||||
})
|
||||
})
|
||||
|
||||
@ -244,11 +253,14 @@ func TestNewReno_Congestion(t *testing.T) {
|
||||
c.RunSideA(ctx)
|
||||
c.RunSideB(ctx)
|
||||
|
||||
sideAinitialAck := c.sideA.ack
|
||||
sideBinitialAck := c.sideB.ack
|
||||
|
||||
// ACT
|
||||
done := make(chan struct{})
|
||||
|
||||
go func() {
|
||||
for i := 0; i < numPackets; i++ {
|
||||
for i := 1; i <= numPackets; i++ {
|
||||
time.Sleep(1 * time.Millisecond)
|
||||
seq, _ := c.sideA.Sequence(ctx)
|
||||
|
||||
@ -263,7 +275,7 @@ func TestNewReno_Congestion(t *testing.T) {
|
||||
}()
|
||||
|
||||
go func() {
|
||||
for i := 0; i < numPackets; i++ {
|
||||
for i := 1; i <= numPackets; i++ {
|
||||
time.Sleep(1 * time.Millisecond)
|
||||
seq, _ := c.sideB.Sequence(ctx)
|
||||
|
||||
@ -285,10 +297,10 @@ func TestNewReno_Congestion(t *testing.T) {
|
||||
// ASSERT
|
||||
|
||||
assert.Equal(t, uint32(0), c.sideA.nack)
|
||||
assert.Equal(t, uint32(numPackets), c.sideA.ack)
|
||||
assert.Equal(t, sideAinitialAck + uint32(numPackets), c.sideA.ack)
|
||||
|
||||
assert.Equal(t, uint32(0), c.sideB.nack)
|
||||
assert.Equal(t, uint32(numPackets), c.sideB.ack)
|
||||
assert.Equal(t, sideBinitialAck + uint32(numPackets), c.sideB.ack)
|
||||
})
|
||||
|
||||
t.Run("SequenceLoss", func(t *testing.T) {
|
||||
@ -304,15 +316,18 @@ func TestNewReno_Congestion(t *testing.T) {
|
||||
c.RunSideA(ctx)
|
||||
c.RunSideB(ctx)
|
||||
|
||||
sideAinitialAck := c.sideA.ack
|
||||
sideBinitialAck := c.sideB.ack
|
||||
|
||||
// ACT
|
||||
done := make(chan struct{})
|
||||
|
||||
go func() {
|
||||
for i := 0; i < numPackets; i++ {
|
||||
for i := 1; i <= numPackets; i++ {
|
||||
time.Sleep(1 * time.Millisecond)
|
||||
seq, _ := c.sideA.Sequence(ctx)
|
||||
|
||||
if seq == 9 {
|
||||
if i == 9 {
|
||||
// Simulate packet loss of sequence 9
|
||||
continue
|
||||
}
|
||||
@ -328,11 +343,11 @@ func TestNewReno_Congestion(t *testing.T) {
|
||||
}()
|
||||
|
||||
go func() {
|
||||
for i := 0; i < numPackets; i++ {
|
||||
for i := 1; i <= numPackets; i++ {
|
||||
time.Sleep(1 * time.Millisecond)
|
||||
seq, _ := c.sideB.Sequence(ctx)
|
||||
|
||||
if seq == 13 {
|
||||
if i == 13 {
|
||||
// Simulate packet loss of sequence 13
|
||||
continue
|
||||
}
|
||||
@ -354,11 +369,11 @@ func TestNewReno_Congestion(t *testing.T) {
|
||||
|
||||
// ASSERT
|
||||
|
||||
assert.Equal(t, uint32(13), c.sideA.nack)
|
||||
assert.Equal(t, uint32(numPackets), c.sideA.ack)
|
||||
assert.Equal(t, sideAinitialAck + uint32(13), c.sideA.nack)
|
||||
assert.Equal(t, sideAinitialAck + uint32(numPackets), c.sideA.ack)
|
||||
|
||||
assert.Equal(t, uint32(9), c.sideB.nack)
|
||||
assert.Equal(t, uint32(numPackets), c.sideB.ack)
|
||||
assert.Equal(t, sideBinitialAck + uint32(9), c.sideB.nack)
|
||||
assert.Equal(t, sideBinitialAck + uint32(numPackets), c.sideB.ack)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user