internal/pipewire: implement Registry::GlobalRemove
All checks were successful
Test / Create distribution (push) Successful in 41s
Test / Sandbox (push) Successful in 2m47s
Test / Sandbox (race detector) (push) Successful in 5m6s
Test / Hakurei (push) Successful in 5m30s
Test / Hpkg (push) Successful in 5m39s
Test / Hakurei (race detector) (push) Successful in 7m18s
Test / Flake checks (push) Successful in 1m41s

This is emitted by PipeWire when a global object disappears, because PipeWire insists that all clients that had called Core::GetRegistry must constantly sync its local registry state with the remote.

Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
2025-12-10 00:59:01 +09:00
parent ccc0d98bd7
commit d8417e2927
3 changed files with 68 additions and 0 deletions

View File

@@ -862,6 +862,14 @@ func TestContextErrors(t *testing.T) {
ID: 0xbad,
Sequence: 0xcafe,
}, "received Core::Ping seq 51966 targeting unknown proxy id 2989"},
{"GlobalIDCollisionError", &pipewire.GlobalIDCollisionError{
ID: 0xbad,
Previous: &pipewire.RegistryGlobal{Type: "PipeWire:Interface:Invalid"},
Current: &pipewire.RegistryGlobal{Type: "PipeWire:Interface:NewInvalid"},
}, "new Registry::Global event for PipeWire:Interface:NewInvalid stepping on previous id 2989 for PipeWire:Interface:Invalid"},
{"UnknownGlobalIDRemoveError", pipewire.UnknownGlobalIDRemoveError(0xbad), "Registry::GlobalRemove event targets unknown id 2989"},
}
for _, tc := range testCases {
t.Run(tc.name, func(t *testing.T) {