aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/pipewire/client_test.go
blob: d3f80891bf899388ddd6e0c0cbc32615bd064013 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
package pipewire_test

import (
	"testing"

	"hakurei.app/internal/pipewire"
)

func TestClientInfo(t *testing.T) {
	t.Parallel()

	encodingTestCases[pipewire.ClientInfo, *pipewire.ClientInfo]{
		{"sample", samplePWContainer[1][2][1], pipewire.ClientInfo{
			ID:         34,
			ChangeMask: pipewire.PW_CLIENT_CHANGE_MASK_PROPS,
			Properties: &pipewire.SPADict{
				{Key: "pipewire.protocol", Value: "protocol-native"},
				{Key: "core.name", Value: "pipewire-0"},
				{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"},
			}}, nil},

		{"sample*", samplePWContainer[1][3][1], pipewire.ClientInfo{
			ID:         34,
			ChangeMask: pipewire.PW_CLIENT_CHANGE_MASK_PROPS,
			Properties: &pipewire.SPADict{
				{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"},
			}}, nil},

		{"sample**", samplePWContainer[1][4][1], pipewire.ClientInfo{
			ID:         34,
			ChangeMask: pipewire.PW_CLIENT_CHANGE_MASK_PROPS,
			Properties: &pipewire.SPADict{
				{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)
}

func TestClientUpdateProperties(t *testing.T) {
	t.Parallel()

	encodingTestCases[pipewire.ClientUpdateProperties, *pipewire.ClientUpdateProperties]{
		{"sample", samplePWContainer[0][1][1], pipewire.ClientUpdateProperties{Properties: &pipewire.SPADict{
			{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: "core.name", Value: "pipewire-alice-1443"},
		}}, nil},
	}.run(t)
}