Files
quic-go/integrationtests/proxy/rtt_generator.go

32 lines
503 B
Go

package proxy
import (
"math/rand"
"time"
)
type rttGenerator struct {
min time.Duration
max time.Duration
}
func newRttGenerator(min, max time.Duration) rttGenerator {
rand.Seed(time.Now().UnixNano())
return rttGenerator{
min: min,
max: max,
}
}
func (s *rttGenerator) getRTT() time.Duration {
if s.min == s.max {
return s.min
}
minns := s.min.Nanoseconds()
maxns := s.max.Nanoseconds()
rttns := rand.Int63n(maxns-minns) + minns
return time.Duration(rttns) * time.Nanosecond
}