test(gateway): freeze v8 qualification harness
Verify Data Plane / gateway (push) Failing after 3m12s
Verify Data Plane / gateway (push) Failing after 3m12s
This commit is contained in:
@@ -47,17 +47,21 @@ type qualificationGatewayProcessReady struct {
|
||||
}
|
||||
|
||||
type qualificationGatewayProcessSnapshot struct {
|
||||
Metrics MetricsSnapshot
|
||||
NativeSetups uint64
|
||||
NativeOpens uint64
|
||||
MediaIngress uint64
|
||||
MediaRecovered uint64
|
||||
MediaEnqueued uint64
|
||||
MediaDrops uint64
|
||||
MediaQueueMaximum uint64
|
||||
MediaQueueMaximumBytes uint64
|
||||
PacerReservations uint64
|
||||
ProviderTelemetry ProviderTelemetry
|
||||
Metrics MetricsSnapshot
|
||||
NativeSetups uint64
|
||||
NativeOpens uint64
|
||||
MediaIngress uint64
|
||||
MediaRecovered uint64
|
||||
MediaEnqueued uint64
|
||||
MediaDrops uint64
|
||||
MediaQueueMaximum uint64
|
||||
MediaQueueMaximumBytes uint64
|
||||
PacerReservations uint64
|
||||
ProviderTelemetry ProviderTelemetry
|
||||
VideoReceiveBuffer int
|
||||
VideoReceiveBufferAvailable bool
|
||||
KernelDrops uint64
|
||||
KernelDropsAvailable bool
|
||||
}
|
||||
|
||||
type qualificationProcessRecordRequest struct {
|
||||
@@ -242,7 +246,7 @@ func (r *qualificationProcessRecorder) stop() (qualificationProcessRecordResult,
|
||||
return qualificationProcessRecordResult{}, err
|
||||
}
|
||||
first, last := resources[0], resources[len(resources)-1]
|
||||
result.CPUSeconds = max(last.CPUSeconds-first.CPUSeconds, 0)
|
||||
result.CPUSeconds = qualificationCPUSecondsDelta(first.CPUSeconds, last.CPUSeconds)
|
||||
result.AllocatedObjects = last.AllocatedObjects - first.AllocatedObjects
|
||||
result.AllocatedBytes = last.AllocatedBytes - first.AllocatedBytes
|
||||
for _, sample := range resources {
|
||||
@@ -252,6 +256,35 @@ func (r *qualificationProcessRecorder) stop() (qualificationProcessRecordResult,
|
||||
return result, nil
|
||||
}
|
||||
|
||||
func qualificationCPUSecondsDelta(first, last float64) float64 {
|
||||
cpuSeconds := -1.0
|
||||
if first >= 0 && last >= first {
|
||||
cpuSeconds = last - first
|
||||
}
|
||||
return cpuSeconds
|
||||
}
|
||||
|
||||
func TestQualificationCPUSecondsDeltaRejectsUnavailableOrDecreasingSamples(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
first, last float64
|
||||
want float64
|
||||
}{
|
||||
{name: "positive", first: 1.25, last: 1.75, want: 0.5},
|
||||
{name: "zero", first: 1.25, last: 1.25, want: 0},
|
||||
{name: "unavailable first", first: -1, last: 1.25, want: -1},
|
||||
{name: "unavailable last", first: 1.25, last: -1, want: -1},
|
||||
{name: "decreasing", first: 1.75, last: 1.25, want: -1},
|
||||
}
|
||||
for _, test := range tests {
|
||||
t.Run(test.name, func(t *testing.T) {
|
||||
if got := qualificationCPUSecondsDelta(test.first, test.last); got != test.want {
|
||||
t.Fatalf("CPU delta for first=%f last=%f = %f, want %f", test.first, test.last, got, test.want)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
type qualificationGatewayProcess struct {
|
||||
command *exec.Cmd
|
||||
cancel context.CancelFunc
|
||||
@@ -461,6 +494,9 @@ func TestQualificationGatewayProcessChild(t *testing.T) {
|
||||
snapshot.MediaQueueMaximum = session.mediaQueueMaximum.Load()
|
||||
snapshot.MediaQueueMaximumBytes = session.mediaQueueMaximumBytes.Load()
|
||||
snapshot.ProviderTelemetry = session.Telemetry()
|
||||
snapshot.VideoReceiveBuffer, snapshot.VideoReceiveBufferAvailable,
|
||||
snapshot.KernelDrops, snapshot.KernelDropsAvailable =
|
||||
qualificationProviderVideoSocketDiagnostics(session.videoConn)
|
||||
}
|
||||
_ = json.NewEncoder(response).Encode(snapshot)
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user