forked from ava-labs/avalanchego
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtracked_ip_test.go
48 lines (34 loc) · 1.08 KB
/
tracked_ip_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
// Copyright (C) 2019-2021, Ava Labs, Inc. All rights reserved.
// See the file LICENSE for licensing terms.
package network
import (
"testing"
"time"
"github.com/stretchr/testify/assert"
)
func TestTrackedIP(t *testing.T) {
assert := assert.New(t)
ip := trackedIP{
onStopTracking: make(chan struct{}),
}
assert.Equal(time.Duration(0), ip.getDelay())
ip.increaseDelay(time.Second, time.Minute)
assert.LessOrEqual(ip.getDelay(), 2*time.Second)
ip.increaseDelay(time.Second, time.Minute)
assert.LessOrEqual(ip.getDelay(), 4*time.Second)
ip.increaseDelay(time.Second, time.Minute)
assert.LessOrEqual(ip.getDelay(), 8*time.Second)
ip.increaseDelay(time.Second, time.Minute)
assert.LessOrEqual(ip.getDelay(), 16*time.Second)
ip.increaseDelay(time.Second, time.Minute)
assert.LessOrEqual(ip.getDelay(), 32*time.Second)
for i := 0; i < 100; i++ {
ip.increaseDelay(time.Second, time.Minute)
assert.LessOrEqual(ip.getDelay(), time.Minute)
}
assert.GreaterOrEqual(ip.getDelay(), 45*time.Second)
ip.stopTracking()
<-ip.onStopTracking
ip.stopTracking()
<-ip.onStopTracking
}