Skip to content

Commit

Permalink
fix test races for stream updates
Browse files Browse the repository at this point in the history
  • Loading branch information
frostbyte73 committed Aug 8, 2024
1 parent b24d2d5 commit 58a492d
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 19 deletions.
10 changes: 7 additions & 3 deletions test/edge.go
Original file line number Diff line number Diff line change
Expand Up @@ -150,10 +150,14 @@ func (r *Runner) testRtmpFailure(t *testing.T) {
time.Sleep(time.Second * 5)
info = r.getUpdate(t, info.EgressId)
if info.Status == livekit.EgressStatus_EGRESS_ACTIVE {
r.checkUpdate(t, info.EgressId, livekit.EgressStatus_EGRESS_FAILED)
} else {
require.Equal(t, livekit.EgressStatus_EGRESS_FAILED, info.Status)
info = r.getUpdate(t, info.EgressId)
}
if info.Status == livekit.EgressStatus_EGRESS_ACTIVE {
require.Equal(t, livekit.StreamInfo_FAILED, info.StreamResults[0].Status)
info = r.getUpdate(t, info.EgressId)
}
require.Equal(t, livekit.StreamInfo_FAILED, info.StreamResults[0].Status)
require.Equal(t, livekit.EgressStatus_EGRESS_FAILED, info.Status)
})
}

Expand Down
32 changes: 24 additions & 8 deletions test/integration.go
Original file line number Diff line number Diff line change
Expand Up @@ -146,16 +146,32 @@ func (r *Runner) checkUpdate(t *testing.T, egressID string, status livekit.Egres
}

func (r *Runner) checkStreamUpdate(t *testing.T, egressID string, expected map[string]livekit.StreamInfo_Status) {
info := r.getUpdate(t, egressID)
for {
info := r.getUpdate(t, egressID)
require.Equal(t, len(expected), len(info.StreamResults))

failureStillActive := false
for _, s := range info.StreamResults {
require.Equal(t, s.Status == livekit.StreamInfo_FAILED, s.Error != "")

var e livekit.StreamInfo_Status
if strings.HasSuffix(s.Url, ".contribute.live-video.net/app/{f...1}") {
e = expected[badRtmpUrl1Redacted]
} else {
e = expected[s.Url]
}
if e == livekit.StreamInfo_FAILED && s.Status == livekit.StreamInfo_ACTIVE {
// expecting another update
failureStillActive = true
continue
}

require.Equal(t, len(expected), len(info.StreamResults))
for _, s := range info.StreamResults {
if strings.HasSuffix(s.Url, ".contribute.live-video.net/app/{f...1}") {
require.Equal(t, expected[badRtmpUrl1Redacted], s.Status)
} else {
require.Equal(t, expected[s.Url], s.Status)
require.Equal(t, e, s.Status)
}

if !failureStillActive {
return
}
require.Equal(t, s.Status == livekit.StreamInfo_FAILED, s.Error != "")
}
}

Expand Down
8 changes: 0 additions & 8 deletions test/stream.go
Original file line number Diff line number Diff line change
Expand Up @@ -92,14 +92,6 @@ func (r *Runner) runStreamTest(t *testing.T, req *rpc.StartEgressRequest, test *

// verify
r.verifyStreams(t, p, urls[0][2], urls[2][2])
if test.outputType != types.OutputTypeRTMP {
r.checkStreamUpdate(t, egressID, map[string]livekit.StreamInfo_Status{
urls[0][1]: livekit.StreamInfo_ACTIVE,
urls[1][1]: livekit.StreamInfo_FAILED,
urls[2][1]: livekit.StreamInfo_ACTIVE,
urls[3][1]: livekit.StreamInfo_ACTIVE,
})
}
r.checkStreamUpdate(t, egressID, map[string]livekit.StreamInfo_Status{
urls[0][1]: livekit.StreamInfo_ACTIVE,
urls[1][1]: livekit.StreamInfo_FAILED,
Expand Down

0 comments on commit 58a492d

Please sign in to comment.