aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/pipewire
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2025-11-26 16:27:46 +0900
committerOphestra <cat@gensokyo.uk>2025-11-26 16:28:57 +0900
commita55c209099c96101288350043817c5dc50fdb158 (patch)
treeca5fa33a801a5991f8e21416bc28e4b372518938 /internal/pipewire
parent10ff276da187868be1fa136ffd41ee2904c2cea8 (diff)
internal/pipewire: additional Client::Info test case
This appears to add *one single entry* compared to the message before it. The inefficiency of this protocol is beyond imagination. Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/pipewire')
-rw-r--r--internal/pipewire/client_test.go45
-rw-r--r--internal/pipewire/header_test.go6
-rw-r--r--internal/pipewire/pipewire_test.go5
-rw-r--r--internal/pipewire/testdata/17-recvmsg00-message04-headerbin0 -> 16 bytes
-rw-r--r--internal/pipewire/testdata/18-recvmsg00-message04-PODbin0 -> 2000 bytes
5 files changed, 56 insertions, 0 deletions
diff --git a/internal/pipewire/client_test.go b/internal/pipewire/client_test.go
index 69a9547d..96ea8fa5 100644
--- a/internal/pipewire/client_test.go
+++ b/internal/pipewire/client_test.go
@@ -68,6 +68,51 @@ func TestClientInfo(t *testing.T) {
{Key: "settings.check-rate", Value: "false"},
{Key: "core.version", Value: "1.4.7"},
}}}, nil},
+
+ {"sample**", []byte(recvmsg00Message04POD), pipewire.ClientInfo{
+ ID: 34,
+ ChangeMask: pipewire.PW_CLIENT_CHANGE_MASK_PROPS,
+ Props: &pipewire.SPADict{NItems: 39, Items: []pipewire.SPADictItem{
+ {Key: "pipewire.protocol", Value: "protocol-native"},
+ {Key: "core.name", Value: "pipewire-alice-1443"},
+ {Key: "pipewire.sec.socket", Value: "pipewire-0-manager"},
+ {Key: "pipewire.sec.pid", Value: "1443"},
+ {Key: "pipewire.sec.uid", Value: "1000"},
+ {Key: "pipewire.sec.gid", Value: "100"},
+ {Key: "module.id", Value: "2"},
+ {Key: "object.id", Value: "34"},
+ {Key: "object.serial", Value: "34"},
+ {Key: "remote.intention", Value: "manager"},
+ {Key: "application.name", Value: "pw-container"},
+ {Key: "application.process.binary", Value: "pw-container"},
+ {Key: "application.language", Value: "en_US.UTF-8"},
+ {Key: "application.process.id", Value: "1443"},
+ {Key: "application.process.user", Value: "alice"},
+ {Key: "application.process.host", Value: "nixos"},
+ {Key: "application.process.session-id", Value: "1"},
+ {Key: "window.x11.display", Value: ":0"},
+ {Key: "cpu.vm.name", Value: "qemu"},
+ {Key: "log.level", Value: "0"},
+ {Key: "cpu.max-align", Value: "32"},
+ {Key: "default.clock.rate", Value: "48000"},
+ {Key: "default.clock.quantum", Value: "1024"},
+ {Key: "default.clock.min-quantum", Value: "32"},
+ {Key: "default.clock.max-quantum", Value: "2048"},
+ {Key: "default.clock.quantum-limit", Value: "8192"},
+ {Key: "default.clock.quantum-floor", Value: "4"},
+ {Key: "default.video.width", Value: "640"},
+ {Key: "default.video.height", Value: "480"},
+ {Key: "default.video.rate.num", Value: "25"},
+ {Key: "default.video.rate.denom", Value: "1"},
+ {Key: "clock.power-of-two-quantum", Value: "true"},
+ {Key: "link.max-buffers", Value: "64"},
+ {Key: "mem.warn-mlock", Value: "false"},
+ {Key: "mem.allow-mlock", Value: "true"},
+ {Key: "settings.check-quantum", Value: "false"},
+ {Key: "settings.check-rate", Value: "false"},
+ {Key: "core.version", Value: "1.4.7"},
+ {Key: "pipewire.access", Value: "unrestricted"},
+ }}}, nil},
}.run(t)
}
diff --git a/internal/pipewire/header_test.go b/internal/pipewire/header_test.go
index 20f7ded3..56f51c85 100644
--- a/internal/pipewire/header_test.go
+++ b/internal/pipewire/header_test.go
@@ -59,6 +59,12 @@ func TestHeader(t *testing.T) {
Size: 0x7a0, Sequence: 3, FileCount: 0,
}, nil},
+ {"PW_CLIENT_EVENT_INFO**", []byte(recvmsg00Message04Header), pipewire.Header{
+ ID: pipewire.PW_ID_CLIENT,
+ Opcode: pipewire.PW_CLIENT_EVENT_INFO,
+ Size: 0x7d0, Sequence: 4, FileCount: 0,
+ }, nil},
+
{"PW_SECURITY_CONTEXT_METHOD_CREATE", []byte{
// Id
3, 0, 0, 0,
diff --git a/internal/pipewire/pipewire_test.go b/internal/pipewire/pipewire_test.go
index bfdc571c..3d2ff055 100644
--- a/internal/pipewire/pipewire_test.go
+++ b/internal/pipewire/pipewire_test.go
@@ -46,4 +46,9 @@ var (
recvmsg00Message03Header string
//go:embed testdata/16-recvmsg00-message03-POD
recvmsg00Message03POD string
+
+ //go:embed testdata/17-recvmsg00-message04-header
+ recvmsg00Message04Header string
+ //go:embed testdata/18-recvmsg00-message04-POD
+ recvmsg00Message04POD string
)
diff --git a/internal/pipewire/testdata/17-recvmsg00-message04-header b/internal/pipewire/testdata/17-recvmsg00-message04-header
new file mode 100644
index 00000000..4c4b0f75
--- /dev/null
+++ b/internal/pipewire/testdata/17-recvmsg00-message04-header
Binary files differ
diff --git a/internal/pipewire/testdata/18-recvmsg00-message04-POD b/internal/pipewire/testdata/18-recvmsg00-message04-POD
new file mode 100644
index 00000000..bb28d824
--- /dev/null
+++ b/internal/pipewire/testdata/18-recvmsg00-message04-POD
Binary files differ