Stage 1 rewrite
This commit is contained in:
@@ -129,6 +129,7 @@ void TestBackendPlayoutHealth()
|
||||
Expect(playout.outputFrameEndAccessMilliseconds == 0.5, "backend playout health stores output frame end access duration");
|
||||
Expect(playout.completedFrameIndex == 8, "backend playout health stores completed index");
|
||||
Expect(playout.scheduledFrameIndex == 11, "backend playout health stores scheduled index");
|
||||
Expect(playout.scheduledLeadFrames == 3, "backend playout health stores synthetic scheduled lead");
|
||||
Expect(playout.measuredLagFrames == 2, "backend playout health stores measured lag");
|
||||
Expect(playout.catchUpFrames == 2, "backend playout health stores catch-up frames");
|
||||
Expect(playout.lateStreak == 1, "backend playout health stores late streak");
|
||||
@@ -228,6 +229,28 @@ void TestSystemMemoryPlayoutStats()
|
||||
Expect(playout.systemFrameAgeAtScheduleMilliseconds == 0.0, "system-memory playout clamps negative schedule age");
|
||||
Expect(playout.systemFrameAgeAtCompletionMilliseconds == 0.0, "system-memory playout clamps negative completion age");
|
||||
}
|
||||
|
||||
void TestDeckLinkBufferTelemetry()
|
||||
{
|
||||
HealthTelemetry telemetry;
|
||||
telemetry.RecordDeckLinkBufferTelemetry(true, 4, 5, 0.25, 2);
|
||||
|
||||
HealthTelemetry::BackendPlayoutSnapshot playout = telemetry.GetBackendPlayoutSnapshot();
|
||||
Expect(playout.actualDeckLinkBufferedFramesAvailable, "DeckLink buffer telemetry records availability");
|
||||
Expect(playout.actualDeckLinkBufferedFrames == 4, "DeckLink buffer telemetry stores actual device depth");
|
||||
Expect(playout.targetDeckLinkBufferedFrames == 5, "DeckLink buffer telemetry stores target device depth");
|
||||
Expect(playout.deckLinkScheduleCallMilliseconds == 0.25, "DeckLink buffer telemetry stores schedule call duration");
|
||||
Expect(playout.deckLinkScheduleFailureCount == 2, "DeckLink buffer telemetry stores schedule failures");
|
||||
|
||||
Expect(telemetry.TryRecordDeckLinkBufferTelemetry(false, 9, 3, -1.0, 7),
|
||||
"try DeckLink buffer telemetry succeeds when uncontended");
|
||||
playout = telemetry.GetBackendPlayoutSnapshot();
|
||||
Expect(!playout.actualDeckLinkBufferedFramesAvailable, "DeckLink buffer telemetry records unavailable device depth");
|
||||
Expect(playout.actualDeckLinkBufferedFrames == 0, "unavailable DeckLink device depth clears actual count");
|
||||
Expect(playout.targetDeckLinkBufferedFrames == 3, "try DeckLink buffer telemetry stores target device depth");
|
||||
Expect(playout.deckLinkScheduleCallMilliseconds == 0.0, "DeckLink buffer telemetry clamps negative schedule call duration");
|
||||
Expect(playout.deckLinkScheduleFailureCount == 7, "try DeckLink buffer telemetry stores schedule failures");
|
||||
}
|
||||
}
|
||||
|
||||
int main()
|
||||
@@ -239,6 +262,7 @@ int main()
|
||||
TestBackendPlayoutHealth();
|
||||
TestOutputRenderPipelineTiming();
|
||||
TestSystemMemoryPlayoutStats();
|
||||
TestDeckLinkBufferTelemetry();
|
||||
|
||||
if (gFailures != 0)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user