mirror of
https://github.com/openp2p-cn/openp2p.git
synced 2025-09-27 13:02:15 +08:00
60 lines
1.6 KiB
Go
60 lines
1.6 KiB
Go
package openp2p
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func TestBandwidth(t *testing.T) {
|
|
speed := 10 * 1024 * 1024 / 8 // 10mbps
|
|
speedl := newSpeedLimiter(speed, 1)
|
|
oneBuffSize := 4096
|
|
writeNum := 5000
|
|
expectTime := oneBuffSize * writeNum / speed
|
|
startTs := time.Now()
|
|
for i := 0; i < writeNum; i++ {
|
|
speedl.Add(oneBuffSize, true)
|
|
}
|
|
t.Logf("cost %ds, expect %ds", time.Since(startTs)/time.Second, expectTime)
|
|
if time.Since(startTs) > time.Duration(expectTime+1)*time.Second || time.Since(startTs) < time.Duration(expectTime-1)*time.Second {
|
|
t.Error("error")
|
|
}
|
|
}
|
|
|
|
func TestSymmetric(t *testing.T) {
|
|
speed := 20000 / 180
|
|
speedl := newSpeedLimiter(speed, 180)
|
|
oneBuffSize := 300
|
|
writeNum := 70
|
|
expectTime := (oneBuffSize*writeNum - 20000) / speed
|
|
t.Logf("expect %ds", expectTime)
|
|
startTs := time.Now()
|
|
for i := 0; i < writeNum; i++ {
|
|
speedl.Add(oneBuffSize, true)
|
|
}
|
|
t.Logf("cost %ds, expect %ds", time.Since(startTs)/time.Second, expectTime)
|
|
if time.Since(startTs) > time.Duration(expectTime+1)*time.Second || time.Since(startTs) < time.Duration(expectTime-1)*time.Second {
|
|
t.Error("error")
|
|
}
|
|
}
|
|
|
|
func TestSymmetric2(t *testing.T) {
|
|
speed := 30000 / 180
|
|
speedl := newSpeedLimiter(speed, 180)
|
|
oneBuffSize := 800
|
|
writeNum := 40
|
|
expectTime := (oneBuffSize*writeNum - 30000) / speed
|
|
startTs := time.Now()
|
|
for i := 0; i < writeNum; {
|
|
if speedl.Add(oneBuffSize, true) {
|
|
i++
|
|
} else {
|
|
time.Sleep(time.Millisecond)
|
|
}
|
|
}
|
|
t.Logf("cost %ds, expect %ds", time.Since(startTs)/time.Second, expectTime)
|
|
if time.Since(startTs) > time.Duration(expectTime+1)*time.Second || time.Since(startTs) < time.Duration(expectTime-1)*time.Second {
|
|
t.Error("error")
|
|
}
|
|
}
|