test(e2e): mark sei transport on jitsi as unstable

This commit is contained in:
zarazaex69
2026-05-16 01:50:48 +03:00
parent 82e8067384
commit 1ee1ddd7f0
2 changed files with 37 additions and 3 deletions

View File

@@ -97,6 +97,13 @@ type realE2EExpectation int
const (
realE2EExpectFail realE2EExpectation = iota
realE2EExpectPass
// realE2EExpectUnstable marks a carrier×transport combo that is
// known to flap: it sometimes succeeds and sometimes fails for
// reasons outside our control (third-party server load, lossy SFU
// paths, etc.). The matrix runner records the outcome but does
// not fail the test either way. Use this sparingly — prefer
// ExpectPass / ExpectFail when the behaviour is deterministic.
realE2EExpectUnstable
)
type memorySession struct {
@@ -375,6 +382,19 @@ func realE2ECaseExpectation(carrierName, transportName string) realE2EExpectatio
// datachannel transport (raw bytes broadcast through
// EndpointMessage). Video transports go through pion's
// PeerConnection negotiated via Jingle session-accept.
//
// seichannel is marked Unstable: SEI NAL data piggybacks on
// the H.264 video stream, and Jicofo's bandwidth allocator
// for self-hosted Jitsi instances (e.g. meet.cryptopro.ru)
// periodically suppresses the video upstream when there's
// no obvious viewer demand, which manifests as recurring
// "seichannel ack timeout" against an otherwise healthy
// PeerConnection. The transport works in steady state but
// is not deterministic enough to gate CI on; flag it but
// don't fail the suite when it flaps.
if transportName == transportSEI {
return realE2EExpectUnstable
}
return realE2EExpectPass
default:
return realE2EExpectPass
@@ -385,8 +405,10 @@ func realE2EExpectationLabel(expectation realE2EExpectation) string {
switch expectation {
case realE2EExpectPass:
return "SUCCESS"
case realE2EExpectFail:
case realE2EExpectFail:
return "EXPECTED FAIL"
case realE2EExpectUnstable:
return "UNSTABLE"
default:
return "UNKNOWN"
}
@@ -460,10 +482,10 @@ func TestRealE2ECaseExpectation(t *testing.T) {
want: realE2EExpectPass,
},
{
name: "jitsi seichannel is expected to pass",
name: "jitsi seichannel is unstable",
carrier: "jitsi",
transport: transportSEI,
want: realE2EExpectPass,
want: realE2EExpectUnstable,
},
}
@@ -1027,6 +1049,16 @@ func TestRealProviderTransportMatrix(t *testing.T) {
t.Fatalf("EXPECTED SUCCESS %s/%s failed: %v", carrierName, transportName, err)
case err != nil && expectation == realE2EExpectFail:
t.Logf("%s %s/%s: %v", label, carrierName, transportName, err)
case expectation == realE2EExpectUnstable:
// Unstable combos record the outcome but
// never fail the suite; they exist to keep
// the matrix honest when a transport flaps
// against a particular carrier.
if err == nil {
t.Logf("%s PASS %s/%s", label, carrierName, transportName)
} else {
t.Logf("%s FAIL %s/%s: %v", label, carrierName, transportName, err)
}
}
})
}