completed new reno test with exchange
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing

This commit is contained in:
Jake Hillion 2021-05-13 23:25:09 +01:00
parent e1241b2cf0
commit c817930294

View File

@ -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)
})
})
}