forked from quic-go/quic-go
Merge pull request #2498 from lucas-clemente/fix-qlog-time-on-ci
use the TIMESCALE_FACTOR in the qlog tests
This commit is contained in:
@@ -2,7 +2,10 @@ package qlog
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"os"
|
||||
"strconv"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
. "github.com/onsi/ginkgo"
|
||||
. "github.com/onsi/gomega"
|
||||
@@ -13,6 +16,16 @@ func TestQlog(t *testing.T) {
|
||||
RunSpecs(t, "qlog Suite")
|
||||
}
|
||||
|
||||
//nolint:unparam
|
||||
func scaleDuration(t time.Duration) time.Duration {
|
||||
scaleFactor := 1
|
||||
if f, err := strconv.Atoi(os.Getenv("TIMESCALE_FACTOR")); err == nil { // parsing "" errors, so this works fine if the env is not set
|
||||
scaleFactor = f
|
||||
}
|
||||
Expect(scaleFactor).ToNot(BeZero())
|
||||
return time.Duration(scaleFactor) * t
|
||||
}
|
||||
|
||||
func checkEncoding(data []byte, expected map[string]interface{}) {
|
||||
// unmarshal the data
|
||||
m := make(map[string]interface{})
|
||||
|
||||
@@ -144,7 +144,7 @@ var _ = Describe("Tracer", func() {
|
||||
protocol.ConnectionID{5, 6, 7, 8},
|
||||
)
|
||||
entry := exportAndParseSingle()
|
||||
Expect(entry.Time).To(BeTemporally("~", time.Now(), 10*time.Millisecond))
|
||||
Expect(entry.Time).To(BeTemporally("~", time.Now(), scaleDuration(10*time.Millisecond)))
|
||||
Expect(entry.Category).To(Equal("transport"))
|
||||
Expect(entry.Name).To(Equal("connection_started"))
|
||||
ev := entry.Event
|
||||
@@ -176,7 +176,7 @@ var _ = Describe("Tracer", func() {
|
||||
ActiveConnectionIDLimit: 7,
|
||||
})
|
||||
entry := exportAndParseSingle()
|
||||
Expect(entry.Time).To(BeTemporally("~", time.Now(), 10*time.Millisecond))
|
||||
Expect(entry.Time).To(BeTemporally("~", time.Now(), scaleDuration(10*time.Millisecond)))
|
||||
Expect(entry.Category).To(Equal("transport"))
|
||||
Expect(entry.Name).To(Equal("parameters_set"))
|
||||
ev := entry.Event
|
||||
@@ -198,7 +198,7 @@ var _ = Describe("Tracer", func() {
|
||||
It("records received transport parameters", func() {
|
||||
tracer.ReceivedTransportParameters(&wire.TransportParameters{})
|
||||
entry := exportAndParseSingle()
|
||||
Expect(entry.Time).To(BeTemporally("~", time.Now(), 10*time.Millisecond))
|
||||
Expect(entry.Time).To(BeTemporally("~", time.Now(), scaleDuration(10*time.Millisecond)))
|
||||
Expect(entry.Category).To(Equal("transport"))
|
||||
Expect(entry.Name).To(Equal("parameters_set"))
|
||||
ev := entry.Event
|
||||
@@ -225,7 +225,7 @@ var _ = Describe("Tracer", func() {
|
||||
},
|
||||
)
|
||||
entry := exportAndParseSingle()
|
||||
Expect(entry.Time).To(BeTemporally("~", time.Now(), 10*time.Millisecond))
|
||||
Expect(entry.Time).To(BeTemporally("~", time.Now(), scaleDuration(10*time.Millisecond)))
|
||||
Expect(entry.Category).To(Equal("transport"))
|
||||
Expect(entry.Name).To(Equal("packet_sent"))
|
||||
ev := entry.Event
|
||||
@@ -282,7 +282,7 @@ var _ = Describe("Tracer", func() {
|
||||
},
|
||||
)
|
||||
entry := exportAndParseSingle()
|
||||
Expect(entry.Time).To(BeTemporally("~", time.Now(), 10*time.Millisecond))
|
||||
Expect(entry.Time).To(BeTemporally("~", time.Now(), scaleDuration(10*time.Millisecond)))
|
||||
Expect(entry.Category).To(Equal("transport"))
|
||||
Expect(entry.Name).To(Equal("packet_received"))
|
||||
ev := entry.Event
|
||||
@@ -307,7 +307,7 @@ var _ = Describe("Tracer", func() {
|
||||
},
|
||||
)
|
||||
entry := exportAndParseSingle()
|
||||
Expect(entry.Time).To(BeTemporally("~", time.Now(), 10*time.Millisecond))
|
||||
Expect(entry.Time).To(BeTemporally("~", time.Now(), scaleDuration(10*time.Millisecond)))
|
||||
Expect(entry.Category).To(Equal("transport"))
|
||||
Expect(entry.Name).To(Equal("packet_received"))
|
||||
ev := entry.Event
|
||||
@@ -351,7 +351,7 @@ var _ = Describe("Tracer", func() {
|
||||
It("records a received Retry packet", func() {
|
||||
tracer.ReceivedStatelessReset(&[16]byte{0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff})
|
||||
entry := exportAndParseSingle()
|
||||
Expect(entry.Time).To(BeTemporally("~", time.Now(), 10*time.Millisecond))
|
||||
Expect(entry.Time).To(BeTemporally("~", time.Now(), scaleDuration(10*time.Millisecond)))
|
||||
Expect(entry.Category).To(Equal("transport"))
|
||||
Expect(entry.Name).To(Equal("packet_received"))
|
||||
ev := entry.Event
|
||||
@@ -362,7 +362,7 @@ var _ = Describe("Tracer", func() {
|
||||
It("records buffered packets", func() {
|
||||
tracer.BufferedPacket(PacketTypeHandshake)
|
||||
entry := exportAndParseSingle()
|
||||
Expect(entry.Time).To(BeTemporally("~", time.Now(), 10*time.Millisecond))
|
||||
Expect(entry.Time).To(BeTemporally("~", time.Now(), scaleDuration(10*time.Millisecond)))
|
||||
Expect(entry.Category).To(Equal("transport"))
|
||||
Expect(entry.Name).To(Equal("packet_buffered"))
|
||||
ev := entry.Event
|
||||
@@ -373,7 +373,7 @@ var _ = Describe("Tracer", func() {
|
||||
It("records dropped packets", func() {
|
||||
tracer.DroppedPacket(PacketTypeHandshake, 1337, PacketDropPayloadDecryptError)
|
||||
entry := exportAndParseSingle()
|
||||
Expect(entry.Time).To(BeTemporally("~", time.Now(), 10*time.Millisecond))
|
||||
Expect(entry.Time).To(BeTemporally("~", time.Now(), scaleDuration(10*time.Millisecond)))
|
||||
Expect(entry.Category).To(Equal("transport"))
|
||||
Expect(entry.Name).To(Equal("packet_dropped"))
|
||||
ev := entry.Event
|
||||
@@ -401,7 +401,7 @@ var _ = Describe("Tracer", func() {
|
||||
42,
|
||||
)
|
||||
entry := exportAndParseSingle()
|
||||
Expect(entry.Time).To(BeTemporally("~", time.Now(), 10*time.Millisecond))
|
||||
Expect(entry.Time).To(BeTemporally("~", time.Now(), scaleDuration(10*time.Millisecond)))
|
||||
Expect(entry.Category).To(Equal("recovery"))
|
||||
Expect(entry.Name).To(Equal("metrics_updated"))
|
||||
ev := entry.Event
|
||||
@@ -463,7 +463,7 @@ var _ = Describe("Tracer", func() {
|
||||
It("records lost packets", func() {
|
||||
tracer.LostPacket(protocol.EncryptionHandshake, 42, PacketLossReorderingThreshold)
|
||||
entry := exportAndParseSingle()
|
||||
Expect(entry.Time).To(BeTemporally("~", time.Now(), 10*time.Millisecond))
|
||||
Expect(entry.Time).To(BeTemporally("~", time.Now(), scaleDuration(10*time.Millisecond)))
|
||||
Expect(entry.Category).To(Equal("recovery"))
|
||||
Expect(entry.Name).To(Equal("packet_lost"))
|
||||
ev := entry.Event
|
||||
@@ -475,7 +475,7 @@ var _ = Describe("Tracer", func() {
|
||||
It("records PTO changes", func() {
|
||||
tracer.UpdatedPTOCount(42)
|
||||
entry := exportAndParseSingle()
|
||||
Expect(entry.Time).To(BeTemporally("~", time.Now(), 10*time.Millisecond))
|
||||
Expect(entry.Time).To(BeTemporally("~", time.Now(), scaleDuration(10*time.Millisecond)))
|
||||
Expect(entry.Category).To(Equal("recovery"))
|
||||
Expect(entry.Name).To(Equal("metrics_updated"))
|
||||
Expect(entry.Event).To(HaveKeyWithValue("pto_count", float64(42)))
|
||||
@@ -484,7 +484,7 @@ var _ = Describe("Tracer", func() {
|
||||
It("records TLS key updates", func() {
|
||||
tracer.UpdatedKeyFromTLS(protocol.EncryptionHandshake, protocol.PerspectiveClient)
|
||||
entry := exportAndParseSingle()
|
||||
Expect(entry.Time).To(BeTemporally("~", time.Now(), 10*time.Millisecond))
|
||||
Expect(entry.Time).To(BeTemporally("~", time.Now(), scaleDuration(10*time.Millisecond)))
|
||||
Expect(entry.Category).To(Equal("security"))
|
||||
Expect(entry.Name).To(Equal("key_updated"))
|
||||
ev := entry.Event
|
||||
@@ -501,7 +501,7 @@ var _ = Describe("Tracer", func() {
|
||||
Expect(entries).To(HaveLen(2))
|
||||
var keyTypes []string
|
||||
for _, entry := range entries {
|
||||
Expect(entry.Time).To(BeTemporally("~", time.Now(), 10*time.Millisecond))
|
||||
Expect(entry.Time).To(BeTemporally("~", time.Now(), scaleDuration(10*time.Millisecond)))
|
||||
Expect(entry.Category).To(Equal("security"))
|
||||
Expect(entry.Name).To(Equal("key_updated"))
|
||||
ev := entry.Event
|
||||
@@ -520,7 +520,7 @@ var _ = Describe("Tracer", func() {
|
||||
Expect(entries).To(HaveLen(2))
|
||||
var keyTypes []string
|
||||
for _, entry := range entries {
|
||||
Expect(entry.Time).To(BeTemporally("~", time.Now(), 10*time.Millisecond))
|
||||
Expect(entry.Time).To(BeTemporally("~", time.Now(), scaleDuration(10*time.Millisecond)))
|
||||
Expect(entry.Category).To(Equal("security"))
|
||||
Expect(entry.Name).To(Equal("key_retired"))
|
||||
ev := entry.Event
|
||||
@@ -536,7 +536,7 @@ var _ = Describe("Tracer", func() {
|
||||
timeout := time.Now().Add(137 * time.Millisecond)
|
||||
tracer.SetLossTimer(TimerTypePTO, protocol.EncryptionHandshake, timeout)
|
||||
entry := exportAndParseSingle()
|
||||
Expect(entry.Time).To(BeTemporally("~", time.Now(), 10*time.Millisecond))
|
||||
Expect(entry.Time).To(BeTemporally("~", time.Now(), scaleDuration(10*time.Millisecond)))
|
||||
Expect(entry.Category).To(Equal("recovery"))
|
||||
Expect(entry.Name).To(Equal("loss_timer_updated"))
|
||||
ev := entry.Event
|
||||
@@ -552,7 +552,7 @@ var _ = Describe("Tracer", func() {
|
||||
It("records when the loss timer expires", func() {
|
||||
tracer.LossTimerExpired(TimerTypeACK, protocol.Encryption1RTT)
|
||||
entry := exportAndParseSingle()
|
||||
Expect(entry.Time).To(BeTemporally("~", time.Now(), 10*time.Millisecond))
|
||||
Expect(entry.Time).To(BeTemporally("~", time.Now(), scaleDuration(10*time.Millisecond)))
|
||||
Expect(entry.Category).To(Equal("recovery"))
|
||||
Expect(entry.Name).To(Equal("loss_timer_updated"))
|
||||
ev := entry.Event
|
||||
@@ -565,7 +565,7 @@ var _ = Describe("Tracer", func() {
|
||||
It("records when the timer is canceled", func() {
|
||||
tracer.LossTimerCanceled()
|
||||
entry := exportAndParseSingle()
|
||||
Expect(entry.Time).To(BeTemporally("~", time.Now(), 10*time.Millisecond))
|
||||
Expect(entry.Time).To(BeTemporally("~", time.Now(), scaleDuration(10*time.Millisecond)))
|
||||
Expect(entry.Category).To(Equal("recovery"))
|
||||
Expect(entry.Name).To(Equal("loss_timer_updated"))
|
||||
ev := entry.Event
|
||||
|
||||
Reference in New Issue
Block a user